From c3376f0b7db95791f775877dbf671b647a41de34 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Mon, 22 May 2023 15:47:12 +0800 Subject: [PATCH 01/61] update docker-compose.yaml --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 1e39d078..a05250c9 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -102,7 +102,7 @@ services: - paopao-network backend: - image: bitbus/paopao-ce:0.3.0-rc.1 + image: bitbus/paopao-ce:0.3.0 restart: always depends_on: - db From 9b63b10aa8e05a533e3f5ddb55ec424acf1a2fe2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 May 2023 11:13:23 +0000 Subject: [PATCH 02/61] mod: bump github.com/bytedance/sonic from 1.8.9 to 1.9.1 Bumps [github.com/bytedance/sonic](https://github.com/bytedance/sonic) from 1.8.9 to 1.9.1. - [Release notes](https://github.com/bytedance/sonic/releases) - [Commits](https://github.com/bytedance/sonic/compare/v1.8.9...v1.9.1) --- updated-dependencies: - dependency-name: github.com/bytedance/sonic dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index aebca86d..9d113a4a 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/alimy/mir/v3 v3.2.0 github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/allegro/bigcache/v3 v3.0.2 - github.com/bytedance/sonic v1.8.9 + github.com/bytedance/sonic v1.9.1 github.com/cockroachdb/errors v1.9.1 github.com/disintegration/imaging v1.6.2 github.com/fatih/color v1.15.0 diff --git a/go.sum b/go.sum index f9c7a7c9..8c9d7f0d 100644 --- a/go.sum +++ b/go.sum @@ -199,8 +199,8 @@ github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8n github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.8.9 h1:mXB6OoHaI9OrWugkvNxWiuHTy5RCrVfxg2Nn40sf0oc= -github.com/bytedance/sonic v1.8.9/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= +github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= From 17d54cc44213ccd6e4805c6340b9177f9ec9cf4e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 May 2023 11:13:41 +0000 Subject: [PATCH 03/61] mod: bump github.com/onsi/ginkgo/v2 from 2.9.4 to 2.9.5 Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.9.4 to 2.9.5. - [Release notes](https://github.com/onsi/ginkgo/releases) - [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/ginkgo/compare/v2.9.4...v2.9.5) --- updated-dependencies: - dependency-name: github.com/onsi/ginkgo/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 8 ++++---- go.sum | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index aebca86d..7ef387dc 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/json-iterator/go v1.1.12 github.com/meilisearch/meilisearch-go v0.24.0 github.com/minio/minio-go/v7 v7.0.53 - github.com/onsi/ginkgo/v2 v2.9.4 + github.com/onsi/ginkgo/v2 v2.9.5 github.com/onsi/gomega v1.27.6 github.com/pyroscope-io/client v0.7.0 github.com/redis/rueidis v1.0.5 @@ -119,11 +119,11 @@ require ( golang.org/x/crypto v0.7.0 // indirect golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9 // indirect golang.org/x/mod v0.10.0 // indirect - golang.org/x/net v0.9.0 // indirect - golang.org/x/sys v0.7.0 // indirect + golang.org/x/net v0.10.0 // indirect + golang.org/x/sys v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.8.0 // indirect + golang.org/x/tools v0.9.1 // indirect google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index f9c7a7c9..ae6c2d21 100644 --- a/go.sum +++ b/go.sum @@ -1063,8 +1063,8 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108 github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo/v2 v2.9.4 h1:xR7vG4IXt5RWx6FfIjyAtsoMAtnc3C/rFXBBd2AjZwE= -github.com/onsi/ginkgo/v2 v2.9.4/go.mod h1:gCQYp2Q+kSoIj7ykSVb9nskRSsR6PUj4AiLywzIhbKM= +github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q= +github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k= github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -1583,8 +1583,8 @@ golang.org/x/net v0.0.0-20220111093109-d55c255bac03/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1616,8 +1616,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= golang.org/x/sys v0.0.0-20180224232135-f6cff0780e54/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1751,8 +1751,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1865,8 +1865,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/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.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= -golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= +golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo= +golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 92fee245e02ba3238a242c107a8886220aed3f12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 May 2023 06:50:18 +0000 Subject: [PATCH 04/61] mod: bump gorm.io/driver/postgres from 1.5.0 to 1.5.2 Bumps [gorm.io/driver/postgres](https://github.com/go-gorm/postgres) from 1.5.0 to 1.5.2. - [Commits](https://github.com/go-gorm/postgres/compare/v1.5.0...v1.5.2) --- updated-dependencies: - dependency-name: gorm.io/driver/postgres dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 6 +++--- go.sum | 27 ++++++--------------------- 2 files changed, 9 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 3dd4d3f9..7fa13986 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/resty.v1 v1.12.0 gorm.io/driver/mysql v1.5.1 - gorm.io/driver/postgres v1.5.0 + gorm.io/driver/postgres v1.5.2 gorm.io/driver/sqlite v1.4.4 gorm.io/gorm v1.25.1 gorm.io/plugin/dbresolver v1.4.1 @@ -76,7 +76,7 @@ require ( github.com/hashicorp/hcl v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect - github.com/jackc/pgx/v5 v5.3.0 // indirect + github.com/jackc/pgx/v5 v5.3.1 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -116,7 +116,7 @@ require ( github.com/valyala/fasthttp v1.40.0 // indirect go.uber.org/atomic v1.9.0 // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect - golang.org/x/crypto v0.7.0 // indirect + golang.org/x/crypto v0.8.0 // indirect golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9 // indirect golang.org/x/mod v0.10.0 // indirect golang.org/x/net v0.10.0 // indirect diff --git a/go.sum b/go.sum index 6fa4003a..8884d7c3 100644 --- a/go.sum +++ b/go.sum @@ -822,14 +822,13 @@ github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXg github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o= github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg= github.com/jackc/pgx/v4 v4.10.1/go.mod h1:QlrWebbs3kqEZPHCTGyxecvzG6tvIsYu+A5b1raylkA= -github.com/jackc/pgx/v5 v5.3.0 h1:/NQi8KHMpKWHInxXesC8yD4DhkXPrVhmnwYkjp9AmBA= -github.com/jackc/pgx/v5 v5.3.0/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8= +github.com/jackc/pgx/v5 v5.3.1 h1:Fcr8QJ1ZeLi5zsPZqQeUZhNhxfkkKBOgJuYkJHoBOtU= +github.com/jackc/pgx/v5 v5.3.1/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle/v2 v2.2.0/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -1358,7 +1357,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= @@ -1455,9 +1453,8 @@ golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= 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= @@ -1508,7 +1505,6 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1581,8 +1577,6 @@ golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220111093109-d55c255bac03/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1615,8 +1609,6 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= golang.org/x/sys v0.0.0-20180224232135-f6cff0780e54/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1744,13 +1736,10 @@ golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -1758,7 +1747,6 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= 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= @@ -1768,7 +1756,6 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1864,7 +1851,6 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/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.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo= golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2100,8 +2086,8 @@ gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10 gorm.io/driver/mysql v1.5.1 h1:WUEH5VF9obL/lTtzjmML/5e6VfFR/788coz2uaVCAZw= gorm.io/driver/mysql v1.5.1/go.mod h1:Jo3Xu7mMhCyj8dlrb3WoCaRd1FhsVh+yMXb1jUInf5o= gorm.io/driver/postgres v1.0.8/go.mod h1:4eOzrI1MUfm6ObJU/UcmbXyiHSs8jSwH95G5P5dxcAg= -gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= -gorm.io/driver/postgres v1.5.0/go.mod h1:FUZXzO+5Uqg5zzwzv4KK49R8lvGIyscBOqYrtI1Ce9A= +gorm.io/driver/postgres v1.5.2 h1:ytTDxxEv+MplXOfFe3Lzm7SjG09fcdb3Z/c056DTBx0= +gorm.io/driver/postgres v1.5.2/go.mod h1:fmpX0m2I1PKuR7mKZiEluwrP3hbs+ps7JIGMUBpCgl8= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= gorm.io/driver/sqlite v1.4.4 h1:gIufGoR0dQzjkyqDyYSCvsYR6fba1Gw5YKDqKeChxFc= gorm.io/driver/sqlite v1.4.4/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI= @@ -2112,7 +2098,6 @@ gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= -gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.1 h1:nsSALe5Pr+cM3V1qwwQ7rOkw+6UeLrX5O4v3llhHa64= gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk= From 1da79eb8efc90c1c4d0be5d819d44bfa3f24e77a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Jun 2023 11:03:19 +0000 Subject: [PATCH 05/61] mod: bump github.com/onsi/ginkgo/v2 from 2.9.5 to 2.11.0 Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.9.5 to 2.11.0. - [Release notes](https://github.com/onsi/ginkgo/releases) - [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/ginkgo/compare/v2.9.5...v2.11.0) --- updated-dependencies: - dependency-name: github.com/onsi/ginkgo/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 7fa13986..2d3bce25 100644 --- a/go.mod +++ b/go.mod @@ -25,8 +25,8 @@ require ( github.com/json-iterator/go v1.1.12 github.com/meilisearch/meilisearch-go v0.24.0 github.com/minio/minio-go/v7 v7.0.53 - github.com/onsi/ginkgo/v2 v2.9.5 - github.com/onsi/gomega v1.27.6 + github.com/onsi/ginkgo/v2 v2.11.0 + github.com/onsi/gomega v1.27.8 github.com/pyroscope-io/client v0.7.0 github.com/redis/rueidis v1.0.5 github.com/sirupsen/logrus v1.9.2 @@ -120,10 +120,10 @@ require ( golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9 // indirect golang.org/x/mod v0.10.0 // indirect golang.org/x/net v0.10.0 // indirect - golang.org/x/sys v0.8.0 // indirect + golang.org/x/sys v0.9.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.9.1 // indirect + golang.org/x/tools v0.9.3 // indirect google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index 8884d7c3..5e50eb52 100644 --- a/go.sum +++ b/go.sum @@ -1062,8 +1062,8 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108 github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q= -github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k= +github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= +github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -1073,8 +1073,8 @@ github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoT github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= -github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE= -github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg= +github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= +github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -1740,8 +1740,8 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1851,8 +1851,8 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo= -golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= +golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From caff8c052be6c8d59576011192f830fd98e17ab3 Mon Sep 17 00:00:00 2001 From: ROC Date: Mon, 19 Jun 2023 19:24:45 +0800 Subject: [PATCH 06/61] fixed: video player assets cdn error. --- web/package.json | 3 +-- web/src/components/post-video.vue | 14 +++----------- web/src/shims-vue.d.ts | 2 +- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/web/package.json b/web/package.json index aea04ccc..99ad5e68 100644 --- a/web/package.json +++ b/web/package.json @@ -20,7 +20,7 @@ "lodash": "^4.17.21", "moment": "^2.29.4", "naive-ui": "^2.34.3", - "nonesir-video": "^1.0.3", + "paopao-video-player": "^1.0.0", "qrcanvas-vue": "^3.0.0", "qrcode": "^1.5.3", "unplugin-vue-components": "^0.24.1", @@ -28,7 +28,6 @@ "vfonts": "^0.0.3", "vue": "^3.2.47", "vue-router": "4", - "vue3-player-video": "^1.2.5", "vuex": "^4.1.0" }, "devDependencies": { diff --git a/web/src/components/post-video.vue b/web/src/components/post-video.vue index 9800bd06..907c0a21 100644 --- a/web/src/components/post-video.vue +++ b/web/src/components/post-video.vue @@ -2,23 +2,15 @@
- +
- - - + + + + - - + + - + - - + + From fdf3ec36a448083de9374113124a1c8875c9d663 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Wed, 21 Jun 2023 20:35:05 +0800 Subject: [PATCH 12/61] update docs/proposal --- ...于多媒体资源URI信息存储优化.md | 30 +++++++++++++++++++ .../23062121-关于Migration的优化.md | 25 ++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 docs/proposal/23062120-关于多媒体资源URI信息存储优化.md create mode 100644 docs/proposal/23062121-关于Migration的优化.md diff --git a/docs/proposal/23062120-关于多媒体资源URI信息存储优化.md b/docs/proposal/23062120-关于多媒体资源URI信息存储优化.md new file mode 100644 index 00000000..31a305f2 --- /dev/null +++ b/docs/proposal/23062120-关于多媒体资源URI信息存储优化.md @@ -0,0 +1,30 @@ +| 编号 | 作者 | 发表时间 | 变更时间 | 版本 | 状态 | +| ----- | ----- | ----- | ----- | ----- | ----- | +| 23062120| 北野 | 2023-06-21 | 2023-06-21 | v0.1 | 提议 | + +### 概述 +目前图片、视频、附件资源的位置信息是使用完整url的形式存储在sql表中,也就是对外可取的url链接,这就造成这些多媒体资源与一个网站的网址进行了 +绑定,如果网站变更网址后,这些媒体资源将访问不了,除非使用原先的网址。 + +### 需求 +* 变更网址不影响图片、视频、附件资源的获取; +* 图片、视频、附件资源的存储位置应该对外透明,内部如何存储已经具体的存储位置信息不应该暴露到对外url链接中; +* 图片、视频、附件资源的存储位置信息在sql表中应该存储为相对地址; + +### 方案 +#### 设计要点 +* 图片、视频、附件资源的相对位置信息存储在sql表中; +* 图片、视频、附件资源的对外url地址采用动态生成的方式,可以采用服务端生成或者客户端生成的方式或者通过api的参数来自定义; + +#### 设计细节 +TODO; + +### 疑问 + +1. 为什么要优化? +解绑网站地址与图片、视频、附件资源的对应关系。 + + +### 更新记录 +#### v0.1(2023-06-21) - 北野 +* 初始文档 diff --git a/docs/proposal/23062121-关于Migration的优化.md b/docs/proposal/23062121-关于Migration的优化.md new file mode 100644 index 00000000..fed6bb05 --- /dev/null +++ b/docs/proposal/23062121-关于Migration的优化.md @@ -0,0 +1,25 @@ +| 编号 | 作者 | 发表时间 | 变更时间 | 版本 | 状态 | +| ----- | ----- | ----- | ----- | ----- | ----- | +| 23062121| 北野 | 2023-06-21 | 2023-06-21 | v0.1 | 提议 | + +### 概述 +数据库表的Migration优化。 + +### 需求 +TODO; + +### 方案 +TODO; + +#### 设计细节 +TODO; + +### 疑问 + +1. 为什么要优化? +TODO; + + +### 更新记录 +#### v0.1(2023-06-21) - 北野 +* 初始文档 From 4d2a1483616f9208279f1ec39fccc2bf9e1ed416 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 11:05:00 +0000 Subject: [PATCH 13/61] mod: bump github.com/getsentry/sentry-go from 0.21.0 to 0.22.0 Bumps [github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go) from 0.21.0 to 0.22.0. - [Release notes](https://github.com/getsentry/sentry-go/releases) - [Changelog](https://github.com/getsentry/sentry-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-go/compare/v0.21.0...v0.22.0) --- updated-dependencies: - dependency-name: github.com/getsentry/sentry-go dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c608ddcc..29d8f61d 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/cockroachdb/errors v1.9.1 github.com/disintegration/imaging v1.6.2 github.com/fatih/color v1.15.0 - github.com/getsentry/sentry-go v0.21.0 + github.com/getsentry/sentry-go v0.22.0 github.com/gin-contrib/cors v1.4.0 github.com/gin-gonic/gin v1.9.1 github.com/go-resty/resty/v2 v2.7.0 diff --git a/go.sum b/go.sum index e742c0fe..7b49d754 100644 --- a/go.sum +++ b/go.sum @@ -468,8 +468,8 @@ github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYis github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= -github.com/getsentry/sentry-go v0.21.0 h1:c9l5F1nPF30JIppulk4veau90PK6Smu3abgVtVQWon4= -github.com/getsentry/sentry-go v0.21.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +github.com/getsentry/sentry-go v0.22.0 h1:XNX9zKbv7baSEI65l+H1GEJgSeIC1c7EN5kluWaP6dM= +github.com/getsentry/sentry-go v0.22.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= From 11537219aae1d533b88f0a41ca6814bf84a6a9a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 11:05:30 +0000 Subject: [PATCH 14/61] mod: bump github.com/minio/minio-go/v7 from 7.0.53 to 7.0.58 Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.53 to 7.0.58. - [Release notes](https://github.com/minio/minio-go/releases) - [Commits](https://github.com/minio/minio-go/compare/v7.0.53...v7.0.58) --- updated-dependencies: - dependency-name: github.com/minio/minio-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 8 ++++---- go.sum | 17 ++++++++--------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index c608ddcc..4c791d29 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/huaweicloud/huaweicloud-sdk-go-obs v3.23.4+incompatible github.com/json-iterator/go v1.1.12 github.com/meilisearch/meilisearch-go v0.24.0 - github.com/minio/minio-go/v7 v7.0.53 + github.com/minio/minio-go/v7 v7.0.58 github.com/onsi/ginkgo/v2 v2.11.0 github.com/onsi/gomega v1.27.8 github.com/pyroscope-io/client v0.7.1 @@ -82,7 +82,7 @@ require ( github.com/jinzhu/now v1.1.5 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect - github.com/klauspost/compress v1.16.0 // indirect + github.com/klauspost/compress v1.16.5 // indirect github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect @@ -94,7 +94,7 @@ require ( github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-sqlite3 v1.14.16 // indirect github.com/minio/md5-simd v1.1.2 // indirect - github.com/minio/sha256-simd v1.0.0 // indirect + github.com/minio/sha256-simd v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -104,7 +104,7 @@ require ( github.com/pyroscope-io/godeltaprof v0.1.0 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rogpeppe/go-internal v1.9.0 // indirect - github.com/rs/xid v1.4.0 // indirect + github.com/rs/xid v1.5.0 // indirect github.com/smartwalle/ncrypto v1.0.0 // indirect github.com/spf13/afero v1.9.3 // indirect github.com/spf13/cast v1.5.0 // indirect diff --git a/go.sum b/go.sum index e742c0fe..2f834a4b 100644 --- a/go.sum +++ b/go.sum @@ -891,11 +891,10 @@ github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8 github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.6/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= +github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= @@ -990,10 +989,10 @@ github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3N github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.53 h1:qtPyQ+b0Cc1ums3LsnVMAYULPNdAGz8qdX8R2zl9XMU= -github.com/minio/minio-go/v7 v7.0.53/go.mod h1:IbbodHyjUAguneyucUaahv+VMNs/EOTV9du7A7/Z3HU= -github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= -github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= +github.com/minio/minio-go/v7 v7.0.58 h1:B9/8Az8Om/2kX8Ys2ai2PZbBTokRE5W6P5OaqnAs6po= +github.com/minio/minio-go/v7 v7.0.58/go.mod h1:NUDy4A4oXPq1l2yK6LTSvCEzAMeIcoz9lcj5dbzSrRE= +github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= +github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -1192,8 +1191,8 @@ github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4 github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/xid v1.4.0 h1:qd7wPTDkN6KQx2VmMBLrpHkiyQwgFXRnkOLacUiaSNY= -github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= From c02df3cce6fc19307c8ab8314bcad0efb1a010c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 11:07:04 +0000 Subject: [PATCH 15/61] mod: bump github.com/redis/rueidis from 1.0.5 to 1.0.10 Bumps [github.com/redis/rueidis](https://github.com/redis/rueidis) from 1.0.5 to 1.0.10. - [Release notes](https://github.com/redis/rueidis/releases) - [Commits](https://github.com/redis/rueidis/compare/v1.0.5...v1.0.10) --- updated-dependencies: - dependency-name: github.com/redis/rueidis dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c608ddcc..1b31a3e3 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/onsi/ginkgo/v2 v2.11.0 github.com/onsi/gomega v1.27.8 github.com/pyroscope-io/client v0.7.1 - github.com/redis/rueidis v1.0.5 + github.com/redis/rueidis v1.0.10 github.com/sirupsen/logrus v1.9.2 github.com/smartwalle/alipay/v3 v3.2.3 github.com/sourcegraph/conc v0.3.0 diff --git a/go.sum b/go.sum index e742c0fe..db52c5e8 100644 --- a/go.sum +++ b/go.sum @@ -1175,8 +1175,8 @@ github.com/pyroscope-io/client v0.7.1 h1:yFRhj3vbgjBxehvxQmedmUWJQ4CAfCHhn+itPsu github.com/pyroscope-io/client v0.7.1/go.mod h1:4h21iOU4pUOq0prKyDlvYRL+SCKsBc5wKiEtV+rJGqU= github.com/pyroscope-io/godeltaprof v0.1.0 h1:UBqtjt0yZi4jTxqZmLAs34XG6ycS3vUTlhEUSq4NHLE= github.com/pyroscope-io/godeltaprof v0.1.0/go.mod h1:psMITXp90+8pFenXkKIpNhrfmI9saQnPbba27VIaiQE= -github.com/redis/rueidis v1.0.5 h1:VQ8m2AfkNskm5nK9lswTvTpL6/clF+UY1KgIcAZcBx4= -github.com/redis/rueidis v1.0.5/go.mod h1:yxbpgX+VYNxCvdE0KEQXDeUFcF2hB2Oz/TJiaqFxoEU= +github.com/redis/rueidis v1.0.10 h1:5QbYwjVoC8sGFP3LXZIqUt6eqbpNY/ZZq9nYgCTRkqk= +github.com/redis/rueidis v1.0.10/go.mod h1:+1zDH4a8XhwIbCSlIhVGIu6Xib0ZMDoBM0qGhHXc1ew= github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= From ae22095604947bd0206f27741cba0a9c50b6954a Mon Sep 17 00:00:00 2001 From: Michael Li Date: Wed, 28 Jun 2023 01:57:32 +0800 Subject: [PATCH 16/61] use github.com/alimy/mir/v4 as web api generator --- auto/api/m/v1/user.go | 95 ++- auto/api/r/v1/user.go | 95 ++- auto/api/s/v1/user.go | 103 ++-- auto/api/v1/admin.go | 65 +-- auto/api/v1/alipay_priv.go | 152 +++-- auto/api/v1/alipay_pub.go | 65 +-- auto/api/v1/core.go | 596 +++++++++---------- auto/api/v1/followship.go | 173 +++--- auto/api/v1/friendship.go | 194 +++---- auto/api/v1/loose.go | 230 ++++---- auto/api/v1/priv.go | 773 +++++++++++++------------ auto/api/v1/pub.go | 241 ++++---- auto/api/x/v1/user.go | 95 ++- go.mod | 2 +- go.sum | 4 +- internal/conf/alipay.go | 38 ++ internal/model/web/alipay.go | 48 ++ internal/model/web/core.go | 59 ++ internal/model/web/loose.go | 13 + internal/model/web/priv.go | 77 +++ internal/model/web/utils.go | 47 ++ internal/model/web/web.go | 16 +- internal/model/web/xerror.go | 93 +++ internal/servants/admin/admin.go | 2 +- internal/servants/admin/user.go | 30 +- internal/servants/base/base.go | 50 +- internal/servants/bot/bot.go | 2 +- internal/servants/bot/user.go | 34 +- internal/servants/localoss/localoss.go | 2 +- internal/servants/localoss/user.go | 34 +- internal/servants/space/space.go | 2 +- internal/servants/space/user.go | 34 +- internal/servants/web/admin.go | 30 +- internal/servants/web/alipay.go | 114 +--- internal/servants/web/core.go | 94 +-- internal/servants/web/followship.go | 28 +- internal/servants/web/friendship.go | 30 +- internal/servants/web/loose.go | 49 +- internal/servants/web/priv.go | 117 +--- internal/servants/web/pub.go | 30 +- internal/servants/web/utils.go | 2 +- internal/servants/web/web.go | 44 +- mirc/admin/v1/user.go | 4 +- mirc/bot/v1/user.go | 4 +- mirc/gen.go | 4 +- mirc/localoss/v1/user.go | 4 +- mirc/space/v1/user.go | 4 +- mirc/web/v1/admin.go | 4 +- mirc/web/v1/alipay.go | 4 +- mirc/web/v1/core.go | 4 +- mirc/web/v1/followship.go | 4 +- mirc/web/v1/friendship.go | 4 +- mirc/web/v1/loose.go | 4 +- mirc/web/v1/priv.go | 4 +- mirc/web/v1/pub.go | 4 +- pkg/xerror/xerror.go | 2 +- 56 files changed, 1890 insertions(+), 2166 deletions(-) create mode 100644 internal/conf/alipay.go create mode 100644 internal/model/web/utils.go create mode 100644 internal/model/web/xerror.go diff --git a/auto/api/m/v1/user.go b/auto/api/m/v1/user.go index 234dc5d7..43136276 100644 --- a/auto/api/m/v1/user.go +++ b/auto/api/m/v1/user.go @@ -1,16 +1,29 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" ) +type _binding_ interface { + Bind(*gin.Context) mir.Error +} + +type _render_ interface { + Render(*gin.Context) +} + +type _default_ interface { + Bind(*gin.Context, any) mir.Error + Render(*gin.Context, any, mir.Error) +} + type LoginReq struct { AgentInfo AgentInfo `json:"agent_info"` Name string `json:"name"` @@ -37,6 +50,8 @@ type UserInfo struct { } type User interface { + _default_ + // Chain provide handlers chain for gin Chain() gin.HandlersChain @@ -46,21 +61,8 @@ type User interface { mustEmbedUnimplementedUserServant() } -type UserBinding interface { - BindLogin(*gin.Context) (*LoginReq, mir.Error) - - mustEmbedUnimplementedUserBinding() -} - -type UserRender interface { - RenderLogout(*gin.Context, mir.Error) - RenderLogin(*gin.Context, *LoginResp, mir.Error) - - mustEmbedUnimplementedUserRender() -} - // RegisterUserServant register User servant to gin -func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { +func RegisterUserServant(e *gin.Engine, s User) { router := e.Group("m/v1") // use chain for router middlewares := s.Chain() @@ -74,9 +76,8 @@ func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { default: } - r.RenderLogout(c, s.Logout()) + s.Render(c, nil, s.Logout()) }) - router.Handle("POST", "/user/login/", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -84,20 +85,36 @@ func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { default: } - req, err := b.BindLogin(c) + var ( + obj any + err mir.Error + ) + req := new(LoginReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderLogin(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.Login(req) - r.RenderLogin(c, resp, err) + obj, err = s.Login(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - } // UnimplementedUserServant can be embedded to have forward compatible implementations. -type UnimplementedUserServant struct { -} +type UnimplementedUserServant struct{} func (UnimplementedUserServant) Chain() gin.HandlersChain { return nil @@ -112,31 +129,3 @@ func (UnimplementedUserServant) Login(req *LoginReq) (*LoginResp, mir.Error) { } func (UnimplementedUserServant) mustEmbedUnimplementedUserServant() {} - -// UnimplementedUserRender can be embedded to have forward compatible implementations. -type UnimplementedUserRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedUserRender) RenderLogout(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedUserRender) RenderLogin(c *gin.Context, data *LoginResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedUserRender) mustEmbedUnimplementedUserRender() {} - -// UnimplementedUserBinding can be embedded to have forward compatible implementations. -type UnimplementedUserBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedUserBinding) BindLogin(c *gin.Context) (*LoginReq, mir.Error) { - obj := new(LoginReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedUserBinding) mustEmbedUnimplementedUserBinding() {} diff --git a/auto/api/r/v1/user.go b/auto/api/r/v1/user.go index 8963d936..6dd6407b 100644 --- a/auto/api/r/v1/user.go +++ b/auto/api/r/v1/user.go @@ -1,16 +1,29 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" ) +type _binding_ interface { + Bind(*gin.Context) mir.Error +} + +type _render_ interface { + Render(*gin.Context) +} + +type _default_ interface { + Bind(*gin.Context, any) mir.Error + Render(*gin.Context, any, mir.Error) +} + type LoginReq struct { AgentInfo AgentInfo `json:"agent_info"` Name string `json:"name"` @@ -37,6 +50,8 @@ type UserInfo struct { } type User interface { + _default_ + // Chain provide handlers chain for gin Chain() gin.HandlersChain @@ -46,21 +61,8 @@ type User interface { mustEmbedUnimplementedUserServant() } -type UserBinding interface { - BindLogin(*gin.Context) (*LoginReq, mir.Error) - - mustEmbedUnimplementedUserBinding() -} - -type UserRender interface { - RenderLogout(*gin.Context, mir.Error) - RenderLogin(*gin.Context, *LoginResp, mir.Error) - - mustEmbedUnimplementedUserRender() -} - // RegisterUserServant register User servant to gin -func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { +func RegisterUserServant(e *gin.Engine, s User) { router := e.Group("r/v1") // use chain for router middlewares := s.Chain() @@ -74,9 +76,8 @@ func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { default: } - r.RenderLogout(c, s.Logout()) + s.Render(c, nil, s.Logout()) }) - router.Handle("POST", "/user/login/", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -84,20 +85,36 @@ func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { default: } - req, err := b.BindLogin(c) + var ( + obj any + err mir.Error + ) + req := new(LoginReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderLogin(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.Login(req) - r.RenderLogin(c, resp, err) + obj, err = s.Login(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - } // UnimplementedUserServant can be embedded to have forward compatible implementations. -type UnimplementedUserServant struct { -} +type UnimplementedUserServant struct{} func (UnimplementedUserServant) Chain() gin.HandlersChain { return nil @@ -112,31 +129,3 @@ func (UnimplementedUserServant) Login(req *LoginReq) (*LoginResp, mir.Error) { } func (UnimplementedUserServant) mustEmbedUnimplementedUserServant() {} - -// UnimplementedUserRender can be embedded to have forward compatible implementations. -type UnimplementedUserRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedUserRender) RenderLogout(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedUserRender) RenderLogin(c *gin.Context, data *LoginResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedUserRender) mustEmbedUnimplementedUserRender() {} - -// UnimplementedUserBinding can be embedded to have forward compatible implementations. -type UnimplementedUserBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedUserBinding) BindLogin(c *gin.Context) (*LoginReq, mir.Error) { - obj := new(LoginReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedUserBinding) mustEmbedUnimplementedUserBinding() {} diff --git a/auto/api/s/v1/user.go b/auto/api/s/v1/user.go index 544c475e..285bece1 100644 --- a/auto/api/s/v1/user.go +++ b/auto/api/s/v1/user.go @@ -1,16 +1,29 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" ) +type _binding_ interface { + Bind(*gin.Context) mir.Error +} + +type _render_ interface { + Render(*gin.Context) +} + +type _default_ interface { + Bind(*gin.Context, any) mir.Error + Render(*gin.Context, any, mir.Error) +} + type LoginReq struct { AgentInfo AgentInfo `json:"agent_info"` Name string `json:"name"` @@ -37,6 +50,8 @@ type UserInfo struct { } type User interface { + _default_ + Logout() mir.Error Login(*LoginReq) (*LoginResp, mir.Error) Index() mir.Error @@ -44,22 +59,8 @@ type User interface { mustEmbedUnimplementedUserServant() } -type UserBinding interface { - BindLogin(*gin.Context) (*LoginReq, mir.Error) - - mustEmbedUnimplementedUserBinding() -} - -type UserRender interface { - RenderLogout(*gin.Context, mir.Error) - RenderLogin(*gin.Context, *LoginResp, mir.Error) - RenderIndex(*gin.Context, mir.Error) - - mustEmbedUnimplementedUserRender() -} - // RegisterUserServant register User servant to gin -func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { +func RegisterUserServant(e *gin.Engine, s User) { router := e.Group("s/v1") // register routes info to router @@ -70,9 +71,8 @@ func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { default: } - r.RenderLogout(c, s.Logout()) + s.Render(c, nil, s.Logout()) }) - router.Handle("POST", "/user/login/", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -80,15 +80,32 @@ func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { default: } - req, err := b.BindLogin(c) + var ( + obj any + err mir.Error + ) + req := new(LoginReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.Login(req) if err != nil { - r.RenderLogin(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.Login(req) - r.RenderLogin(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/index/", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -96,14 +113,12 @@ func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { default: } - r.RenderIndex(c, s.Index()) + s.Render(c, nil, s.Index()) }) - } // UnimplementedUserServant can be embedded to have forward compatible implementations. -type UnimplementedUserServant struct { -} +type UnimplementedUserServant struct{} func (UnimplementedUserServant) Logout() mir.Error { return mir.Errorln(http.StatusNotImplemented, http.StatusText(http.StatusNotImplemented)) @@ -118,35 +133,3 @@ func (UnimplementedUserServant) Index() mir.Error { } func (UnimplementedUserServant) mustEmbedUnimplementedUserServant() {} - -// UnimplementedUserRender can be embedded to have forward compatible implementations. -type UnimplementedUserRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedUserRender) RenderLogout(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedUserRender) RenderLogin(c *gin.Context, data *LoginResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedUserRender) RenderIndex(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedUserRender) mustEmbedUnimplementedUserRender() {} - -// UnimplementedUserBinding can be embedded to have forward compatible implementations. -type UnimplementedUserBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedUserBinding) BindLogin(c *gin.Context) (*LoginReq, mir.Error) { - obj := new(LoginReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedUserBinding) mustEmbedUnimplementedUserBinding() {} diff --git a/auto/api/v1/admin.go b/auto/api/v1/admin.go index 8c2dfd15..71e0c3cc 100644 --- a/auto/api/v1/admin.go +++ b/auto/api/v1/admin.go @@ -1,18 +1,20 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/model/web" ) type Admin interface { + _default_ + // Chain provide handlers chain for gin Chain() gin.HandlersChain @@ -21,20 +23,8 @@ type Admin interface { mustEmbedUnimplementedAdminServant() } -type AdminBinding interface { - BindChangeUserStatus(*gin.Context) (*web.ChangeUserStatusReq, mir.Error) - - mustEmbedUnimplementedAdminBinding() -} - -type AdminRender interface { - RenderChangeUserStatus(*gin.Context, mir.Error) - - mustEmbedUnimplementedAdminRender() -} - // RegisterAdminServant register Admin servant to gin -func RegisterAdminServant(e *gin.Engine, s Admin, b AdminBinding, r AdminRender) { +func RegisterAdminServant(e *gin.Engine, s Admin) { router := e.Group("v1") // use chain for router middlewares := s.Chain() @@ -48,19 +38,28 @@ func RegisterAdminServant(e *gin.Engine, s Admin, b AdminBinding, r AdminRender) default: } - req, err := b.BindChangeUserStatus(c) + var ( + obj any + err mir.Error + ) + req := new(web.ChangeUserStatusReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderChangeUserStatus(c, err) + s.Render(c, nil, err) return } - r.RenderChangeUserStatus(c, s.ChangeUserStatus(req)) - }) + s.Render(c, nil, s.ChangeUserStatus(req)) + }) } // UnimplementedAdminServant can be embedded to have forward compatible implementations. -type UnimplementedAdminServant struct { -} +type UnimplementedAdminServant struct{} func (UnimplementedAdminServant) Chain() gin.HandlersChain { return nil @@ -71,27 +70,3 @@ func (UnimplementedAdminServant) ChangeUserStatus(req *web.ChangeUserStatusReq) } func (UnimplementedAdminServant) mustEmbedUnimplementedAdminServant() {} - -// UnimplementedAdminRender can be embedded to have forward compatible implementations. -type UnimplementedAdminRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedAdminRender) RenderChangeUserStatus(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedAdminRender) mustEmbedUnimplementedAdminRender() {} - -// UnimplementedAdminBinding can be embedded to have forward compatible implementations. -type UnimplementedAdminBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedAdminBinding) BindChangeUserStatus(c *gin.Context) (*web.ChangeUserStatusReq, mir.Error) { - obj := new(web.ChangeUserStatusReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedAdminBinding) mustEmbedUnimplementedAdminBinding() {} diff --git a/auto/api/v1/alipay_priv.go b/auto/api/v1/alipay_priv.go index 779ff594..8f655b77 100644 --- a/auto/api/v1/alipay_priv.go +++ b/auto/api/v1/alipay_priv.go @@ -1,18 +1,20 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/model/web" ) type AlipayPriv interface { + _default_ + // Chain provide handlers chain for gin Chain() gin.HandlersChain @@ -23,24 +25,8 @@ type AlipayPriv interface { mustEmbedUnimplementedAlipayPrivServant() } -type AlipayPrivBinding interface { - BindUserWalletBills(*gin.Context) (*web.UserWalletBillsReq, mir.Error) - BindUserRechargeResult(*gin.Context) (*web.UserRechargeResultReq, mir.Error) - BindUserRechargeLink(*gin.Context) (*web.UserRechargeLinkReq, mir.Error) - - mustEmbedUnimplementedAlipayPrivBinding() -} - -type AlipayPrivRender interface { - RenderUserWalletBills(*gin.Context, *web.UserWalletBillsResp, mir.Error) - RenderUserRechargeResult(*gin.Context, *web.UserRechargeResultResp, mir.Error) - RenderUserRechargeLink(*gin.Context, *web.UserRechargeLinkResp, mir.Error) - - mustEmbedUnimplementedAlipayPrivRender() -} - // RegisterAlipayPrivServant register AlipayPriv servant to gin -func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv, b AlipayPrivBinding, r AlipayPrivRender) { +func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv) { router := e.Group("v1") // use chain for router middlewares := s.Chain() @@ -54,15 +40,32 @@ func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv, b AlipayPrivBinding, default: } - req, err := b.BindUserWalletBills(c) + var ( + obj any + err mir.Error + ) + req := new(web.UserWalletBillsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.UserWalletBills(req) if err != nil { - r.RenderUserWalletBills(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.UserWalletBills(req) - r.RenderUserWalletBills(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/user/recharge", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -70,15 +73,32 @@ func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv, b AlipayPrivBinding, default: } - req, err := b.BindUserRechargeResult(c) + var ( + obj any + err mir.Error + ) + req := new(web.UserRechargeResultReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.UserRechargeResult(req) if err != nil { - r.RenderUserRechargeResult(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.UserRechargeResult(req) - r.RenderUserRechargeResult(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/user/recharge", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -86,20 +106,36 @@ func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv, b AlipayPrivBinding, default: } - req, err := b.BindUserRechargeLink(c) + var ( + obj any + err mir.Error + ) + req := new(web.UserRechargeLinkReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.UserRechargeLink(req) if err != nil { - r.RenderUserRechargeLink(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.UserRechargeLink(req) - r.RenderUserRechargeLink(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - } // UnimplementedAlipayPrivServant can be embedded to have forward compatible implementations. -type UnimplementedAlipayPrivServant struct { -} +type UnimplementedAlipayPrivServant struct{} func (UnimplementedAlipayPrivServant) Chain() gin.HandlersChain { return nil @@ -118,47 +154,3 @@ func (UnimplementedAlipayPrivServant) UserRechargeLink(req *web.UserRechargeLink } func (UnimplementedAlipayPrivServant) mustEmbedUnimplementedAlipayPrivServant() {} - -// UnimplementedAlipayPrivRender can be embedded to have forward compatible implementations. -type UnimplementedAlipayPrivRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedAlipayPrivRender) RenderUserWalletBills(c *gin.Context, data *web.UserWalletBillsResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedAlipayPrivRender) RenderUserRechargeResult(c *gin.Context, data *web.UserRechargeResultResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedAlipayPrivRender) RenderUserRechargeLink(c *gin.Context, data *web.UserRechargeLinkResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedAlipayPrivRender) mustEmbedUnimplementedAlipayPrivRender() {} - -// UnimplementedAlipayPrivBinding can be embedded to have forward compatible implementations. -type UnimplementedAlipayPrivBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedAlipayPrivBinding) BindUserWalletBills(c *gin.Context) (*web.UserWalletBillsReq, mir.Error) { - obj := new(web.UserWalletBillsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedAlipayPrivBinding) BindUserRechargeResult(c *gin.Context) (*web.UserRechargeResultReq, mir.Error) { - obj := new(web.UserRechargeResultReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedAlipayPrivBinding) BindUserRechargeLink(c *gin.Context) (*web.UserRechargeLinkReq, mir.Error) { - obj := new(web.UserRechargeLinkReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedAlipayPrivBinding) mustEmbedUnimplementedAlipayPrivBinding() {} diff --git a/auto/api/v1/alipay_pub.go b/auto/api/v1/alipay_pub.go index 5aa0dbb1..ad61d9a7 100644 --- a/auto/api/v1/alipay_pub.go +++ b/auto/api/v1/alipay_pub.go @@ -1,37 +1,27 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/model/web" ) type AlipayPub interface { + _default_ + AlipayNotify(*web.AlipayNotifyReq) mir.Error mustEmbedUnimplementedAlipayPubServant() } -type AlipayPubBinding interface { - BindAlipayNotify(*gin.Context) (*web.AlipayNotifyReq, mir.Error) - - mustEmbedUnimplementedAlipayPubBinding() -} - -type AlipayPubRender interface { - RenderAlipayNotify(*gin.Context, mir.Error) - - mustEmbedUnimplementedAlipayPubRender() -} - // RegisterAlipayPubServant register AlipayPub servant to gin -func RegisterAlipayPubServant(e *gin.Engine, s AlipayPub, b AlipayPubBinding, r AlipayPubRender) { +func RegisterAlipayPubServant(e *gin.Engine, s AlipayPub) { router := e.Group("v1") // register routes info to router @@ -42,46 +32,31 @@ func RegisterAlipayPubServant(e *gin.Engine, s AlipayPub, b AlipayPubBinding, r default: } - req, err := b.BindAlipayNotify(c) + var ( + obj any + err mir.Error + ) + req := new(web.AlipayNotifyReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderAlipayNotify(c, err) + s.Render(c, nil, err) return } - r.RenderAlipayNotify(c, s.AlipayNotify(req)) - }) + s.Render(c, nil, s.AlipayNotify(req)) + }) } // UnimplementedAlipayPubServant can be embedded to have forward compatible implementations. -type UnimplementedAlipayPubServant struct { -} +type UnimplementedAlipayPubServant struct{} func (UnimplementedAlipayPubServant) AlipayNotify(req *web.AlipayNotifyReq) mir.Error { return mir.Errorln(http.StatusNotImplemented, http.StatusText(http.StatusNotImplemented)) } func (UnimplementedAlipayPubServant) mustEmbedUnimplementedAlipayPubServant() {} - -// UnimplementedAlipayPubRender can be embedded to have forward compatible implementations. -type UnimplementedAlipayPubRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedAlipayPubRender) RenderAlipayNotify(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedAlipayPubRender) mustEmbedUnimplementedAlipayPubRender() {} - -// UnimplementedAlipayPubBinding can be embedded to have forward compatible implementations. -type UnimplementedAlipayPubBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedAlipayPubBinding) BindAlipayNotify(c *gin.Context) (*web.AlipayNotifyReq, mir.Error) { - obj := new(web.AlipayNotifyReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedAlipayPubBinding) mustEmbedUnimplementedAlipayPubBinding() {} diff --git a/auto/api/v1/core.go b/auto/api/v1/core.go index 75c3bbd8..5608ef05 100644 --- a/auto/api/v1/core.go +++ b/auto/api/v1/core.go @@ -1,18 +1,20 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/model/web" ) type Core interface { + _default_ + // Chain provide handlers chain for gin Chain() gin.HandlersChain @@ -36,50 +38,8 @@ type Core interface { mustEmbedUnimplementedCoreServant() } -type CoreBinding interface { - BindTweetCollectionStatus(*gin.Context) (*web.TweetCollectionStatusReq, mir.Error) - BindTweetStarStatus(*gin.Context) (*web.TweetStarStatusReq, mir.Error) - BindSuggestTags(*gin.Context) (*web.SuggestTagsReq, mir.Error) - BindSuggestUsers(*gin.Context) (*web.SuggestUsersReq, mir.Error) - BindChangeAvatar(*gin.Context) (*web.ChangeAvatarReq, mir.Error) - BindChangeNickname(*gin.Context) (*web.ChangeNicknameReq, mir.Error) - BindChangePassword(*gin.Context) (*web.ChangePasswordReq, mir.Error) - BindUserPhoneBind(*gin.Context) (*web.UserPhoneBindReq, mir.Error) - BindGetStars(*gin.Context) (*web.GetStarsReq, mir.Error) - BindGetCollections(*gin.Context) (*web.GetCollectionsReq, mir.Error) - BindSendUserWhisper(*gin.Context) (*web.SendWhisperReq, mir.Error) - BindReadMessage(*gin.Context) (*web.ReadMessageReq, mir.Error) - BindGetMessages(*gin.Context) (*web.GetMessagesReq, mir.Error) - BindGetUnreadMsgCount(*gin.Context) (*web.GetUnreadMsgCountReq, mir.Error) - BindGetUserInfo(*gin.Context) (*web.UserInfoReq, mir.Error) - BindSyncSearchIndex(*gin.Context) (*web.SyncSearchIndexReq, mir.Error) - - mustEmbedUnimplementedCoreBinding() -} - -type CoreRender interface { - RenderTweetCollectionStatus(*gin.Context, *web.TweetCollectionStatusResp, mir.Error) - RenderTweetStarStatus(*gin.Context, *web.TweetStarStatusResp, mir.Error) - RenderSuggestTags(*gin.Context, *web.SuggestTagsResp, mir.Error) - RenderSuggestUsers(*gin.Context, *web.SuggestUsersResp, mir.Error) - RenderChangeAvatar(*gin.Context, mir.Error) - RenderChangeNickname(*gin.Context, mir.Error) - RenderChangePassword(*gin.Context, mir.Error) - RenderUserPhoneBind(*gin.Context, mir.Error) - RenderGetStars(*gin.Context, *web.GetStarsResp, mir.Error) - RenderGetCollections(*gin.Context, *web.GetCollectionsResp, mir.Error) - RenderSendUserWhisper(*gin.Context, mir.Error) - RenderReadMessage(*gin.Context, mir.Error) - RenderGetMessages(*gin.Context, *web.GetMessagesResp, mir.Error) - RenderGetUnreadMsgCount(*gin.Context, *web.GetUnreadMsgCountResp, mir.Error) - RenderGetUserInfo(*gin.Context, *web.UserInfoResp, mir.Error) - RenderSyncSearchIndex(*gin.Context, mir.Error) - - mustEmbedUnimplementedCoreRender() -} - // RegisterCoreServant register Core servant to gin -func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { +func RegisterCoreServant(e *gin.Engine, s Core) { router := e.Group("v1") // use chain for router middlewares := s.Chain() @@ -93,15 +53,32 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindTweetCollectionStatus(c) + var ( + obj any + err mir.Error + ) + req := new(web.TweetCollectionStatusReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderTweetCollectionStatus(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.TweetCollectionStatus(req) - r.RenderTweetCollectionStatus(c, resp, err) + obj, err = s.TweetCollectionStatus(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/post/star", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -109,15 +86,32 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindTweetStarStatus(c) + var ( + obj any + err mir.Error + ) + req := new(web.TweetStarStatusReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.TweetStarStatus(req) if err != nil { - r.RenderTweetStarStatus(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.TweetStarStatus(req) - r.RenderTweetStarStatus(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/suggest/tags", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -125,15 +119,32 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindSuggestTags(c) + var ( + obj any + err mir.Error + ) + req := new(web.SuggestTagsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.SuggestTags(req) if err != nil { - r.RenderSuggestTags(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.SuggestTags(req) - r.RenderSuggestTags(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/suggest/users", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -141,15 +152,32 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindSuggestUsers(c) + var ( + obj any + err mir.Error + ) + req := new(web.SuggestUsersReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderSuggestUsers(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.SuggestUsers(req) - r.RenderSuggestUsers(c, resp, err) + obj, err = s.SuggestUsers(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/user/avatar", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -157,14 +185,24 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindChangeAvatar(c) + var ( + obj any + err mir.Error + ) + req := new(web.ChangeAvatarReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderChangeAvatar(c, err) + s.Render(c, nil, err) return } - r.RenderChangeAvatar(c, s.ChangeAvatar(req)) - }) + s.Render(c, nil, s.ChangeAvatar(req)) + }) router.Handle("POST", "/user/nickname", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -172,14 +210,24 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindChangeNickname(c) + var ( + obj any + err mir.Error + ) + req := new(web.ChangeNicknameReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderChangeNickname(c, err) + s.Render(c, nil, err) return } - r.RenderChangeNickname(c, s.ChangeNickname(req)) - }) + s.Render(c, nil, s.ChangeNickname(req)) + }) router.Handle("POST", "/user/password", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -187,14 +235,24 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindChangePassword(c) + var ( + obj any + err mir.Error + ) + req := new(web.ChangePasswordReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderChangePassword(c, err) + s.Render(c, nil, err) return } - r.RenderChangePassword(c, s.ChangePassword(req)) - }) + s.Render(c, nil, s.ChangePassword(req)) + }) router.Handle("POST", "/user/phone", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -202,14 +260,24 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindUserPhoneBind(c) + var ( + obj any + err mir.Error + ) + req := new(web.UserPhoneBindReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderUserPhoneBind(c, err) + s.Render(c, nil, err) return } - r.RenderUserPhoneBind(c, s.UserPhoneBind(req)) - }) + s.Render(c, nil, s.UserPhoneBind(req)) + }) router.Handle("GET", "/user/stars", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -217,15 +285,32 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindGetStars(c) + var ( + obj any + err mir.Error + ) + req := new(web.GetStarsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.GetStars(req) if err != nil { - r.RenderGetStars(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.GetStars(req) - r.RenderGetStars(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/user/collections", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -233,15 +318,32 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindGetCollections(c) + var ( + obj any + err mir.Error + ) + req := new(web.GetCollectionsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderGetCollections(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.GetCollections(req) - r.RenderGetCollections(c, resp, err) + obj, err = s.GetCollections(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/user/whisper", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -249,14 +351,24 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindSendUserWhisper(c) + var ( + obj any + err mir.Error + ) + req := new(web.SendWhisperReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderSendUserWhisper(c, err) + s.Render(c, nil, err) return } - r.RenderSendUserWhisper(c, s.SendUserWhisper(req)) - }) + s.Render(c, nil, s.SendUserWhisper(req)) + }) router.Handle("POST", "/user/message/read", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -264,14 +376,24 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindReadMessage(c) + var ( + obj any + err mir.Error + ) + req := new(web.ReadMessageReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderReadMessage(c, err) + s.Render(c, nil, err) return } - r.RenderReadMessage(c, s.ReadMessage(req)) - }) + s.Render(c, nil, s.ReadMessage(req)) + }) router.Handle("GET", "/user/messages", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -279,15 +401,32 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindGetMessages(c) + var ( + obj any + err mir.Error + ) + req := new(web.GetMessagesReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.GetMessages(req) if err != nil { - r.RenderGetMessages(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.GetMessages(req) - r.RenderGetMessages(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/user/msgcount/unread", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -295,15 +434,32 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindGetUnreadMsgCount(c) + var ( + obj any + err mir.Error + ) + req := new(web.GetUnreadMsgCountReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderGetUnreadMsgCount(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.GetUnreadMsgCount(req) - r.RenderGetUnreadMsgCount(c, resp, err) + obj, err = s.GetUnreadMsgCount(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/user/info", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -311,15 +467,32 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindGetUserInfo(c) + var ( + obj any + err mir.Error + ) + req := new(web.UserInfoReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderGetUserInfo(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.GetUserInfo(req) - r.RenderGetUserInfo(c, resp, err) + obj, err = s.GetUserInfo(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/sync/index", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -327,19 +500,28 @@ func RegisterCoreServant(e *gin.Engine, s Core, b CoreBinding, r CoreRender) { default: } - req, err := b.BindSyncSearchIndex(c) + var ( + obj any + err mir.Error + ) + req := new(web.SyncSearchIndexReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderSyncSearchIndex(c, err) + s.Render(c, nil, err) return } - r.RenderSyncSearchIndex(c, s.SyncSearchIndex(req)) - }) + s.Render(c, nil, s.SyncSearchIndex(req)) + }) } // UnimplementedCoreServant can be embedded to have forward compatible implementations. -type UnimplementedCoreServant struct { -} +type UnimplementedCoreServant struct{} func (UnimplementedCoreServant) Chain() gin.HandlersChain { return nil @@ -410,177 +592,3 @@ func (UnimplementedCoreServant) SyncSearchIndex(req *web.SyncSearchIndexReq) mir } func (UnimplementedCoreServant) mustEmbedUnimplementedCoreServant() {} - -// UnimplementedCoreRender can be embedded to have forward compatible implementations. -type UnimplementedCoreRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedCoreRender) RenderTweetCollectionStatus(c *gin.Context, data *web.TweetCollectionStatusResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedCoreRender) RenderTweetStarStatus(c *gin.Context, data *web.TweetStarStatusResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedCoreRender) RenderSuggestTags(c *gin.Context, data *web.SuggestTagsResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedCoreRender) RenderSuggestUsers(c *gin.Context, data *web.SuggestUsersResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedCoreRender) RenderChangeAvatar(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedCoreRender) RenderChangeNickname(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedCoreRender) RenderChangePassword(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedCoreRender) RenderUserPhoneBind(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedCoreRender) RenderGetStars(c *gin.Context, data *web.GetStarsResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedCoreRender) RenderGetCollections(c *gin.Context, data *web.GetCollectionsResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedCoreRender) RenderSendUserWhisper(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedCoreRender) RenderReadMessage(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedCoreRender) RenderGetMessages(c *gin.Context, data *web.GetMessagesResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedCoreRender) RenderGetUnreadMsgCount(c *gin.Context, data *web.GetUnreadMsgCountResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedCoreRender) RenderGetUserInfo(c *gin.Context, data *web.UserInfoResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedCoreRender) RenderSyncSearchIndex(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedCoreRender) mustEmbedUnimplementedCoreRender() {} - -// UnimplementedCoreBinding can be embedded to have forward compatible implementations. -type UnimplementedCoreBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedCoreBinding) BindTweetCollectionStatus(c *gin.Context) (*web.TweetCollectionStatusReq, mir.Error) { - obj := new(web.TweetCollectionStatusReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindTweetStarStatus(c *gin.Context) (*web.TweetStarStatusReq, mir.Error) { - obj := new(web.TweetStarStatusReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindSuggestTags(c *gin.Context) (*web.SuggestTagsReq, mir.Error) { - obj := new(web.SuggestTagsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindSuggestUsers(c *gin.Context) (*web.SuggestUsersReq, mir.Error) { - obj := new(web.SuggestUsersReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindChangeAvatar(c *gin.Context) (*web.ChangeAvatarReq, mir.Error) { - obj := new(web.ChangeAvatarReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindChangeNickname(c *gin.Context) (*web.ChangeNicknameReq, mir.Error) { - obj := new(web.ChangeNicknameReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindChangePassword(c *gin.Context) (*web.ChangePasswordReq, mir.Error) { - obj := new(web.ChangePasswordReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindUserPhoneBind(c *gin.Context) (*web.UserPhoneBindReq, mir.Error) { - obj := new(web.UserPhoneBindReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindGetStars(c *gin.Context) (*web.GetStarsReq, mir.Error) { - obj := new(web.GetStarsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindGetCollections(c *gin.Context) (*web.GetCollectionsReq, mir.Error) { - obj := new(web.GetCollectionsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindSendUserWhisper(c *gin.Context) (*web.SendWhisperReq, mir.Error) { - obj := new(web.SendWhisperReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindReadMessage(c *gin.Context) (*web.ReadMessageReq, mir.Error) { - obj := new(web.ReadMessageReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindGetMessages(c *gin.Context) (*web.GetMessagesReq, mir.Error) { - obj := new(web.GetMessagesReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindGetUnreadMsgCount(c *gin.Context) (*web.GetUnreadMsgCountReq, mir.Error) { - obj := new(web.GetUnreadMsgCountReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindGetUserInfo(c *gin.Context) (*web.UserInfoReq, mir.Error) { - obj := new(web.UserInfoReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) BindSyncSearchIndex(c *gin.Context) (*web.SyncSearchIndexReq, mir.Error) { - obj := new(web.SyncSearchIndexReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedCoreBinding) mustEmbedUnimplementedCoreBinding() {} diff --git a/auto/api/v1/followship.go b/auto/api/v1/followship.go index fb2892f8..775e16f5 100644 --- a/auto/api/v1/followship.go +++ b/auto/api/v1/followship.go @@ -1,18 +1,20 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/model/web" ) type Followship interface { + _default_ + // Chain provide handlers chain for gin Chain() gin.HandlersChain @@ -24,26 +26,8 @@ type Followship interface { mustEmbedUnimplementedFollowshipServant() } -type FollowshipBinding interface { - BindListFollowers(*gin.Context) (*web.ListFollowersReq, mir.Error) - BindListFollowings(*gin.Context) (*web.ListFollowingsReq, mir.Error) - BindDeleteFollowing(*gin.Context) (*web.DeleteFollowingReq, mir.Error) - BindAddFollowing(*gin.Context) (*web.AddFollowingReq, mir.Error) - - mustEmbedUnimplementedFollowshipBinding() -} - -type FollowshipRender interface { - RenderListFollowers(*gin.Context, *web.ListFollowersResp, mir.Error) - RenderListFollowings(*gin.Context, *web.ListFollowingsResp, mir.Error) - RenderDeleteFollowing(*gin.Context, mir.Error) - RenderAddFollowing(*gin.Context, mir.Error) - - mustEmbedUnimplementedFollowshipRender() -} - // RegisterFollowshipServant register Followship servant to gin -func RegisterFollowshipServant(e *gin.Engine, s Followship, b FollowshipBinding, r FollowshipRender) { +func RegisterFollowshipServant(e *gin.Engine, s Followship) { router := e.Group("v1") // use chain for router middlewares := s.Chain() @@ -57,15 +41,32 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship, b FollowshipBinding, default: } - req, err := b.BindListFollowers(c) + var ( + obj any + err mir.Error + ) + req := new(web.ListFollowersReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.ListFollowers(req) if err != nil { - r.RenderListFollowers(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.ListFollowers(req) - r.RenderListFollowers(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/following/list", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -73,15 +74,32 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship, b FollowshipBinding, default: } - req, err := b.BindListFollowings(c) + var ( + obj any + err mir.Error + ) + req := new(web.ListFollowingsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.ListFollowings(req) if err != nil { - r.RenderListFollowings(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.ListFollowings(req) - r.RenderListFollowings(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/following/delete", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -89,14 +107,24 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship, b FollowshipBinding, default: } - req, err := b.BindDeleteFollowing(c) + var ( + obj any + err mir.Error + ) + req := new(web.DeleteFollowingReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderDeleteFollowing(c, err) + s.Render(c, nil, err) return } - r.RenderDeleteFollowing(c, s.DeleteFollowing(req)) - }) + s.Render(c, nil, s.DeleteFollowing(req)) + }) router.Handle("POST", "/following/add", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -104,19 +132,28 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship, b FollowshipBinding, default: } - req, err := b.BindAddFollowing(c) + var ( + obj any + err mir.Error + ) + req := new(web.AddFollowingReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderAddFollowing(c, err) + s.Render(c, nil, err) return } - r.RenderAddFollowing(c, s.AddFollowing(req)) - }) + s.Render(c, nil, s.AddFollowing(req)) + }) } // UnimplementedFollowshipServant can be embedded to have forward compatible implementations. -type UnimplementedFollowshipServant struct { -} +type UnimplementedFollowshipServant struct{} func (UnimplementedFollowshipServant) Chain() gin.HandlersChain { return nil @@ -139,57 +176,3 @@ func (UnimplementedFollowshipServant) AddFollowing(req *web.AddFollowingReq) mir } func (UnimplementedFollowshipServant) mustEmbedUnimplementedFollowshipServant() {} - -// UnimplementedFollowshipRender can be embedded to have forward compatible implementations. -type UnimplementedFollowshipRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedFollowshipRender) RenderListFollowers(c *gin.Context, data *web.ListFollowersResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedFollowshipRender) RenderListFollowings(c *gin.Context, data *web.ListFollowingsResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedFollowshipRender) RenderDeleteFollowing(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedFollowshipRender) RenderAddFollowing(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedFollowshipRender) mustEmbedUnimplementedFollowshipRender() {} - -// UnimplementedFollowshipBinding can be embedded to have forward compatible implementations. -type UnimplementedFollowshipBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedFollowshipBinding) BindListFollowers(c *gin.Context) (*web.ListFollowersReq, mir.Error) { - obj := new(web.ListFollowersReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedFollowshipBinding) BindListFollowings(c *gin.Context) (*web.ListFollowingsReq, mir.Error) { - obj := new(web.ListFollowingsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedFollowshipBinding) BindDeleteFollowing(c *gin.Context) (*web.DeleteFollowingReq, mir.Error) { - obj := new(web.DeleteFollowingReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedFollowshipBinding) BindAddFollowing(c *gin.Context) (*web.AddFollowingReq, mir.Error) { - obj := new(web.AddFollowingReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedFollowshipBinding) mustEmbedUnimplementedFollowshipBinding() {} diff --git a/auto/api/v1/friendship.go b/auto/api/v1/friendship.go index f254c490..403ec6c2 100644 --- a/auto/api/v1/friendship.go +++ b/auto/api/v1/friendship.go @@ -1,18 +1,20 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/model/web" ) type Friendship interface { + _default_ + // Chain provide handlers chain for gin Chain() gin.HandlersChain @@ -25,28 +27,8 @@ type Friendship interface { mustEmbedUnimplementedFriendshipServant() } -type FriendshipBinding interface { - BindGetContacts(*gin.Context) (*web.GetContactsReq, mir.Error) - BindDeleteFriend(*gin.Context) (*web.DeleteFriendReq, mir.Error) - BindRejectFriend(*gin.Context) (*web.RejectFriendReq, mir.Error) - BindAddFriend(*gin.Context) (*web.AddFriendReq, mir.Error) - BindRequestingFriend(*gin.Context) (*web.RequestingFriendReq, mir.Error) - - mustEmbedUnimplementedFriendshipBinding() -} - -type FriendshipRender interface { - RenderGetContacts(*gin.Context, *web.GetContactsResp, mir.Error) - RenderDeleteFriend(*gin.Context, mir.Error) - RenderRejectFriend(*gin.Context, mir.Error) - RenderAddFriend(*gin.Context, mir.Error) - RenderRequestingFriend(*gin.Context, mir.Error) - - mustEmbedUnimplementedFriendshipRender() -} - // RegisterFriendshipServant register Friendship servant to gin -func RegisterFriendshipServant(e *gin.Engine, s Friendship, b FriendshipBinding, r FriendshipRender) { +func RegisterFriendshipServant(e *gin.Engine, s Friendship) { router := e.Group("v1") // use chain for router middlewares := s.Chain() @@ -60,15 +42,32 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship, b FriendshipBinding, default: } - req, err := b.BindGetContacts(c) + var ( + obj any + err mir.Error + ) + req := new(web.GetContactsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.GetContacts(req) if err != nil { - r.RenderGetContacts(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.GetContacts(req) - r.RenderGetContacts(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/friend/delete", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -76,14 +75,24 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship, b FriendshipBinding, default: } - req, err := b.BindDeleteFriend(c) + var ( + obj any + err mir.Error + ) + req := new(web.DeleteFriendReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderDeleteFriend(c, err) + s.Render(c, nil, err) return } - r.RenderDeleteFriend(c, s.DeleteFriend(req)) - }) + s.Render(c, nil, s.DeleteFriend(req)) + }) router.Handle("POST", "/friend/reject", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -91,14 +100,24 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship, b FriendshipBinding, default: } - req, err := b.BindRejectFriend(c) + var ( + obj any + err mir.Error + ) + req := new(web.RejectFriendReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderRejectFriend(c, err) + s.Render(c, nil, err) return } - r.RenderRejectFriend(c, s.RejectFriend(req)) - }) + s.Render(c, nil, s.RejectFriend(req)) + }) router.Handle("POST", "/friend/add", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -106,14 +125,24 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship, b FriendshipBinding, default: } - req, err := b.BindAddFriend(c) + var ( + obj any + err mir.Error + ) + req := new(web.AddFriendReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderAddFriend(c, err) + s.Render(c, nil, err) return } - r.RenderAddFriend(c, s.AddFriend(req)) - }) + s.Render(c, nil, s.AddFriend(req)) + }) router.Handle("POST", "/friend/requesting", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -121,19 +150,28 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship, b FriendshipBinding, default: } - req, err := b.BindRequestingFriend(c) + var ( + obj any + err mir.Error + ) + req := new(web.RequestingFriendReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderRequestingFriend(c, err) + s.Render(c, nil, err) return } - r.RenderRequestingFriend(c, s.RequestingFriend(req)) - }) + s.Render(c, nil, s.RequestingFriend(req)) + }) } // UnimplementedFriendshipServant can be embedded to have forward compatible implementations. -type UnimplementedFriendshipServant struct { -} +type UnimplementedFriendshipServant struct{} func (UnimplementedFriendshipServant) Chain() gin.HandlersChain { return nil @@ -160,67 +198,3 @@ func (UnimplementedFriendshipServant) RequestingFriend(req *web.RequestingFriend } func (UnimplementedFriendshipServant) mustEmbedUnimplementedFriendshipServant() {} - -// UnimplementedFriendshipRender can be embedded to have forward compatible implementations. -type UnimplementedFriendshipRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedFriendshipRender) RenderGetContacts(c *gin.Context, data *web.GetContactsResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedFriendshipRender) RenderDeleteFriend(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedFriendshipRender) RenderRejectFriend(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedFriendshipRender) RenderAddFriend(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedFriendshipRender) RenderRequestingFriend(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedFriendshipRender) mustEmbedUnimplementedFriendshipRender() {} - -// UnimplementedFriendshipBinding can be embedded to have forward compatible implementations. -type UnimplementedFriendshipBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedFriendshipBinding) BindGetContacts(c *gin.Context) (*web.GetContactsReq, mir.Error) { - obj := new(web.GetContactsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedFriendshipBinding) BindDeleteFriend(c *gin.Context) (*web.DeleteFriendReq, mir.Error) { - obj := new(web.DeleteFriendReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedFriendshipBinding) BindRejectFriend(c *gin.Context) (*web.RejectFriendReq, mir.Error) { - obj := new(web.RejectFriendReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedFriendshipBinding) BindAddFriend(c *gin.Context) (*web.AddFriendReq, mir.Error) { - obj := new(web.AddFriendReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedFriendshipBinding) BindRequestingFriend(c *gin.Context) (*web.RequestingFriendReq, mir.Error) { - obj := new(web.RequestingFriendReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedFriendshipBinding) mustEmbedUnimplementedFriendshipBinding() {} diff --git a/auto/api/v1/loose.go b/auto/api/v1/loose.go index 13e471ae..309609aa 100644 --- a/auto/api/v1/loose.go +++ b/auto/api/v1/loose.go @@ -1,18 +1,20 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/model/web" ) type Loose interface { + _default_ + // Chain provide handlers chain for gin Chain() gin.HandlersChain @@ -25,28 +27,8 @@ type Loose interface { mustEmbedUnimplementedLooseServant() } -type LooseBinding interface { - BindTweetComments(*gin.Context) (*web.TweetCommentsReq, mir.Error) - BindTopicList(*gin.Context) (*web.TopicListReq, mir.Error) - BindGetUserProfile(*gin.Context) (*web.GetUserProfileReq, mir.Error) - BindGetUserTweets(*gin.Context) (*web.GetUserTweetsReq, mir.Error) - BindTimeline(*gin.Context) (*web.TimelineReq, mir.Error) - - mustEmbedUnimplementedLooseBinding() -} - -type LooseRender interface { - RenderTweetComments(*gin.Context, *web.TweetCommentsResp, mir.Error) - RenderTopicList(*gin.Context, *web.TopicListResp, mir.Error) - RenderGetUserProfile(*gin.Context, *web.GetUserProfileResp, mir.Error) - RenderGetUserTweets(*gin.Context, *web.GetUserTweetsResp, mir.Error) - RenderTimeline(*gin.Context, *web.TimelineResp, mir.Error) - - mustEmbedUnimplementedLooseRender() -} - // RegisterLooseServant register Loose servant to gin -func RegisterLooseServant(e *gin.Engine, s Loose, b LooseBinding, r LooseRender) { +func RegisterLooseServant(e *gin.Engine, s Loose) { router := e.Group("v1") // use chain for router middlewares := s.Chain() @@ -60,15 +42,32 @@ func RegisterLooseServant(e *gin.Engine, s Loose, b LooseBinding, r LooseRender) default: } - req, err := b.BindTweetComments(c) + var ( + obj any + err mir.Error + ) + req := new(web.TweetCommentsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderTweetComments(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.TweetComments(req) - r.RenderTweetComments(c, resp, err) + obj, err = s.TweetComments(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/tags", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -76,15 +75,32 @@ func RegisterLooseServant(e *gin.Engine, s Loose, b LooseBinding, r LooseRender) default: } - req, err := b.BindTopicList(c) + var ( + obj any + err mir.Error + ) + req := new(web.TopicListReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.TopicList(req) if err != nil { - r.RenderTopicList(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.TopicList(req) - r.RenderTopicList(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/user/profile", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -92,15 +108,32 @@ func RegisterLooseServant(e *gin.Engine, s Loose, b LooseBinding, r LooseRender) default: } - req, err := b.BindGetUserProfile(c) + var ( + obj any + err mir.Error + ) + req := new(web.GetUserProfileReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderGetUserProfile(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.GetUserProfile(req) - r.RenderGetUserProfile(c, resp, err) + obj, err = s.GetUserProfile(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/user/posts", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -108,15 +141,32 @@ func RegisterLooseServant(e *gin.Engine, s Loose, b LooseBinding, r LooseRender) default: } - req, err := b.BindGetUserTweets(c) + var ( + obj any + err mir.Error + ) + req := new(web.GetUserTweetsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.GetUserTweets(req) if err != nil { - r.RenderGetUserTweets(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.GetUserTweets(req) - r.RenderGetUserTweets(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/posts", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -124,20 +174,36 @@ func RegisterLooseServant(e *gin.Engine, s Loose, b LooseBinding, r LooseRender) default: } - req, err := b.BindTimeline(c) + var ( + obj any + err mir.Error + ) + req := new(web.TimelineReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderTimeline(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.Timeline(req) - r.RenderTimeline(c, resp, err) + obj, err = s.Timeline(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - } // UnimplementedLooseServant can be embedded to have forward compatible implementations. -type UnimplementedLooseServant struct { -} +type UnimplementedLooseServant struct{} func (UnimplementedLooseServant) Chain() gin.HandlersChain { return nil @@ -164,67 +230,3 @@ func (UnimplementedLooseServant) Timeline(req *web.TimelineReq) (*web.TimelineRe } func (UnimplementedLooseServant) mustEmbedUnimplementedLooseServant() {} - -// UnimplementedLooseRender can be embedded to have forward compatible implementations. -type UnimplementedLooseRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedLooseRender) RenderTweetComments(c *gin.Context, data *web.TweetCommentsResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedLooseRender) RenderTopicList(c *gin.Context, data *web.TopicListResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedLooseRender) RenderGetUserProfile(c *gin.Context, data *web.GetUserProfileResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedLooseRender) RenderGetUserTweets(c *gin.Context, data *web.GetUserTweetsResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedLooseRender) RenderTimeline(c *gin.Context, data *web.TimelineResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedLooseRender) mustEmbedUnimplementedLooseRender() {} - -// UnimplementedLooseBinding can be embedded to have forward compatible implementations. -type UnimplementedLooseBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedLooseBinding) BindTweetComments(c *gin.Context) (*web.TweetCommentsReq, mir.Error) { - obj := new(web.TweetCommentsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedLooseBinding) BindTopicList(c *gin.Context) (*web.TopicListReq, mir.Error) { - obj := new(web.TopicListReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedLooseBinding) BindGetUserProfile(c *gin.Context) (*web.GetUserProfileReq, mir.Error) { - obj := new(web.GetUserProfileReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedLooseBinding) BindGetUserTweets(c *gin.Context) (*web.GetUserTweetsReq, mir.Error) { - obj := new(web.GetUserTweetsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedLooseBinding) BindTimeline(c *gin.Context) (*web.TimelineReq, mir.Error) { - obj := new(web.TimelineReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedLooseBinding) mustEmbedUnimplementedLooseBinding() {} diff --git a/auto/api/v1/priv.go b/auto/api/v1/priv.go index ae267456..9e9d9a38 100644 --- a/auto/api/v1/priv.go +++ b/auto/api/v1/priv.go @@ -1,18 +1,20 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/model/web" ) type Priv interface { + _default_ + // Chain provide handlers chain for gin Chain() gin.HandlersChain @@ -41,60 +43,8 @@ type Priv interface { mustEmbedUnimplementedPrivServant() } -type PrivBinding interface { - BindUnfollowTopic(*gin.Context) (*web.UnfollowTopicReq, mir.Error) - BindFollowTopic(*gin.Context) (*web.FollowTopicReq, mir.Error) - BindStickTopic(*gin.Context) (*web.StickTopicReq, mir.Error) - BindThumbsDownTweetReply(*gin.Context) (*web.TweetReplyThumbsReq, mir.Error) - BindThumbsUpTweetReply(*gin.Context) (*web.TweetReplyThumbsReq, mir.Error) - BindThumbsDownTweetComment(*gin.Context) (*web.TweetCommentThumbsReq, mir.Error) - BindThumbsUpTweetComment(*gin.Context) (*web.TweetCommentThumbsReq, mir.Error) - BindDeleteCommentReply(*gin.Context) (*web.DeleteCommentReplyReq, mir.Error) - BindCreateCommentReply(*gin.Context) (*web.CreateCommentReplyReq, mir.Error) - BindDeleteComment(*gin.Context) (*web.DeleteCommentReq, mir.Error) - BindCreateComment(*gin.Context) (*web.CreateCommentReq, mir.Error) - BindVisibleTweet(*gin.Context) (*web.VisibleTweetReq, mir.Error) - BindStickTweet(*gin.Context) (*web.StickTweetReq, mir.Error) - BindLockTweet(*gin.Context) (*web.LockTweetReq, mir.Error) - BindCollectionTweet(*gin.Context) (*web.CollectionTweetReq, mir.Error) - BindStarTweet(*gin.Context) (*web.StarTweetReq, mir.Error) - BindDeleteTweet(*gin.Context) (*web.DeleteTweetReq, mir.Error) - BindCreateTweet(*gin.Context) (*web.CreateTweetReq, mir.Error) - BindDownloadAttachment(*gin.Context) (*web.DownloadAttachmentReq, mir.Error) - BindDownloadAttachmentPrecheck(*gin.Context) (*web.DownloadAttachmentPrecheckReq, mir.Error) - BindUploadAttachment(*gin.Context) (*web.UploadAttachmentReq, mir.Error) - - mustEmbedUnimplementedPrivBinding() -} - -type PrivRender interface { - RenderUnfollowTopic(*gin.Context, mir.Error) - RenderFollowTopic(*gin.Context, mir.Error) - RenderStickTopic(*gin.Context, *web.StickTopicResp, mir.Error) - RenderThumbsDownTweetReply(*gin.Context, mir.Error) - RenderThumbsUpTweetReply(*gin.Context, mir.Error) - RenderThumbsDownTweetComment(*gin.Context, mir.Error) - RenderThumbsUpTweetComment(*gin.Context, mir.Error) - RenderDeleteCommentReply(*gin.Context, mir.Error) - RenderCreateCommentReply(*gin.Context, *web.CreateCommentReplyResp, mir.Error) - RenderDeleteComment(*gin.Context, mir.Error) - RenderCreateComment(*gin.Context, *web.CreateCommentResp, mir.Error) - RenderVisibleTweet(*gin.Context, *web.VisibleTweetResp, mir.Error) - RenderStickTweet(*gin.Context, *web.StickTweetResp, mir.Error) - RenderLockTweet(*gin.Context, *web.LockTweetResp, mir.Error) - RenderCollectionTweet(*gin.Context, *web.CollectionTweetResp, mir.Error) - RenderStarTweet(*gin.Context, *web.StarTweetResp, mir.Error) - RenderDeleteTweet(*gin.Context, mir.Error) - RenderCreateTweet(*gin.Context, *web.CreateTweetResp, mir.Error) - RenderDownloadAttachment(*gin.Context, *web.DownloadAttachmentResp, mir.Error) - RenderDownloadAttachmentPrecheck(*gin.Context, *web.DownloadAttachmentPrecheckResp, mir.Error) - RenderUploadAttachment(*gin.Context, *web.UploadAttachmentResp, mir.Error) - - mustEmbedUnimplementedPrivRender() -} - // RegisterPrivServant register Priv servant to gin -func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { +func RegisterPrivServant(e *gin.Engine, s Priv) { router := e.Group("v1") // use chain for router middlewares := s.Chain() @@ -108,14 +58,24 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindUnfollowTopic(c) + var ( + obj any + err mir.Error + ) + req := new(web.UnfollowTopicReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderUnfollowTopic(c, err) + s.Render(c, nil, err) return } - r.RenderUnfollowTopic(c, s.UnfollowTopic(req)) - }) + s.Render(c, nil, s.UnfollowTopic(req)) + }) router.Handle("POST", "/topic/follow", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -123,14 +83,24 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindFollowTopic(c) + var ( + obj any + err mir.Error + ) + req := new(web.FollowTopicReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderFollowTopic(c, err) + s.Render(c, nil, err) return } - r.RenderFollowTopic(c, s.FollowTopic(req)) - }) + s.Render(c, nil, s.FollowTopic(req)) + }) router.Handle("POST", "/topic/stick", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -138,15 +108,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindStickTopic(c) + var ( + obj any + err mir.Error + ) + req := new(web.StickTopicReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderStickTopic(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.StickTopic(req) - r.RenderStickTopic(c, resp, err) + obj, err = s.StickTopic(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/tweet/reply/thumbsdown", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -154,14 +141,24 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindThumbsDownTweetReply(c) + var ( + obj any + err mir.Error + ) + req := new(web.TweetReplyThumbsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderThumbsDownTweetReply(c, err) + s.Render(c, nil, err) return } - r.RenderThumbsDownTweetReply(c, s.ThumbsDownTweetReply(req)) - }) + s.Render(c, nil, s.ThumbsDownTweetReply(req)) + }) router.Handle("POST", "/tweet/reply/thumbsup", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -169,14 +166,24 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindThumbsUpTweetReply(c) + var ( + obj any + err mir.Error + ) + req := new(web.TweetReplyThumbsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderThumbsUpTweetReply(c, err) + s.Render(c, nil, err) return } - r.RenderThumbsUpTweetReply(c, s.ThumbsUpTweetReply(req)) - }) + s.Render(c, nil, s.ThumbsUpTweetReply(req)) + }) router.Handle("POST", "/tweet/comment/thumbsdown", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -184,14 +191,24 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindThumbsDownTweetComment(c) + var ( + obj any + err mir.Error + ) + req := new(web.TweetCommentThumbsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderThumbsDownTweetComment(c, err) + s.Render(c, nil, err) return } - r.RenderThumbsDownTweetComment(c, s.ThumbsDownTweetComment(req)) - }) + s.Render(c, nil, s.ThumbsDownTweetComment(req)) + }) router.Handle("POST", "/tweet/comment/thumbsup", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -199,14 +216,24 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindThumbsUpTweetComment(c) + var ( + obj any + err mir.Error + ) + req := new(web.TweetCommentThumbsReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderThumbsUpTweetComment(c, err) + s.Render(c, nil, err) return } - r.RenderThumbsUpTweetComment(c, s.ThumbsUpTweetComment(req)) - }) + s.Render(c, nil, s.ThumbsUpTweetComment(req)) + }) router.Handle("DELETE", "/post/comment/reply", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -214,14 +241,24 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindDeleteCommentReply(c) + var ( + obj any + err mir.Error + ) + req := new(web.DeleteCommentReplyReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderDeleteCommentReply(c, err) + s.Render(c, nil, err) return } - r.RenderDeleteCommentReply(c, s.DeleteCommentReply(req)) - }) + s.Render(c, nil, s.DeleteCommentReply(req)) + }) router.Handle("POST", "/post/comment/reply", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -229,15 +266,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindCreateCommentReply(c) + var ( + obj any + err mir.Error + ) + req := new(web.CreateCommentReplyReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.CreateCommentReply(req) if err != nil { - r.RenderCreateCommentReply(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.CreateCommentReply(req) - r.RenderCreateCommentReply(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("DELETE", "/post/comment", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -245,14 +299,24 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindDeleteComment(c) + var ( + obj any + err mir.Error + ) + req := new(web.DeleteCommentReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderDeleteComment(c, err) + s.Render(c, nil, err) return } - r.RenderDeleteComment(c, s.DeleteComment(req)) - }) + s.Render(c, nil, s.DeleteComment(req)) + }) router.Handle("POST", "/post/comment", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -260,15 +324,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindCreateComment(c) + var ( + obj any + err mir.Error + ) + req := new(web.CreateCommentReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.CreateComment(req) if err != nil { - r.RenderCreateComment(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.CreateComment(req) - r.RenderCreateComment(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/post/visibility", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -276,15 +357,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindVisibleTweet(c) + var ( + obj any + err mir.Error + ) + req := new(web.VisibleTweetReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.VisibleTweet(req) if err != nil { - r.RenderVisibleTweet(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.VisibleTweet(req) - r.RenderVisibleTweet(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/post/stick", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -292,15 +390,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindStickTweet(c) + var ( + obj any + err mir.Error + ) + req := new(web.StickTweetReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderStickTweet(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.StickTweet(req) - r.RenderStickTweet(c, resp, err) + obj, err = s.StickTweet(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/post/lock", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -308,15 +423,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindLockTweet(c) + var ( + obj any + err mir.Error + ) + req := new(web.LockTweetReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderLockTweet(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.LockTweet(req) - r.RenderLockTweet(c, resp, err) + obj, err = s.LockTweet(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/post/collection", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -324,15 +456,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindCollectionTweet(c) + var ( + obj any + err mir.Error + ) + req := new(web.CollectionTweetReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.CollectionTweet(req) if err != nil { - r.RenderCollectionTweet(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.CollectionTweet(req) - r.RenderCollectionTweet(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/post/star", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -340,15 +489,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindStarTweet(c) + var ( + obj any + err mir.Error + ) + req := new(web.StarTweetReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderStarTweet(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.StarTweet(req) - r.RenderStarTweet(c, resp, err) + obj, err = s.StarTweet(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("DELETE", "/post", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -356,14 +522,24 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindDeleteTweet(c) + var ( + obj any + err mir.Error + ) + req := new(web.DeleteTweetReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderDeleteTweet(c, err) + s.Render(c, nil, err) return } - r.RenderDeleteTweet(c, s.DeleteTweet(req)) - }) + s.Render(c, nil, s.DeleteTweet(req)) + }) router.Handle("POST", "/post", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -371,15 +547,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindCreateTweet(c) + var ( + obj any + err mir.Error + ) + req := new(web.CreateTweetReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.CreateTweet(req) if err != nil { - r.RenderCreateTweet(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.CreateTweet(req) - r.RenderCreateTweet(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/attachment", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -387,15 +580,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindDownloadAttachment(c) + var ( + obj any + err mir.Error + ) + req := new(web.DownloadAttachmentReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.DownloadAttachment(req) if err != nil { - r.RenderDownloadAttachment(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.DownloadAttachment(req) - r.RenderDownloadAttachment(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/attachment/precheck", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -403,15 +613,32 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindDownloadAttachmentPrecheck(c) + var ( + obj any + err mir.Error + ) + req := new(web.DownloadAttachmentPrecheckReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.DownloadAttachmentPrecheck(req) if err != nil { - r.RenderDownloadAttachmentPrecheck(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.DownloadAttachmentPrecheck(req) - r.RenderDownloadAttachmentPrecheck(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/attachment", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -419,20 +646,36 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) { default: } - req, err := b.BindUploadAttachment(c) + var ( + obj any + err mir.Error + ) + req := new(web.UploadAttachmentReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } + if err != nil { + s.Render(c, nil, err) + return + } + obj, err = s.UploadAttachment(req) if err != nil { - r.RenderUploadAttachment(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.UploadAttachment(req) - r.RenderUploadAttachment(c, resp, err) + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - } // UnimplementedPrivServant can be embedded to have forward compatible implementations. -type UnimplementedPrivServant struct { -} +type UnimplementedPrivServant struct{} func (UnimplementedPrivServant) Chain() gin.HandlersChain { return nil @@ -523,227 +766,3 @@ func (UnimplementedPrivServant) UploadAttachment(req *web.UploadAttachmentReq) ( } func (UnimplementedPrivServant) mustEmbedUnimplementedPrivServant() {} - -// UnimplementedPrivRender can be embedded to have forward compatible implementations. -type UnimplementedPrivRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedPrivRender) RenderUnfollowTopic(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedPrivRender) RenderFollowTopic(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedPrivRender) RenderStickTopic(c *gin.Context, data *web.StickTopicResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderThumbsDownTweetReply(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedPrivRender) RenderThumbsUpTweetReply(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedPrivRender) RenderThumbsDownTweetComment(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedPrivRender) RenderThumbsUpTweetComment(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedPrivRender) RenderDeleteCommentReply(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedPrivRender) RenderCreateCommentReply(c *gin.Context, data *web.CreateCommentReplyResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderDeleteComment(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedPrivRender) RenderCreateComment(c *gin.Context, data *web.CreateCommentResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderVisibleTweet(c *gin.Context, data *web.VisibleTweetResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderStickTweet(c *gin.Context, data *web.StickTweetResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderLockTweet(c *gin.Context, data *web.LockTweetResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderCollectionTweet(c *gin.Context, data *web.CollectionTweetResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderStarTweet(c *gin.Context, data *web.StarTweetResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderDeleteTweet(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedPrivRender) RenderCreateTweet(c *gin.Context, data *web.CreateTweetResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderDownloadAttachment(c *gin.Context, data *web.DownloadAttachmentResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderDownloadAttachmentPrecheck(c *gin.Context, data *web.DownloadAttachmentPrecheckResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) RenderUploadAttachment(c *gin.Context, data *web.UploadAttachmentResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPrivRender) mustEmbedUnimplementedPrivRender() {} - -// UnimplementedPrivBinding can be embedded to have forward compatible implementations. -type UnimplementedPrivBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedPrivBinding) BindUnfollowTopic(c *gin.Context) (*web.UnfollowTopicReq, mir.Error) { - obj := new(web.UnfollowTopicReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindFollowTopic(c *gin.Context) (*web.FollowTopicReq, mir.Error) { - obj := new(web.FollowTopicReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindStickTopic(c *gin.Context) (*web.StickTopicReq, mir.Error) { - obj := new(web.StickTopicReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindThumbsDownTweetReply(c *gin.Context) (*web.TweetReplyThumbsReq, mir.Error) { - obj := new(web.TweetReplyThumbsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindThumbsUpTweetReply(c *gin.Context) (*web.TweetReplyThumbsReq, mir.Error) { - obj := new(web.TweetReplyThumbsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindThumbsDownTweetComment(c *gin.Context) (*web.TweetCommentThumbsReq, mir.Error) { - obj := new(web.TweetCommentThumbsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindThumbsUpTweetComment(c *gin.Context) (*web.TweetCommentThumbsReq, mir.Error) { - obj := new(web.TweetCommentThumbsReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindDeleteCommentReply(c *gin.Context) (*web.DeleteCommentReplyReq, mir.Error) { - obj := new(web.DeleteCommentReplyReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindCreateCommentReply(c *gin.Context) (*web.CreateCommentReplyReq, mir.Error) { - obj := new(web.CreateCommentReplyReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindDeleteComment(c *gin.Context) (*web.DeleteCommentReq, mir.Error) { - obj := new(web.DeleteCommentReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindCreateComment(c *gin.Context) (*web.CreateCommentReq, mir.Error) { - obj := new(web.CreateCommentReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindVisibleTweet(c *gin.Context) (*web.VisibleTweetReq, mir.Error) { - obj := new(web.VisibleTweetReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindStickTweet(c *gin.Context) (*web.StickTweetReq, mir.Error) { - obj := new(web.StickTweetReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindLockTweet(c *gin.Context) (*web.LockTweetReq, mir.Error) { - obj := new(web.LockTweetReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindCollectionTweet(c *gin.Context) (*web.CollectionTweetReq, mir.Error) { - obj := new(web.CollectionTweetReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindStarTweet(c *gin.Context) (*web.StarTweetReq, mir.Error) { - obj := new(web.StarTweetReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindDeleteTweet(c *gin.Context) (*web.DeleteTweetReq, mir.Error) { - obj := new(web.DeleteTweetReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindCreateTweet(c *gin.Context) (*web.CreateTweetReq, mir.Error) { - obj := new(web.CreateTweetReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindDownloadAttachment(c *gin.Context) (*web.DownloadAttachmentReq, mir.Error) { - obj := new(web.DownloadAttachmentReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindDownloadAttachmentPrecheck(c *gin.Context) (*web.DownloadAttachmentPrecheckReq, mir.Error) { - obj := new(web.DownloadAttachmentPrecheckReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) BindUploadAttachment(c *gin.Context) (*web.UploadAttachmentReq, mir.Error) { - obj := new(web.UploadAttachmentReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPrivBinding) mustEmbedUnimplementedPrivBinding() {} diff --git a/auto/api/v1/pub.go b/auto/api/v1/pub.go index a0579f7e..88b7b9d1 100644 --- a/auto/api/v1/pub.go +++ b/auto/api/v1/pub.go @@ -1,18 +1,33 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/model/web" ) +type _binding_ interface { + Bind(*gin.Context) mir.Error +} + +type _render_ interface { + Render(*gin.Context) +} + +type _default_ interface { + Bind(*gin.Context, any) mir.Error + Render(*gin.Context, any, mir.Error) +} + type Pub interface { + _default_ + TweetDetail(*web.TweetDetailReq) (*web.TweetDetailResp, mir.Error) SendCaptcha(*web.SendCaptchaReq) mir.Error GetCaptcha() (*web.GetCaptchaResp, mir.Error) @@ -23,28 +38,8 @@ type Pub interface { mustEmbedUnimplementedPubServant() } -type PubBinding interface { - BindTweetDetail(*gin.Context) (*web.TweetDetailReq, mir.Error) - BindSendCaptcha(*gin.Context) (*web.SendCaptchaReq, mir.Error) - BindRegister(*gin.Context) (*web.RegisterReq, mir.Error) - BindLogin(*gin.Context) (*web.LoginReq, mir.Error) - - mustEmbedUnimplementedPubBinding() -} - -type PubRender interface { - RenderTweetDetail(*gin.Context, *web.TweetDetailResp, mir.Error) - RenderSendCaptcha(*gin.Context, mir.Error) - RenderGetCaptcha(*gin.Context, *web.GetCaptchaResp, mir.Error) - RenderRegister(*gin.Context, *web.RegisterResp, mir.Error) - RenderLogin(*gin.Context, *web.LoginResp, mir.Error) - RenderVersion(*gin.Context, *web.VersionResp, mir.Error) - - mustEmbedUnimplementedPubRender() -} - // RegisterPubServant register Pub servant to gin -func RegisterPubServant(e *gin.Engine, s Pub, b PubBinding, r PubRender) { +func RegisterPubServant(e *gin.Engine, s Pub) { router := e.Group("v1") // register routes info to router @@ -55,15 +50,32 @@ func RegisterPubServant(e *gin.Engine, s Pub, b PubBinding, r PubRender) { default: } - req, err := b.BindTweetDetail(c) + var ( + obj any + err mir.Error + ) + req := new(web.TweetDetailReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderTweetDetail(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.TweetDetail(req) - r.RenderTweetDetail(c, resp, err) + obj, err = s.TweetDetail(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/captcha", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -71,14 +83,24 @@ func RegisterPubServant(e *gin.Engine, s Pub, b PubBinding, r PubRender) { default: } - req, err := b.BindSendCaptcha(c) + var ( + obj any + err mir.Error + ) + req := new(web.SendCaptchaReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderSendCaptcha(c, err) + s.Render(c, nil, err) return } - r.RenderSendCaptcha(c, s.SendCaptcha(req)) - }) + s.Render(c, nil, s.SendCaptcha(req)) + }) router.Handle("GET", "/captcha", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -86,10 +108,22 @@ func RegisterPubServant(e *gin.Engine, s Pub, b PubBinding, r PubRender) { default: } - resp, err := s.GetCaptcha() - r.RenderGetCaptcha(c, resp, err) - }) + var ( + obj any + err mir.Error + ) + obj, err = s.GetCaptcha() + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } + }) router.Handle("POST", "/auth/register", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -97,15 +131,32 @@ func RegisterPubServant(e *gin.Engine, s Pub, b PubBinding, r PubRender) { default: } - req, err := b.BindRegister(c) + var ( + obj any + err mir.Error + ) + req := new(web.RegisterReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderRegister(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.Register(req) - r.RenderRegister(c, resp, err) + obj, err = s.Register(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("POST", "/auth/login", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -113,15 +164,32 @@ func RegisterPubServant(e *gin.Engine, s Pub, b PubBinding, r PubRender) { default: } - req, err := b.BindLogin(c) + var ( + obj any + err mir.Error + ) + req := new(web.LoginReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderLogin(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.Login(req) - r.RenderLogin(c, resp, err) + obj, err = s.Login(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - router.Handle("GET", "/", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -129,15 +197,26 @@ func RegisterPubServant(e *gin.Engine, s Pub, b PubBinding, r PubRender) { default: } - resp, err := s.Version() - r.RenderVersion(c, resp, err) - }) + var ( + obj any + err mir.Error + ) + obj, err = s.Version() + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } + }) } // UnimplementedPubServant can be embedded to have forward compatible implementations. -type UnimplementedPubServant struct { -} +type UnimplementedPubServant struct{} func (UnimplementedPubServant) TweetDetail(req *web.TweetDetailReq) (*web.TweetDetailResp, mir.Error) { return nil, mir.Errorln(http.StatusNotImplemented, http.StatusText(http.StatusNotImplemented)) @@ -164,65 +243,3 @@ func (UnimplementedPubServant) Version() (*web.VersionResp, mir.Error) { } func (UnimplementedPubServant) mustEmbedUnimplementedPubServant() {} - -// UnimplementedPubRender can be embedded to have forward compatible implementations. -type UnimplementedPubRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedPubRender) RenderTweetDetail(c *gin.Context, data *web.TweetDetailResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPubRender) RenderSendCaptcha(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedPubRender) RenderGetCaptcha(c *gin.Context, data *web.GetCaptchaResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPubRender) RenderRegister(c *gin.Context, data *web.RegisterResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPubRender) RenderLogin(c *gin.Context, data *web.LoginResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPubRender) RenderVersion(c *gin.Context, data *web.VersionResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedPubRender) mustEmbedUnimplementedPubRender() {} - -// UnimplementedPubBinding can be embedded to have forward compatible implementations. -type UnimplementedPubBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedPubBinding) BindTweetDetail(c *gin.Context) (*web.TweetDetailReq, mir.Error) { - obj := new(web.TweetDetailReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPubBinding) BindSendCaptcha(c *gin.Context) (*web.SendCaptchaReq, mir.Error) { - obj := new(web.SendCaptchaReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPubBinding) BindRegister(c *gin.Context) (*web.RegisterReq, mir.Error) { - obj := new(web.RegisterReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPubBinding) BindLogin(c *gin.Context) (*web.LoginReq, mir.Error) { - obj := new(web.LoginReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedPubBinding) mustEmbedUnimplementedPubBinding() {} diff --git a/auto/api/x/v1/user.go b/auto/api/x/v1/user.go index 3357f413..5640ae2f 100644 --- a/auto/api/x/v1/user.go +++ b/auto/api/x/v1/user.go @@ -1,16 +1,29 @@ // Code generated by go-mir. DO NOT EDIT. // versions: -// - mir v3.2.0 +// - mir v4.0.0 package v1 import ( "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" ) +type _binding_ interface { + Bind(*gin.Context) mir.Error +} + +type _render_ interface { + Render(*gin.Context) +} + +type _default_ interface { + Bind(*gin.Context, any) mir.Error + Render(*gin.Context, any, mir.Error) +} + type LoginReq struct { AgentInfo AgentInfo `json:"agent_info"` Name string `json:"name"` @@ -37,6 +50,8 @@ type UserInfo struct { } type User interface { + _default_ + // Chain provide handlers chain for gin Chain() gin.HandlersChain @@ -46,21 +61,8 @@ type User interface { mustEmbedUnimplementedUserServant() } -type UserBinding interface { - BindLogin(*gin.Context) (*LoginReq, mir.Error) - - mustEmbedUnimplementedUserBinding() -} - -type UserRender interface { - RenderLogout(*gin.Context, mir.Error) - RenderLogin(*gin.Context, *LoginResp, mir.Error) - - mustEmbedUnimplementedUserRender() -} - // RegisterUserServant register User servant to gin -func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { +func RegisterUserServant(e *gin.Engine, s User) { router := e.Group("x/v1") // use chain for router middlewares := s.Chain() @@ -74,9 +76,8 @@ func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { default: } - r.RenderLogout(c, s.Logout()) + s.Render(c, nil, s.Logout()) }) - router.Handle("POST", "/user/login/", func(c *gin.Context) { select { case <-c.Request.Context().Done(): @@ -84,20 +85,36 @@ func RegisterUserServant(e *gin.Engine, s User, b UserBinding, r UserRender) { default: } - req, err := b.BindLogin(c) + var ( + obj any + err mir.Error + ) + req := new(LoginReq) + obj = req + if bv, ok := obj.(_binding_); !ok { + err = s.Bind(c, req) + } else { + err = bv.Bind(c) + } if err != nil { - r.RenderLogin(c, nil, err) + s.Render(c, nil, err) return } - resp, err := s.Login(req) - r.RenderLogin(c, resp, err) + obj, err = s.Login(req) + if err != nil { + s.Render(c, nil, err) + return + } + if rv, ok := obj.(_render_); !ok { + s.Render(c, obj, nil) + } else { + rv.Render(c) + } }) - } // UnimplementedUserServant can be embedded to have forward compatible implementations. -type UnimplementedUserServant struct { -} +type UnimplementedUserServant struct{} func (UnimplementedUserServant) Chain() gin.HandlersChain { return nil @@ -112,31 +129,3 @@ func (UnimplementedUserServant) Login(req *LoginReq) (*LoginResp, mir.Error) { } func (UnimplementedUserServant) mustEmbedUnimplementedUserServant() {} - -// UnimplementedUserRender can be embedded to have forward compatible implementations. -type UnimplementedUserRender struct { - RenderAny func(*gin.Context, any, mir.Error) -} - -func (r *UnimplementedUserRender) RenderLogout(c *gin.Context, err mir.Error) { - r.RenderAny(c, nil, err) -} - -func (r *UnimplementedUserRender) RenderLogin(c *gin.Context, data *LoginResp, err mir.Error) { - r.RenderAny(c, data, err) -} - -func (r *UnimplementedUserRender) mustEmbedUnimplementedUserRender() {} - -// UnimplementedUserBinding can be embedded to have forward compatible implementations. -type UnimplementedUserBinding struct { - BindAny func(*gin.Context, any) mir.Error -} - -func (b *UnimplementedUserBinding) BindLogin(c *gin.Context) (*LoginReq, mir.Error) { - obj := new(LoginReq) - err := b.BindAny(c, obj) - return obj, err -} - -func (b *UnimplementedUserBinding) mustEmbedUnimplementedUserBinding() {} diff --git a/go.mod b/go.mod index 761954f7..4bcbcb50 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/Masterminds/semver/v3 v3.2.1 github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868 github.com/alimy/cfg v0.3.0 - github.com/alimy/mir/v3 v3.2.1 + github.com/alimy/mir/v4 v4.0.0-alpha.3 github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/allegro/bigcache/v3 v3.0.2 github.com/bytedance/sonic v1.9.1 diff --git a/go.sum b/go.sum index cca3b7f5..27639f6f 100644 --- a/go.sum +++ b/go.sum @@ -131,8 +131,8 @@ github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:C github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= github.com/alimy/cfg v0.3.0 h1:9xgA0QWVCPSq9fFNRcYahVCAX22IL9ts2wrTQPfAStY= github.com/alimy/cfg v0.3.0/go.mod h1:rOxbasTH2srl6StAjNF5Vyi8bfrdkl3fLGmOYtSw81c= -github.com/alimy/mir/v3 v3.2.1 h1:vnAHdqzMccP8C0DDyY3hAV50cVNBfDopgcyvv8TL9L4= -github.com/alimy/mir/v3 v3.2.1/go.mod h1:ybhT2ijOiDn0lLwWzIY6vXdv+uzZrctS7VFfczcXBWU= +github.com/alimy/mir/v4 v4.0.0-alpha.3 h1:T1i3xolo/cvOxCpUTSvAU2AcgB3ajNm0/jM1EbsqpJM= +github.com/alimy/mir/v4 v4.0.0-alpha.3/go.mod h1:X09f2IOQ4NTyJFKJ10S+J7Jk988T5IvvprwTijQZAsg= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/allegro/bigcache/v3 v3.0.2 h1:AKZCw+5eAaVyNTBmI2fgyPVJhHkdWder3O9IrprcQfI= diff --git a/internal/conf/alipay.go b/internal/conf/alipay.go new file mode 100644 index 00000000..4f118d64 --- /dev/null +++ b/internal/conf/alipay.go @@ -0,0 +1,38 @@ +package conf + +import ( + "sync" + + "github.com/sirupsen/logrus" + "github.com/smartwalle/alipay/v3" +) + +var ( + _alipayClient *alipay.Client + _onceAlipay sync.Once +) + +func MustAlipayClient() *alipay.Client { + _onceAlipay.Do(func() { + s := AlipaySetting + // 将 key 的验证调整到初始化阶段 + client, err := alipay.New(s.AppID, s.PrivateKey, s.InProduction) + if err != nil { + logrus.Fatalf("alipay.New err: %s", err) + } + // 加载应用公钥证书 + if err = client.LoadAppPublicCertFromFile(s.AppPublicCertFile); err != nil { + logrus.Fatalf("client.LoadAppPublicCertFromFile err: %s\n", err) + } + // 加载支付宝根证书 + if err = client.LoadAliPayRootCertFromFile(s.RootCertFile); err != nil { + logrus.Fatalf("client.LoadAliPayRootCertFromFile err: %s\n", err) + } + // 加载支付宝公钥证书 + if err = client.LoadAliPayPublicCertFromFile(s.PublicCertFile); err != nil { + logrus.Fatalf("client.LoadAliPayPublicCertFromFile err: %s\n", err) + } + _alipayClient = client + }) + return _alipayClient +} diff --git a/internal/model/web/alipay.go b/internal/model/web/alipay.go index 84746309..707a1170 100644 --- a/internal/model/web/alipay.go +++ b/internal/model/web/alipay.go @@ -7,7 +7,14 @@ package web import ( "context" + "github.com/alimy/mir/v4" + "github.com/gin-gonic/gin" + "github.com/rocboss/paopao-ce/internal/conf" "github.com/rocboss/paopao-ce/internal/servants/base" + "github.com/rocboss/paopao-ce/pkg/app" + "github.com/rocboss/paopao-ce/pkg/convert" + "github.com/rocboss/paopao-ce/pkg/xerror" + "github.com/sirupsen/logrus" "github.com/smartwalle/alipay/v3" ) @@ -46,3 +53,44 @@ type AlipayNotifyReq struct { TradeNo string TradeStatus alipay.TradeStatus } + +func (r *AlipayNotifyReq) Bind(c *gin.Context) mir.Error { + if err := c.Request.ParseForm(); err != nil { + logrus.Errorf("parse form err: %s", err) + return _errRechargeNotifyError + } + noti, err := conf.MustAlipayClient().GetTradeNotification(c.Request) + if err != nil { + logrus.Errorf("alipayClient.GetTradeNotification err: %s form: %v", err, c.Request.Form) + return _errRechargeNotifyError + } + r.Ctx = c.Request.Context() + r.ID = convert.StrTo(noti.OutTradeNo).MustInt64() + r.TradeNo, r.TradeStatus = noti.TradeNo, noti.TradeStatus + + return nil +} + +func (r *UserWalletBillsReq) Bind(c *gin.Context) mir.Error { + uid, ok := base.UserIdFrom(c) + if !ok { + return xerror.UnauthorizedTokenError + } + r.UserId = uid + r.Page, r.PageSize = app.GetPageInfo(c) + return nil +} + +func (r *UserRechargeLinkReq) Bind(c *gin.Context) mir.Error { + r.Host = c.Request.Host + return bindAny(c, r) +} + +func (r *UserRechargeResultReq) Bind(c *gin.Context) mir.Error { + uid, exist := base.UserIdFrom(c) + if !exist { + return xerror.UnauthorizedTokenError + } + r.UserId, r.Id = uid, convert.StrTo(c.Query("id")).MustInt64() + return nil +} diff --git a/internal/model/web/core.go b/internal/model/web/core.go index b5fa497b..a697fec7 100644 --- a/internal/model/web/core.go +++ b/internal/model/web/core.go @@ -5,7 +5,11 @@ package web import ( + "github.com/alimy/mir/v4" + "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/servants/base" + "github.com/rocboss/paopao-ce/pkg/convert" + "github.com/rocboss/paopao-ce/pkg/xerror" ) type ChangeAvatarReq struct { @@ -111,3 +115,58 @@ type TweetCollectionStatusReq struct { type TweetCollectionStatusResp struct { Status bool `json:"status"` } + +func (r *UserInfoReq) Bind(c *gin.Context) mir.Error { + username, exist := base.UserNameFrom(c) + if !exist { + return xerror.UnauthorizedAuthNotExist + } + r.Username = username + return nil +} + +func (r *GetMessagesReq) Bind(c *gin.Context) mir.Error { + return (*BasePageReq)(r).Bind(c) +} + +func (r *GetCollectionsReq) Bind(c *gin.Context) mir.Error { + return (*BasePageReq)(r).Bind(c) +} + +func (r *GetStarsReq) Bind(c *gin.Context) mir.Error { + return (*BasePageReq)(r).Bind(c) +} + +func (r *SuggestTagsReq) Bind(c *gin.Context) mir.Error { + r.Keyword = c.Query("k") + return nil +} + +func (r *SuggestUsersReq) Bind(c *gin.Context) mir.Error { + r.Keyword = c.Query("k") + return nil +} + +func (r *TweetCollectionStatusReq) Bind(c *gin.Context) mir.Error { + userId, exist := base.UserIdFrom(c) + if !exist { + return xerror.UnauthorizedAuthNotExist + } + r.SimpleInfo = SimpleInfo{ + Uid: userId, + } + r.TweetId = convert.StrTo(c.Query("id")).MustInt64() + return nil +} + +func (r *TweetStarStatusReq) Bind(c *gin.Context) mir.Error { + UserId, exist := base.UserIdFrom(c) + if !exist { + return xerror.UnauthorizedAuthNotExist + } + r.SimpleInfo = SimpleInfo{ + Uid: UserId, + } + r.TweetId = convert.StrTo(c.Query("id")).MustInt64() + return nil +} diff --git a/internal/model/web/loose.go b/internal/model/web/loose.go index e20fecd2..3551d1c7 100644 --- a/internal/model/web/loose.go +++ b/internal/model/web/loose.go @@ -5,8 +5,11 @@ package web import ( + "github.com/alimy/mir/v4" + "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/servants/base" + "github.com/rocboss/paopao-ce/pkg/app" ) const ( @@ -84,3 +87,13 @@ func (r *GetUserTweetsReq) SetPageInfo(page int, pageSize int) { func (r *TweetCommentsReq) SetPageInfo(page int, pageSize int) { r.Page, r.PageSize = page, pageSize } + +func (r *TimelineReq) Bind(c *gin.Context) mir.Error { + user, _ := base.UserFrom(c) + r.BaseInfo = BaseInfo{ + User: user, + } + r.Page, r.PageSize = app.GetPageInfo(c) + r.Query, r.Type = c.Query("query"), "search" + return nil +} diff --git a/internal/model/web/priv.go b/internal/model/web/priv.go index e8436ce1..e27c1a95 100644 --- a/internal/model/web/priv.go +++ b/internal/model/web/priv.go @@ -9,7 +9,12 @@ import ( "mime/multipart" "strings" + "github.com/alimy/mir/v4" + "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/core" + "github.com/rocboss/paopao-ce/internal/servants/base" + "github.com/rocboss/paopao-ce/pkg/convert" + "github.com/rocboss/paopao-ce/pkg/xerror" ) type TweetCommentThumbsReq struct { @@ -194,3 +199,75 @@ func (p *PostContentItem) Check(acs core.AttachmentCheckService) error { } return nil } + +func (r *UploadAttachmentReq) Bind(c *gin.Context) (xerr mir.Error) { + userId, exist := base.UserIdFrom(c) + if !exist { + return xerror.UnauthorizedAuthNotExist + } + + uploadType := c.Request.FormValue("type") + file, fileHeader, err := c.Request.FormFile("file") + if err != nil { + return _errFileUploadFailed + } + defer func() { + if xerr != nil { + file.Close() + } + }() + + if err := fileCheck(uploadType, fileHeader.Size); err != nil { + return err + } + contentType := fileHeader.Header.Get("Content-Type") + fileExt, xerr := getFileExt(contentType) + if xerr != nil { + return xerr + } + r.SimpleInfo = SimpleInfo{ + Uid: userId, + } + r.UploadType, r.ContentType = uploadType, contentType + r.File, r.FileSize, r.FileExt = file, fileHeader.Size, fileExt + return nil +} + +func (r *DownloadAttachmentPrecheckReq) Bind(c *gin.Context) mir.Error { + user, exist := base.UserFrom(c) + if !exist { + return xerror.UnauthorizedAuthNotExist + } + r.BaseInfo = BaseInfo{ + User: user, + } + r.ContentID = convert.StrTo(c.Query("id")).MustInt64() + return nil +} + +func (r *DownloadAttachmentReq) Bind(c *gin.Context) mir.Error { + user, exist := base.UserFrom(c) + if !exist { + return xerror.UnauthorizedAuthNotExist + } + r.BaseInfo = BaseInfo{ + User: user, + } + r.ContentID = convert.StrTo(c.Query("id")).MustInt64() + return nil +} + +func (r *CreateTweetReq) Bind(c *gin.Context) mir.Error { + r.ClientIP = c.ClientIP() + return bindAny(c, r) +} + +func (r *CreateCommentReplyReq) Bind(c *gin.Context) mir.Error { + r.ClientIP = c.ClientIP() + return bindAny(c, r) +} + +func (r *CreateCommentReq) Bind(c *gin.Context) mir.Error { + r.ClientIP = c.ClientIP() + return bindAny(c, r) +} diff --git a/internal/model/web/utils.go b/internal/model/web/utils.go new file mode 100644 index 00000000..ab13ed68 --- /dev/null +++ b/internal/model/web/utils.go @@ -0,0 +1,47 @@ +// Copyright 2022 ROC. All rights reserved. +// Use of this source code is governed by a MIT style +// license that can be found in the LICENSE file. + +package web + +import ( + "github.com/alimy/mir/v4" + "github.com/rocboss/paopao-ce/pkg/xerror" +) + +func fileCheck(uploadType string, size int64) mir.Error { + if uploadType != "public/video" && + uploadType != "public/image" && + uploadType != "public/avatar" && + uploadType != "attachment" { + return xerror.InvalidParams + } + if size > 1024*1024*100 { + return _errFileInvalidSize.WithDetails("最大允许100MB") + } + return nil +} + +func getFileExt(s string) (string, mir.Error) { + switch s { + case "image/png": + return ".png", nil + case "image/jpg": + return ".jpg", nil + case "image/jpeg": + return ".jpeg", nil + case "image/gif": + return ".gif", nil + case "video/mp4": + return ".mp4", nil + case "video/quicktime": + return ".mov", nil + case "application/zip", + "application/x-zip", + "application/octet-stream", + "application/x-zip-compressed": + return ".zip", nil + default: + return "", _errFileInvalidExt.WithDetails("仅允许 png/jpg/gif/mp4/mov/zip 类型") + } +} diff --git a/internal/model/web/web.go b/internal/model/web/web.go index bec917fa..d9c416bb 100644 --- a/internal/model/web/web.go +++ b/internal/model/web/web.go @@ -5,7 +5,7 @@ package web import ( - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/servants/base" @@ -13,6 +13,10 @@ import ( "github.com/rocboss/paopao-ce/pkg/xerror" ) +var ( + bindAny = base.NewBindAnyFn() +) + type BaseInfo struct { User *core.User } @@ -47,3 +51,13 @@ func BasePageReqFrom(c *gin.Context) (*BasePageReq, mir.Error) { PageSize: pageSize, }, nil } + +func (r *BasePageReq) Bind(c *gin.Context) mir.Error { + uid, ok := base.UserIdFrom(c) + if !ok { + return xerror.UnauthorizedTokenError + } + r.UserId = uid + r.Page, r.PageSize = app.GetPageInfo(c) + return nil +} diff --git a/internal/model/web/xerror.go b/internal/model/web/xerror.go new file mode 100644 index 00000000..1a0ea170 --- /dev/null +++ b/internal/model/web/xerror.go @@ -0,0 +1,93 @@ +// Copyright 2023 ROC. All rights reserved. +// Use of this source code is governed by a MIT style +// license that can be found in the LICENSE file. + +package web + +import ( + "github.com/rocboss/paopao-ce/pkg/xerror" +) + +// nolint +var ( + _errUsernameHasExisted = xerror.NewError(20001, "用户名已存在") + _errUsernameLengthLimit = xerror.NewError(20002, "用户名长度3~12") + _errUsernameCharLimit = xerror.NewError(20003, "用户名只能包含字母、数字") + _errPasswordLengthLimit = xerror.NewError(20004, "密码长度6~16") + _errUserRegisterFailed = xerror.NewError(20005, "用户注册失败") + _errUserHasBeenBanned = xerror.NewError(20006, "该账户已被封停") + _errNoPermission = xerror.NewError(20007, "无权限执行该请求") + _errUserHasBindOTP = xerror.NewError(20008, "当前用户已绑定二次验证") + _errUserOTPInvalid = xerror.NewError(20009, "二次验证码验证失败") + _errUserNoBindOTP = xerror.NewError(20010, "当前用户未绑定二次验证") + _errErrorOldPassword = xerror.NewError(20011, "当前用户密码验证失败") + _errErrorCaptchaPassword = xerror.NewError(20012, "图形验证码验证失败") + _errAccountNoPhoneBind = xerror.NewError(20013, "拒绝操作: 账户未绑定手机号") + _errTooManyLoginError = xerror.NewError(20014, "登录失败次数过多,请稍后再试") + _errGetPhoneCaptchaError = xerror.NewError(20015, "短信验证码获取失败") + _errTooManyPhoneCaptchaSend = xerror.NewError(20016, "短信验证码获取次数已达今日上限") + _errExistedUserPhone = xerror.NewError(20017, "该手机号已被绑定") + _errErrorPhoneCaptcha = xerror.NewError(20018, "手机验证码不正确") + _errMaxPhoneCaptchaUseTimes = xerror.NewError(20019, "手机验证码已达最大使用次数") + _errNicknameLengthLimit = xerror.NewError(20020, "昵称长度2~12") + _errNoExistUsername = xerror.NewError(20021, "用户不存在") + _errNoAdminPermission = xerror.NewError(20022, "无管理权限") + _errDisallowUserRegister = xerror.NewError(20023, "系统不允许注册用户") + + _errGetPostsFailed = xerror.NewError(30001, "获取动态列表失败") + _errCreatePostFailed = xerror.NewError(30002, "动态发布失败") + _errGetPostFailed = xerror.NewError(30003, "获取动态详情失败") + _errDeletePostFailed = xerror.NewError(30004, "动态删除失败") + _errLockPostFailed = xerror.NewError(30005, "动态锁定失败") + _errGetPostTagsFailed = xerror.NewError(30006, "获取话题列表失败") + _errInvalidDownloadReq = xerror.NewError(30007, "附件下载请求不合法") + _errDownloadReqError = xerror.NewError(30008, "附件下载请求失败") + _errInsuffientDownloadMoney = xerror.NewError(30009, "附件下载失败:账户资金不足") + _errDownloadExecFail = xerror.NewError(30010, "附件下载失败:扣费失败") + _errStickPostFailed = xerror.NewError(30011, "动态置顶失败") + _errVisblePostFailed = xerror.NewError(30012, "更新可见性失败") + + _errGetCommentsFailed = xerror.NewError(40001, "获取评论列表失败") + _errCreateCommentFailed = xerror.NewError(40002, "评论发布失败") + _errGetCommentFailed = xerror.NewError(40003, "获取评论详情失败") + _errDeleteCommentFailed = xerror.NewError(40004, "评论删除失败") + _errCreateReplyFailed = xerror.NewError(40005, "评论回复失败") + _errGetReplyFailed = xerror.NewError(40006, "获取评论详情失败") + _errMaxCommentCount = xerror.NewError(40007, "评论数已达最大限制") + _errGetCommentThumbs = xerror.NewError(40008, "获取评论点赞信息失败") + + _errGetMessagesFailed = xerror.NewError(50001, "获取消息列表失败") + _errReadMessageFailed = xerror.NewError(50002, "标记消息已读失败") + _errSendWhisperFailed = xerror.NewError(50003, "私信发送失败") + _errNoWhisperToSelf = xerror.NewError(50004, "不允许给自己发送私信") + _errTooManyWhisperNum = xerror.NewError(50005, "今日私信次数已达上限") + + _errGetCollectionsFailed = xerror.NewError(60001, "获取收藏列表失败") + _errGetStarsFailed = xerror.NewError(60002, "获取点赞列表失败") + + _errRechargeReqFail = xerror.NewError(70001, "充值请求失败") + _errRechargeNotifyError = xerror.NewError(70002, "充值回调失败") + _errGetRechargeFailed = xerror.NewError(70003, "充值详情获取失败") + _errUserWalletBillsFailed = xerror.NewError(70004, "用户钱包账单获取失败") + + _errNoRequestingFriendToSelf = xerror.NewError(80001, "不允许添加自己为好友") + _errNotExistFriendId = xerror.NewError(80002, "好友id不存在") + _errSendRequestingFriendFailed = xerror.NewError(80003, "申请添加朋友请求发送失败") + _errAddFriendFailed = xerror.NewError(80004, "添加好友失败") + _errRejectFriendFailed = xerror.NewError(80005, "拒绝好友失败") + _errDeleteFriendFailed = xerror.NewError(80006, "删除好友失败") + _errGetContactsFailed = xerror.NewError(80007, "获取联系人列表失败") + _errNoActionToSelf = xerror.NewError(80008, "不允许对自己操作") + + _errFollowTopicFailed = xerror.NewError(90001, "关注话题失败") + _errUnfollowTopicFailed = xerror.NewError(90002, "取消关注话题失败") + _errStickTopicFailed = xerror.NewError(90003, "更行话题置顶状态失败") + _errThumbsUpTweetComment = xerror.NewError(90101, "评论点赞失败") + _errThumbsDownTweetComment = xerror.NewError(90102, "评论点踩失败") + _errThumbsUpTweetReply = xerror.NewError(90103, "评论回复点赞失败") + _errThumbsDownTweetReply = xerror.NewError(90104, "评论回复点踩失败") + + _errFileUploadFailed = xerror.NewError(10200, "文件上传失败") + _errFileInvalidExt = xerror.NewError(10201, "文件类型不合法") + _errFileInvalidSize = xerror.NewError(10202, "文件大小超限") +) diff --git a/internal/servants/admin/admin.go b/internal/servants/admin/admin.go index 409bdd78..26806940 100644 --- a/internal/servants/admin/admin.go +++ b/internal/servants/admin/admin.go @@ -11,5 +11,5 @@ import ( // RouteWeb register Manager route func RouteManager(e *gin.Engine) { - api.RegisterUserServant(e, newUserSrv(), newUserBinding(), newUserRender()) + api.RegisterUserServant(e, newUserSrv()) } diff --git a/internal/servants/admin/user.go b/internal/servants/admin/user.go index a35ea28f..e03f877a 100644 --- a/internal/servants/admin/user.go +++ b/internal/servants/admin/user.go @@ -10,9 +10,7 @@ import ( ) var ( - _ api.User = (*userSrv)(nil) - _ api.UserBinding = (*userBinding)(nil) - _ api.UserRender = (*userRender)(nil) + _ api.User = (*userSrv)(nil) ) type userSrv struct { @@ -20,32 +18,6 @@ type userSrv struct { api.UnimplementedUserServant } -type userBinding struct { - base.BaseBinding - *api.UnimplementedUserBinding -} - -type userRender struct { - base.BaseRender - *api.UnimplementedUserRender -} - func newUserSrv() api.User { return &userSrv{} } - -func newUserBinding() api.UserBinding { - return &userBinding{ - UnimplementedUserBinding: &api.UnimplementedUserBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newUserRender() api.UserRender { - return &userRender{ - UnimplementedUserRender: &api.UnimplementedUserRender{ - RenderAny: base.RenderAny, - }, - } -} diff --git a/internal/servants/base/base.go b/internal/servants/base/base.go index eb77d2f2..a418b052 100644 --- a/internal/servants/base/base.go +++ b/internal/servants/base/base.go @@ -10,7 +10,7 @@ import ( "math" "net/http" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/cockroachdb/errors" "github.com/getsentry/sentry-go" sentrygin "github.com/getsentry/sentry-go/gin" @@ -25,9 +25,13 @@ import ( "github.com/sirupsen/logrus" ) -type BaseServant types.Empty +type BaseServant struct { + bindAny func(c *gin.Context, obj any) mir.Error +} type DaoServant struct { + *BaseServant + Ds core.DataService Ts core.TweetSearchService Redis core.RedisCache @@ -156,6 +160,25 @@ func RenderAny(c *gin.Context, data any, err mir.Error) { } } +func (s *BaseServant) Bind(c *gin.Context, obj any) mir.Error { + return s.bindAny(c, obj) +} + +func (s *BaseServant) Render(c *gin.Context, data any, err mir.Error) { + if err == nil { + c.JSON(http.StatusOK, &JsonResp{ + Code: 0, + Msg: "success", + Data: data, + }) + } else { + c.JSON(xerror.HttpStatusCode(err), &JsonResp{ + Code: err.StatusCode(), + Msg: err.Error(), + }) + } +} + func (s *DaoServant) GetTweetBy(id int64) (*core.PostFormated, error) { post, err := s.Ds.GetPostByID(id) if err != nil { @@ -253,17 +276,24 @@ func (s *DaoServant) GetTweetList(conditions *core.ConditionsT, offset, limit in return posts, postFormated, err } -func NewDaoServant() *DaoServant { - return &DaoServant{ - Redis: cache.NewRedisCache(), - Ds: dao.DataService(), - Ts: dao.TweetSearchService(), - } -} - func NewBindAnyFn() func(c *gin.Context, obj any) mir.Error { if conf.UseSentryGin() { return bindAnySentry } return bindAny } + +func NewBaseServant() *BaseServant { + return &BaseServant{ + bindAny: NewBindAnyFn(), + } +} + +func NewDaoServant() *DaoServant { + return &DaoServant{ + BaseServant: NewBaseServant(), + Redis: cache.NewRedisCache(), + Ds: dao.DataService(), + Ts: dao.TweetSearchService(), + } +} diff --git a/internal/servants/bot/bot.go b/internal/servants/bot/bot.go index a2e0e699..8bfaeecf 100644 --- a/internal/servants/bot/bot.go +++ b/internal/servants/bot/bot.go @@ -11,5 +11,5 @@ import ( // RouteBot register Bot route func RouteBot(e *gin.Engine) { - api.RegisterUserServant(e, newUserSrv(), newUserBinding(), newUserRender()) + api.RegisterUserServant(e, newUserSrv()) } diff --git a/internal/servants/bot/user.go b/internal/servants/bot/user.go index 2d7e2d51..5ea239bd 100644 --- a/internal/servants/bot/user.go +++ b/internal/servants/bot/user.go @@ -10,42 +10,16 @@ import ( ) var ( - _ api.User = (*userSrv)(nil) - _ api.UserBinding = (*userBinding)(nil) - _ api.UserRender = (*userRender)(nil) + _ api.User = (*userSrv)(nil) ) type userSrv struct { - base.BaseServant + *base.BaseServant api.UnimplementedUserServant } -type userBinding struct { - base.BaseBinding - *api.UnimplementedUserBinding -} - -type userRender struct { - base.BaseRender - *api.UnimplementedUserRender -} - func newUserSrv() api.User { - return &userSrv{} -} - -func newUserBinding() api.UserBinding { - return &userBinding{ - UnimplementedUserBinding: &api.UnimplementedUserBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newUserRender() api.UserRender { - return &userRender{ - UnimplementedUserRender: &api.UnimplementedUserRender{ - RenderAny: base.RenderAny, - }, + return &userSrv{ + BaseServant: base.NewBaseServant(), } } diff --git a/internal/servants/localoss/localoss.go b/internal/servants/localoss/localoss.go index 97fdafbe..021c662e 100644 --- a/internal/servants/localoss/localoss.go +++ b/internal/servants/localoss/localoss.go @@ -26,5 +26,5 @@ func RouteLocalOSS(e *gin.Engine) { // RouteLocaloss register LocalOSS route if needed func RouteLocaloss(e *gin.Engine) { - api.RegisterUserServant(e, newUserSrv(), newUserBinding(), newUserRender()) + api.RegisterUserServant(e, newUserSrv()) } diff --git a/internal/servants/localoss/user.go b/internal/servants/localoss/user.go index adb65933..2d45f5b9 100644 --- a/internal/servants/localoss/user.go +++ b/internal/servants/localoss/user.go @@ -10,42 +10,16 @@ import ( ) var ( - _ api.User = (*userSrv)(nil) - _ api.UserBinding = (*userBinding)(nil) - _ api.UserRender = (*userRender)(nil) + _ api.User = (*userSrv)(nil) ) type userSrv struct { - base.BaseServant + *base.BaseServant api.UnimplementedUserServant } -type userBinding struct { - base.BaseBinding - *api.UnimplementedUserBinding -} - -type userRender struct { - base.BaseRender - *api.UnimplementedUserRender -} - func newUserSrv() api.User { - return &userSrv{} -} - -func newUserBinding() api.UserBinding { - return &userBinding{ - UnimplementedUserBinding: &api.UnimplementedUserBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newUserRender() api.UserRender { - return &userRender{ - UnimplementedUserRender: &api.UnimplementedUserRender{ - RenderAny: base.RenderAny, - }, + return &userSrv{ + BaseServant: base.NewBaseServant(), } } diff --git a/internal/servants/space/space.go b/internal/servants/space/space.go index c9952035..b80b8c93 100644 --- a/internal/servants/space/space.go +++ b/internal/servants/space/space.go @@ -11,5 +11,5 @@ import ( // RouteWeb register SpaceX route func RouteSpaceX(e *gin.Engine) { - api.RegisterUserServant(e, newUserSrv(), newUserBinding(), newUserRender()) + api.RegisterUserServant(e, newUserSrv()) } diff --git a/internal/servants/space/user.go b/internal/servants/space/user.go index 23e02b79..505b6f30 100644 --- a/internal/servants/space/user.go +++ b/internal/servants/space/user.go @@ -10,42 +10,16 @@ import ( ) var ( - _ api.User = (*userSrv)(nil) - _ api.UserBinding = (*userBinding)(nil) - _ api.UserRender = (*userRender)(nil) + _ api.User = (*userSrv)(nil) ) type userSrv struct { - base.BaseServant + *base.BaseServant api.UnimplementedUserServant } -type userBinding struct { - base.BaseBinding - *api.UnimplementedUserBinding -} - -type userRender struct { - base.BaseRender - *api.UnimplementedUserRender -} - func newUserSrv() api.User { - return &userSrv{} -} - -func newUserBinding() api.UserBinding { - return &userBinding{ - UnimplementedUserBinding: &api.UnimplementedUserBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newUserRender() api.UserRender { - return &userRender{ - UnimplementedUserRender: &api.UnimplementedUserRender{ - RenderAny: base.RenderAny, - }, + return &userSrv{ + BaseServant: base.NewBaseServant(), } } diff --git a/internal/servants/web/admin.go b/internal/servants/web/admin.go index 4db8a9b9..27d7f5c1 100644 --- a/internal/servants/web/admin.go +++ b/internal/servants/web/admin.go @@ -5,7 +5,7 @@ package web import ( - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" api "github.com/rocboss/paopao-ce/auto/api/v1" "github.com/rocboss/paopao-ce/internal/model/web" @@ -15,9 +15,7 @@ import ( ) var ( - _ api.Admin = (*adminSrv)(nil) - _ api.AdminBinding = (*adminBinding)(nil) - _ api.AdminRender = (*adminRender)(nil) + _ api.Admin = (*adminSrv)(nil) ) type adminSrv struct { @@ -25,14 +23,6 @@ type adminSrv struct { *base.DaoServant } -type adminBinding struct { - *api.UnimplementedAdminBinding -} - -type adminRender struct { - *api.UnimplementedAdminRender -} - func (s *adminSrv) Chain() gin.HandlersChain { return gin.HandlersChain{chain.JWT(), chain.Admin()} } @@ -55,19 +45,3 @@ func newAdminSrv(s *base.DaoServant) api.Admin { DaoServant: s, } } - -func newAdminBinding() api.AdminBinding { - return &adminBinding{ - UnimplementedAdminBinding: &api.UnimplementedAdminBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newAdminRender() api.AdminRender { - return &adminRender{ - UnimplementedAdminRender: &api.UnimplementedAdminRender{ - RenderAny: base.RenderAny, - }, - } -} diff --git a/internal/servants/web/alipay.go b/internal/servants/web/alipay.go index 5b4c35a3..dc8f4a84 100644 --- a/internal/servants/web/alipay.go +++ b/internal/servants/web/alipay.go @@ -7,26 +7,19 @@ package web import ( "fmt" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" api "github.com/rocboss/paopao-ce/auto/api/v1" "github.com/rocboss/paopao-ce/internal/model/web" "github.com/rocboss/paopao-ce/internal/servants/base" "github.com/rocboss/paopao-ce/internal/servants/chain" - "github.com/rocboss/paopao-ce/pkg/app" - "github.com/rocboss/paopao-ce/pkg/convert" - "github.com/rocboss/paopao-ce/pkg/xerror" "github.com/sirupsen/logrus" "github.com/smartwalle/alipay/v3" ) var ( - _ api.AlipayPub = (*alipayPubSrv)(nil) - _ api.AlipayPubBinding = (*alipayPubBinding)(nil) - _ api.AlipayPubRender = (*alipayPubRender)(nil) - _ api.AlipayPriv = (*alipayPrivSrv)(nil) - _ api.AlipayPrivBinding = (*alipayPrivBinding)(nil) - _ api.AlipayPrivRender = (*alipayPrivRender)(nil) + _ api.AlipayPub = (*alipayPubSrv)(nil) + _ api.AlipayPriv = (*alipayPrivSrv)(nil) ) type alipayPubSrv struct { @@ -34,16 +27,6 @@ type alipayPubSrv struct { *base.DaoServant } -type alipayPubBinding struct { - *api.UnimplementedAlipayPubBinding - - alipayClient *alipay.Client -} - -type alipayPubRender struct { - *api.UnimplementedAlipayPubRender -} - type alipayPrivSrv struct { api.UnimplementedAlipayPrivServant *base.DaoServant @@ -51,32 +34,6 @@ type alipayPrivSrv struct { alipayClient *alipay.Client } -type alipayPrivBinding struct { - *api.UnimplementedAlipayPrivBinding -} - -type alipayPrivRender struct { - *api.UnimplementedAlipayPrivRender -} - -func (b *alipayPubBinding) BindAlipayNotify(c *gin.Context) (*web.AlipayNotifyReq, mir.Error) { - if err := c.Request.ParseForm(); err != nil { - logrus.Errorf("parse form err: %s", err) - return nil, _errRechargeNotifyError - } - noti, err := b.alipayClient.GetTradeNotification(c.Request) - if err != nil { - logrus.Errorf("alipayClient.GetTradeNotification err: %s form: %v", err, c.Request.Form) - return nil, _errRechargeNotifyError - } - return &web.AlipayNotifyReq{ - Ctx: c.Request.Context(), - ID: convert.StrTo(noti.OutTradeNo).MustInt64(), - TradeNo: noti.TradeNo, - TradeStatus: noti.TradeStatus, - }, nil -} - func (s *alipayPubSrv) AlipayNotify(req *web.AlipayNotifyReq) mir.Error { if req.TradeStatus == alipay.TradeStatusSuccess { if err := s.Redis.SetRechargeStatus(req.Ctx, req.TradeNo); err == nil { @@ -99,38 +56,6 @@ func (s *alipayPubSrv) AlipayNotify(req *web.AlipayNotifyReq) mir.Error { return nil } -func (b *alipayPrivBinding) BindUserWalletBills(c *gin.Context) (*web.UserWalletBillsReq, mir.Error) { - uid, ok := base.UserIdFrom(c) - if !ok { - return nil, xerror.UnauthorizedTokenError - } - page, pageSize := app.GetPageInfo(c) - return &web.UserWalletBillsReq{ - UserId: uid, - Page: page, - PageSize: pageSize, - }, nil -} - -func (b *alipayPrivBinding) BindUserRechargeLink(c *gin.Context) (*web.UserRechargeLinkReq, mir.Error) { - v := &web.UserRechargeLinkReq{ - Host: c.Request.Host, - } - err := b.BindAny(c, v) - return v, err -} - -func (b *alipayPrivBinding) BindUserRechargeResult(c *gin.Context) (*web.UserRechargeResultReq, mir.Error) { - uid, exist := base.UserIdFrom(c) - if !exist { - return nil, xerror.UnauthorizedTokenError - } - return &web.UserRechargeResultReq{ - UserId: uid, - Id: convert.StrTo(c.Query("id")).MustInt64(), - }, nil -} - func (s *alipayPrivSrv) Chain() gin.HandlersChain { return gin.HandlersChain{chain.JWT()} } @@ -197,42 +122,9 @@ func newAlipayPubSrv(s *base.DaoServant) api.AlipayPub { } } -func newAlipayPubBinding(alipayClient *alipay.Client) api.AlipayPubBinding { - return &alipayPubBinding{ - UnimplementedAlipayPubBinding: &api.UnimplementedAlipayPubBinding{ - BindAny: base.NewBindAnyFn(), - }, - alipayClient: alipayClient, - } -} - -func newAlipayPubRender() api.AlipayPubRender { - return &alipayPubRender{ - UnimplementedAlipayPubRender: &api.UnimplementedAlipayPubRender{ - RenderAny: base.RenderAny, - }, - } -} - func newAlipayPrivSrv(s *base.DaoServant, client *alipay.Client) api.AlipayPriv { return &alipayPrivSrv{ DaoServant: s, alipayClient: client, } } - -func newAlipayPrivBinding() api.AlipayPrivBinding { - return &alipayPrivBinding{ - UnimplementedAlipayPrivBinding: &api.UnimplementedAlipayPrivBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newAlipayPrivRender() api.AlipayPrivRender { - return &alipayPrivRender{ - UnimplementedAlipayPrivRender: &api.UnimplementedAlipayPrivRender{ - RenderAny: base.RenderAny, - }, - } -} diff --git a/internal/servants/web/core.go b/internal/servants/web/core.go index daad3b30..637108b8 100644 --- a/internal/servants/web/core.go +++ b/internal/servants/web/core.go @@ -10,14 +10,13 @@ import ( "time" "unicode/utf8" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" api "github.com/rocboss/paopao-ce/auto/api/v1" "github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/model/web" "github.com/rocboss/paopao-ce/internal/servants/base" "github.com/rocboss/paopao-ce/internal/servants/chain" - "github.com/rocboss/paopao-ce/pkg/convert" "github.com/rocboss/paopao-ce/pkg/xerror" "github.com/sirupsen/logrus" ) @@ -29,9 +28,7 @@ const ( ) var ( - _ api.Core = (*coreSrv)(nil) - _ api.CoreBinding = (*coreBinding)(nil) - _ api.CoreRender = (*coreRender)(nil) + _ api.Core = (*coreSrv)(nil) ) type coreSrv struct { @@ -41,77 +38,6 @@ type coreSrv struct { oss core.ObjectStorageService } -type coreBinding struct { - *api.UnimplementedCoreBinding -} - -type coreRender struct { - *api.UnimplementedCoreRender -} - -func (b *coreBinding) BindGetUserInfo(c *gin.Context) (*web.UserInfoReq, mir.Error) { - username, exist := base.UserNameFrom(c) - if !exist { - return nil, xerror.UnauthorizedAuthNotExist - } - return &web.UserInfoReq{ - Username: username, - }, nil -} - -func (b *coreBinding) BindGetMessages(c *gin.Context) (*web.GetMessagesReq, mir.Error) { - v, err := web.BasePageReqFrom(c) - return (*web.GetMessagesReq)(v), err -} - -func (b *coreBinding) BindGetCollections(c *gin.Context) (*web.GetCollectionsReq, mir.Error) { - v, err := web.BasePageReqFrom(c) - return (*web.GetCollectionsReq)(v), err -} - -func (b *coreBinding) BindGetStars(c *gin.Context) (*web.GetStarsReq, mir.Error) { - v, err := web.BasePageReqFrom(c) - return (*web.GetStarsReq)(v), err -} - -func (b *coreBinding) BindSuggestTags(c *gin.Context) (*web.SuggestTagsReq, mir.Error) { - return &web.SuggestTagsReq{ - Keyword: c.Query("k"), - }, nil -} - -func (b *coreBinding) BindSuggestUsers(c *gin.Context) (*web.SuggestUsersReq, mir.Error) { - return &web.SuggestUsersReq{ - Keyword: c.Query("k"), - }, nil -} - -func (b *coreBinding) BindTweetCollectionStatus(c *gin.Context) (*web.TweetCollectionStatusReq, mir.Error) { - UserId, exist := base.UserIdFrom(c) - if !exist { - return nil, xerror.UnauthorizedAuthNotExist - } - return &web.TweetCollectionStatusReq{ - SimpleInfo: web.SimpleInfo{ - Uid: UserId, - }, - TweetId: convert.StrTo(c.Query("id")).MustInt64(), - }, nil -} - -func (b *coreBinding) BindTweetStarStatus(c *gin.Context) (*web.TweetStarStatusReq, mir.Error) { - UserId, exist := base.UserIdFrom(c) - if !exist { - return nil, xerror.UnauthorizedAuthNotExist - } - return &web.TweetStarStatusReq{ - SimpleInfo: web.SimpleInfo{ - Uid: UserId, - }, - TweetId: convert.StrTo(c.Query("id")).MustInt64(), - }, nil -} - func (s *coreSrv) Chain() gin.HandlersChain { return gin.HandlersChain{chain.JWT()} } @@ -448,19 +374,3 @@ func newCoreSrv(s *base.DaoServant, oss core.ObjectStorageService) api.Core { oss: oss, } } - -func newCoreBinding() api.CoreBinding { - return &coreBinding{ - UnimplementedCoreBinding: &api.UnimplementedCoreBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newCoreRender() api.CoreRender { - return &coreRender{ - UnimplementedCoreRender: &api.UnimplementedCoreRender{ - RenderAny: base.RenderAny, - }, - } -} diff --git a/internal/servants/web/followship.go b/internal/servants/web/followship.go index 2aeaf9cc..eb9cc14f 100644 --- a/internal/servants/web/followship.go +++ b/internal/servants/web/followship.go @@ -12,9 +12,7 @@ import ( ) var ( - _ api.Followship = (*followshipSrv)(nil) - _ api.FollowshipBinding = (*followshipBinding)(nil) - _ api.FollowshipRender = (*followshipRender)(nil) + _ api.Followship = (*followshipSrv)(nil) ) type followshipSrv struct { @@ -22,14 +20,6 @@ type followshipSrv struct { *base.DaoServant } -type followshipBinding struct { - *api.UnimplementedFollowshipBinding -} - -type followshipRender struct { - *api.UnimplementedFollowshipRender -} - func (s *followshipSrv) Chain() gin.HandlersChain { return gin.HandlersChain{chain.JWT()} } @@ -37,19 +27,3 @@ func (s *followshipSrv) Chain() gin.HandlersChain { func newFollowshipSrv(s *base.DaoServant) api.Followship { return &followshipSrv{} } - -func newFollowshipBinding() api.FollowshipBinding { - return &followshipBinding{ - UnimplementedFollowshipBinding: &api.UnimplementedFollowshipBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newFollowshipRender() api.FollowshipRender { - return &followshipRender{ - UnimplementedFollowshipRender: &api.UnimplementedFollowshipRender{ - RenderAny: base.RenderAny, - }, - } -} diff --git a/internal/servants/web/friendship.go b/internal/servants/web/friendship.go index 11f8e129..afe0dcf2 100644 --- a/internal/servants/web/friendship.go +++ b/internal/servants/web/friendship.go @@ -5,7 +5,7 @@ package web import ( - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" api "github.com/rocboss/paopao-ce/auto/api/v1" "github.com/rocboss/paopao-ce/internal/model/web" @@ -16,9 +16,7 @@ import ( ) var ( - _ api.Friendship = (*friendshipSrv)(nil) - _ api.FriendshipBinding = (*friendshipBinding)(nil) - _ api.FriendshipRender = (*friendshipRender)(nil) + _ api.Friendship = (*friendshipSrv)(nil) ) type friendshipSrv struct { @@ -26,14 +24,6 @@ type friendshipSrv struct { *base.DaoServant } -type friendshipBinding struct { - *api.UnimplementedFriendshipBinding -} - -type friendshipRender struct { - *api.UnimplementedFriendshipRender -} - func (s *friendshipSrv) Chain() gin.HandlersChain { return gin.HandlersChain{chain.JWT()} } @@ -124,19 +114,3 @@ func newFriendshipSrv(s *base.DaoServant) api.Friendship { DaoServant: s, } } - -func newFriendshipBinding() api.FriendshipBinding { - return &friendshipBinding{ - UnimplementedFriendshipBinding: &api.UnimplementedFriendshipBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newFriendshipRender() api.FriendshipRender { - return &friendshipRender{ - UnimplementedFriendshipRender: &api.UnimplementedFriendshipRender{ - RenderAny: base.RenderAny, - }, - } -} diff --git a/internal/servants/web/loose.go b/internal/servants/web/loose.go index 76d3a49c..2a6c50c7 100644 --- a/internal/servants/web/loose.go +++ b/internal/servants/web/loose.go @@ -5,7 +5,7 @@ package web import ( - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gin-gonic/gin" api "github.com/rocboss/paopao-ce/auto/api/v1" "github.com/rocboss/paopao-ce/internal/core" @@ -14,14 +14,11 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" "github.com/rocboss/paopao-ce/internal/servants/base" "github.com/rocboss/paopao-ce/internal/servants/chain" - "github.com/rocboss/paopao-ce/pkg/app" "github.com/sirupsen/logrus" ) var ( - _ api.Loose = (*looseSrv)(nil) - _ api.LooseBinding = (*looseBinding)(nil) - _ api.LooseRender = (*looseRender)(nil) + _ api.Loose = (*looseSrv)(nil) ) type looseSrv struct { @@ -29,32 +26,6 @@ type looseSrv struct { *base.DaoServant } -type looseBinding struct { - *api.UnimplementedLooseBinding -} - -type looseRender struct { - *api.UnimplementedLooseRender -} - -func (s *looseBinding) BindTimeline(c *gin.Context) (*web.TimelineReq, mir.Error) { - user, _ := base.UserFrom(c) - page, pageSize := app.GetPageInfo(c) - v := &web.TimelineReq{ - BaseInfo: web.BaseInfo{ - User: user, - }, - Query: c.Query("query"), - Type: "search", - Page: page, - PageSize: pageSize, - } - if c.Query("type") == "tag" { - v.Type = "tag" - } - return v, nil -} - func (s *looseSrv) Chain() gin.HandlersChain { return gin.HandlersChain{chain.JwtLoose()} } @@ -278,19 +249,3 @@ func newLooseSrv(s *base.DaoServant) api.Loose { DaoServant: s, } } - -func newLooseBinding() api.LooseBinding { - return &looseBinding{ - UnimplementedLooseBinding: &api.UnimplementedLooseBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newLooseRender() api.LooseRender { - return &looseRender{ - UnimplementedLooseRender: &api.UnimplementedLooseRender{ - RenderAny: base.RenderAny, - }, - } -} diff --git a/internal/servants/web/priv.go b/internal/servants/web/priv.go index cecd77a1..97117749 100644 --- a/internal/servants/web/priv.go +++ b/internal/servants/web/priv.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/disintegration/imaging" "github.com/gin-gonic/gin" "github.com/gofrs/uuid" @@ -19,16 +19,13 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" "github.com/rocboss/paopao-ce/internal/servants/base" "github.com/rocboss/paopao-ce/internal/servants/chain" - "github.com/rocboss/paopao-ce/pkg/convert" "github.com/rocboss/paopao-ce/pkg/utils" "github.com/rocboss/paopao-ce/pkg/xerror" "github.com/sirupsen/logrus" ) var ( - _ api.Priv = (*privSrv)(nil) - _ api.PrivBinding = (*privBinding)(nil) - _ api.PrivRender = (*privRender)(nil) + _ api.Priv = (*privSrv)(nil) _uploadAttachmentTypeMap = map[string]core.AttachmentType{ "public/image": core.AttachmentTypeImage, @@ -45,100 +42,6 @@ type privSrv struct { oss core.ObjectStorageService } -type privBinding struct { - *api.UnimplementedPrivBinding -} - -type privRender struct { - *api.UnimplementedPrivRender -} - -func (b *privBinding) BindUploadAttachment(c *gin.Context) (_ *web.UploadAttachmentReq, xerr mir.Error) { - UserId, exist := base.UserIdFrom(c) - if !exist { - return nil, xerror.UnauthorizedAuthNotExist - } - - uploadType := c.Request.FormValue("type") - file, fileHeader, err := c.Request.FormFile("file") - if err != nil { - return nil, _errFileUploadFailed - } - defer func() { - if xerr != nil { - file.Close() - } - }() - - if err := fileCheck(uploadType, fileHeader.Size); err != nil { - return nil, err - } - - contentType := fileHeader.Header.Get("Content-Type") - fileExt, xerr := getFileExt(contentType) - if xerr != nil { - return nil, xerr - } - - return &web.UploadAttachmentReq{ - SimpleInfo: web.SimpleInfo{ - Uid: UserId, - }, - UploadType: uploadType, - ContentType: contentType, - File: file, - FileSize: fileHeader.Size, - FileExt: fileExt, - }, nil -} - -func (b *privBinding) BindDownloadAttachmentPrecheck(c *gin.Context) (*web.DownloadAttachmentPrecheckReq, mir.Error) { - user, exist := base.UserFrom(c) - if !exist { - return nil, xerror.UnauthorizedAuthNotExist - } - return &web.DownloadAttachmentPrecheckReq{ - BaseInfo: web.BaseInfo{ - User: user, - }, - ContentID: convert.StrTo(c.Query("id")).MustInt64(), - }, nil -} - -func (b *privBinding) BindDownloadAttachment(c *gin.Context) (*web.DownloadAttachmentReq, mir.Error) { - user, exist := base.UserFrom(c) - if !exist { - return nil, xerror.UnauthorizedAuthNotExist - } - return &web.DownloadAttachmentReq{ - BaseInfo: web.BaseInfo{ - User: user, - }, - ContentID: convert.StrTo(c.Query("id")).MustInt64(), - }, nil -} - -func (s *privBinding) BindCreateTweet(c *gin.Context) (*web.CreateTweetReq, mir.Error) { - v := &web.CreateTweetReq{} - err := s.BindAny(c, v) - v.ClientIP = c.ClientIP() - return v, err -} - -func (s *privBinding) BindCreateCommentReply(c *gin.Context) (*web.CreateCommentReplyReq, mir.Error) { - v := &web.CreateCommentReplyReq{} - err := s.BindAny(c, v) - v.ClientIP = c.ClientIP() - return v, err -} - -func (s *privBinding) BindCreateComment(c *gin.Context) (*web.CreateCommentReq, mir.Error) { - v := &web.CreateCommentReq{} - err := s.BindAny(c, v) - v.ClientIP = c.ClientIP() - return v, err -} - func (s *privSrv) Chain() gin.HandlersChain { return gin.HandlersChain{chain.JWT(), chain.Priv()} } @@ -927,19 +830,3 @@ func newPrivSrv(s *base.DaoServant, oss core.ObjectStorageService) api.Priv { oss: oss, } } - -func newPrivBinding() api.PrivBinding { - return &privBinding{ - UnimplementedPrivBinding: &api.UnimplementedPrivBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newPrivRender() api.PrivRender { - return &privRender{ - UnimplementedPrivRender: &api.UnimplementedPrivRender{ - RenderAny: base.RenderAny, - }, - } -} diff --git a/internal/servants/web/pub.go b/internal/servants/web/pub.go index 6c58de3c..6967d3c3 100644 --- a/internal/servants/web/pub.go +++ b/internal/servants/web/pub.go @@ -14,7 +14,7 @@ import ( "unicode/utf8" "github.com/afocus/captcha" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gofrs/uuid" api "github.com/rocboss/paopao-ce/auto/api/v1" "github.com/rocboss/paopao-ce/internal/core" @@ -29,9 +29,7 @@ import ( ) var ( - _ api.Pub = (*pubSrv)(nil) - _ api.PubBinding = (*pubBinding)(nil) - _ api.PubRender = (*pubRender)(nil) + _ api.Pub = (*pubSrv)(nil) ) const ( @@ -44,14 +42,6 @@ type pubSrv struct { *base.DaoServant } -type pubBinding struct { - *api.UnimplementedPubBinding -} - -type pubRender struct { - *api.UnimplementedPubRender -} - func (s *pubSrv) TweetDetail(req *web.TweetDetailReq) (*web.TweetDetailResp, mir.Error) { post, err := s.Ds.GetPostByID(req.TweetId) if err != nil { @@ -228,19 +218,3 @@ func newPubSrv(s *base.DaoServant) api.Pub { DaoServant: s, } } - -func newPubBinding() api.PubBinding { - return &pubBinding{ - UnimplementedPubBinding: &api.UnimplementedPubBinding{ - BindAny: base.NewBindAnyFn(), - }, - } -} - -func newPubRender() api.PubRender { - return &pubRender{ - UnimplementedPubRender: &api.UnimplementedPubRender{ - RenderAny: base.RenderAny, - }, - } -} diff --git a/internal/servants/web/utils.go b/internal/servants/web/utils.go index b4dc77b8..b795d939 100644 --- a/internal/servants/web/utils.go +++ b/internal/servants/web/utils.go @@ -11,7 +11,7 @@ import ( "time" "unicode/utf8" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" "github.com/gofrs/uuid" "github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/model/web" diff --git a/internal/servants/web/web.go b/internal/servants/web/web.go index e4f9da1f..e4684a1e 100644 --- a/internal/servants/web/web.go +++ b/internal/servants/web/web.go @@ -13,8 +13,6 @@ import ( "github.com/rocboss/paopao-ce/internal/conf" "github.com/rocboss/paopao-ce/internal/dao" "github.com/rocboss/paopao-ce/internal/servants/base" - "github.com/sirupsen/logrus" - "github.com/smartwalle/alipay/v3" ) var ( @@ -29,49 +27,27 @@ func RouteWeb(e *gin.Engine) { oss := dao.ObjectStorageService() ds := base.NewDaoServant() // aways register servants - api.RegisterAdminServant(e, newAdminSrv(ds), newAdminBinding(), newAdminRender()) - api.RegisterCoreServant(e, newCoreSrv(ds, oss), newCoreBinding(), newCoreRender()) - api.RegisterLooseServant(e, newLooseSrv(ds), newLooseBinding(), newLooseRender()) - api.RegisterPrivServant(e, newPrivSrv(ds, oss), newPrivBinding(), newPrivRender()) - api.RegisterPubServant(e, newPubSrv(ds), newPubBinding(), newPubRender()) + api.RegisterAdminServant(e, newAdminSrv(ds)) + api.RegisterCoreServant(e, newCoreSrv(ds, oss)) + api.RegisterLooseServant(e, newLooseSrv(ds)) + api.RegisterPrivServant(e, newPrivSrv(ds, oss)) + api.RegisterPubServant(e, newPubSrv(ds)) // regster servants if needed by configure cfg.In(cfg.Actions{ "Alipay": func() { - client := mustAlipayClient() - api.RegisterAlipayPubServant(e, newAlipayPubSrv(ds), newAlipayPubBinding(client), newAlipayPubRender()) - api.RegisterAlipayPrivServant(e, newAlipayPrivSrv(ds, client), newAlipayPrivBinding(), newAlipayPrivRender()) + client := conf.MustAlipayClient() + api.RegisterAlipayPubServant(e, newAlipayPubSrv(ds)) + api.RegisterAlipayPrivServant(e, newAlipayPrivSrv(ds, client)) }, "Followship": func() { - api.RegisterFollowshipServant(e, newFollowshipSrv(ds), newFollowshipBinding(), newFollowshipRender()) + api.RegisterFollowshipServant(e, newFollowshipSrv(ds)) }, "Friendship": func() { - api.RegisterFriendshipServant(e, newFriendshipSrv(ds), newFriendshipBinding(), newFriendshipRender()) + api.RegisterFriendshipServant(e, newFriendshipSrv(ds)) }, }) } -func mustAlipayClient() *alipay.Client { - s := conf.AlipaySetting - // 将 key 的验证调整到初始化阶段 - client, err := alipay.New(s.AppID, s.PrivateKey, s.InProduction) - if err != nil { - logrus.Fatalf("alipay.New err: %s", err) - } - // 加载应用公钥证书 - if err = client.LoadAppPublicCertFromFile(s.AppPublicCertFile); err != nil { - logrus.Fatalf("client.LoadAppPublicCertFromFile err: %s\n", err) - } - // 加载支付宝根证书 - if err = client.LoadAliPayRootCertFromFile(s.RootCertFile); err != nil { - logrus.Fatalf("client.LoadAliPayRootCertFromFile err: %s\n", err) - } - // 加载支付宝公钥证书 - if err = client.LoadAliPayPublicCertFromFile(s.PublicCertFile); err != nil { - logrus.Fatalf("client.LoadAliPayPublicCertFromFile err: %s\n", err) - } - return client -} - // lazyInitial do some package lazy initialize for performance func lazyInitial() { _onceInitial.Do(func() { diff --git a/mirc/admin/v1/user.go b/mirc/admin/v1/user.go index 0924ca84..c8e690e8 100644 --- a/mirc/admin/v1/user.go +++ b/mirc/admin/v1/user.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" ) func init() { diff --git a/mirc/bot/v1/user.go b/mirc/bot/v1/user.go index e9f614b6..ffe4d8da 100644 --- a/mirc/bot/v1/user.go +++ b/mirc/bot/v1/user.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" ) func init() { diff --git a/mirc/gen.go b/mirc/gen.go index 15574b06..0f0acca9 100644 --- a/mirc/gen.go +++ b/mirc/gen.go @@ -10,8 +10,8 @@ package main import ( "log" - . "github.com/alimy/mir/v3/core" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4/core" + . "github.com/alimy/mir/v4/engine" _ "github.com/rocboss/paopao-ce/mirc/admin/v1" _ "github.com/rocboss/paopao-ce/mirc/bot/v1" diff --git a/mirc/localoss/v1/user.go b/mirc/localoss/v1/user.go index 481d70a5..e7380750 100644 --- a/mirc/localoss/v1/user.go +++ b/mirc/localoss/v1/user.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" ) func init() { diff --git a/mirc/space/v1/user.go b/mirc/space/v1/user.go index f3193c7f..f54c3298 100644 --- a/mirc/space/v1/user.go +++ b/mirc/space/v1/user.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" ) func init() { diff --git a/mirc/web/v1/admin.go b/mirc/web/v1/admin.go index c8126ba3..8799fc8a 100644 --- a/mirc/web/v1/admin.go +++ b/mirc/web/v1/admin.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" "github.com/rocboss/paopao-ce/internal/model/web" ) diff --git a/mirc/web/v1/alipay.go b/mirc/web/v1/alipay.go index b012c568..0234639b 100644 --- a/mirc/web/v1/alipay.go +++ b/mirc/web/v1/alipay.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" "github.com/rocboss/paopao-ce/internal/model/web" ) diff --git a/mirc/web/v1/core.go b/mirc/web/v1/core.go index 70d9c1a5..d81fa520 100644 --- a/mirc/web/v1/core.go +++ b/mirc/web/v1/core.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" "github.com/rocboss/paopao-ce/internal/model/web" ) diff --git a/mirc/web/v1/followship.go b/mirc/web/v1/followship.go index 456fd5eb..e0123479 100644 --- a/mirc/web/v1/followship.go +++ b/mirc/web/v1/followship.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" "github.com/rocboss/paopao-ce/internal/model/web" ) diff --git a/mirc/web/v1/friendship.go b/mirc/web/v1/friendship.go index b753eee3..69757d27 100644 --- a/mirc/web/v1/friendship.go +++ b/mirc/web/v1/friendship.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" "github.com/rocboss/paopao-ce/internal/model/web" ) diff --git a/mirc/web/v1/loose.go b/mirc/web/v1/loose.go index 810b2f87..a5119656 100644 --- a/mirc/web/v1/loose.go +++ b/mirc/web/v1/loose.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" "github.com/rocboss/paopao-ce/internal/model/web" ) diff --git a/mirc/web/v1/priv.go b/mirc/web/v1/priv.go index 15817543..0c1f2f27 100644 --- a/mirc/web/v1/priv.go +++ b/mirc/web/v1/priv.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" "github.com/rocboss/paopao-ce/internal/model/web" ) diff --git a/mirc/web/v1/pub.go b/mirc/web/v1/pub.go index 5320c537..6dcd8bc5 100644 --- a/mirc/web/v1/pub.go +++ b/mirc/web/v1/pub.go @@ -1,8 +1,8 @@ package v1 import ( - . "github.com/alimy/mir/v3" - . "github.com/alimy/mir/v3/engine" + . "github.com/alimy/mir/v4" + . "github.com/alimy/mir/v4/engine" "github.com/rocboss/paopao-ce/internal/model/web" ) diff --git a/pkg/xerror/xerror.go b/pkg/xerror/xerror.go index 5bdcb115..2f8d01f2 100644 --- a/pkg/xerror/xerror.go +++ b/pkg/xerror/xerror.go @@ -9,7 +9,7 @@ import ( "net/http" "strings" - "github.com/alimy/mir/v3" + "github.com/alimy/mir/v4" ) var ( From ec14345e688073a3c16e54b8042b959ea1f2dddf Mon Sep 17 00:00:00 2001 From: Michael Li Date: Wed, 28 Jun 2023 02:10:02 +0800 Subject: [PATCH 17/61] optimize errors position in web servant --- internal/model/web/alipay.go | 4 +- internal/model/web/priv.go | 2 +- internal/model/web/utils.go | 4 +- internal/model/web/xerror.go | 144 ++++++++++++++-------------- internal/servants/web/admin.go | 2 +- internal/servants/web/alipay.go | 18 ++-- internal/servants/web/core.go | 40 ++++---- internal/servants/web/friendship.go | 26 ++--- internal/servants/web/loose.go | 28 +++--- internal/servants/web/priv.go | 96 +++++++++---------- internal/servants/web/pub.go | 26 ++--- internal/servants/web/utils.go | 8 +- internal/servants/web/xerror.go | 93 ------------------ 13 files changed, 199 insertions(+), 292 deletions(-) delete mode 100644 internal/servants/web/xerror.go diff --git a/internal/model/web/alipay.go b/internal/model/web/alipay.go index 707a1170..6bfa674f 100644 --- a/internal/model/web/alipay.go +++ b/internal/model/web/alipay.go @@ -57,12 +57,12 @@ type AlipayNotifyReq struct { func (r *AlipayNotifyReq) Bind(c *gin.Context) mir.Error { if err := c.Request.ParseForm(); err != nil { logrus.Errorf("parse form err: %s", err) - return _errRechargeNotifyError + return ErrRechargeNotifyError } noti, err := conf.MustAlipayClient().GetTradeNotification(c.Request) if err != nil { logrus.Errorf("alipayClient.GetTradeNotification err: %s form: %v", err, c.Request.Form) - return _errRechargeNotifyError + return ErrRechargeNotifyError } r.Ctx = c.Request.Context() r.ID = convert.StrTo(noti.OutTradeNo).MustInt64() diff --git a/internal/model/web/priv.go b/internal/model/web/priv.go index e27c1a95..d226e158 100644 --- a/internal/model/web/priv.go +++ b/internal/model/web/priv.go @@ -209,7 +209,7 @@ func (r *UploadAttachmentReq) Bind(c *gin.Context) (xerr mir.Error) { uploadType := c.Request.FormValue("type") file, fileHeader, err := c.Request.FormFile("file") if err != nil { - return _errFileUploadFailed + return ErrFileUploadFailed } defer func() { if xerr != nil { diff --git a/internal/model/web/utils.go b/internal/model/web/utils.go index ab13ed68..06436d72 100644 --- a/internal/model/web/utils.go +++ b/internal/model/web/utils.go @@ -17,7 +17,7 @@ func fileCheck(uploadType string, size int64) mir.Error { return xerror.InvalidParams } if size > 1024*1024*100 { - return _errFileInvalidSize.WithDetails("最大允许100MB") + return ErrFileInvalidSize.WithDetails("最大允许100MB") } return nil } @@ -42,6 +42,6 @@ func getFileExt(s string) (string, mir.Error) { "application/x-zip-compressed": return ".zip", nil default: - return "", _errFileInvalidExt.WithDetails("仅允许 png/jpg/gif/mp4/mov/zip 类型") + return "", ErrFileInvalidExt.WithDetails("仅允许 png/jpg/gif/mp4/mov/zip 类型") } } diff --git a/internal/model/web/xerror.go b/internal/model/web/xerror.go index 1a0ea170..6328a099 100644 --- a/internal/model/web/xerror.go +++ b/internal/model/web/xerror.go @@ -10,84 +10,84 @@ import ( // nolint var ( - _errUsernameHasExisted = xerror.NewError(20001, "用户名已存在") - _errUsernameLengthLimit = xerror.NewError(20002, "用户名长度3~12") - _errUsernameCharLimit = xerror.NewError(20003, "用户名只能包含字母、数字") - _errPasswordLengthLimit = xerror.NewError(20004, "密码长度6~16") - _errUserRegisterFailed = xerror.NewError(20005, "用户注册失败") - _errUserHasBeenBanned = xerror.NewError(20006, "该账户已被封停") - _errNoPermission = xerror.NewError(20007, "无权限执行该请求") - _errUserHasBindOTP = xerror.NewError(20008, "当前用户已绑定二次验证") - _errUserOTPInvalid = xerror.NewError(20009, "二次验证码验证失败") - _errUserNoBindOTP = xerror.NewError(20010, "当前用户未绑定二次验证") - _errErrorOldPassword = xerror.NewError(20011, "当前用户密码验证失败") - _errErrorCaptchaPassword = xerror.NewError(20012, "图形验证码验证失败") - _errAccountNoPhoneBind = xerror.NewError(20013, "拒绝操作: 账户未绑定手机号") - _errTooManyLoginError = xerror.NewError(20014, "登录失败次数过多,请稍后再试") - _errGetPhoneCaptchaError = xerror.NewError(20015, "短信验证码获取失败") - _errTooManyPhoneCaptchaSend = xerror.NewError(20016, "短信验证码获取次数已达今日上限") - _errExistedUserPhone = xerror.NewError(20017, "该手机号已被绑定") - _errErrorPhoneCaptcha = xerror.NewError(20018, "手机验证码不正确") - _errMaxPhoneCaptchaUseTimes = xerror.NewError(20019, "手机验证码已达最大使用次数") - _errNicknameLengthLimit = xerror.NewError(20020, "昵称长度2~12") - _errNoExistUsername = xerror.NewError(20021, "用户不存在") - _errNoAdminPermission = xerror.NewError(20022, "无管理权限") - _errDisallowUserRegister = xerror.NewError(20023, "系统不允许注册用户") + ErrUsernameHasExisted = xerror.NewError(20001, "用户名已存在") + ErrUsernameLengthLimit = xerror.NewError(20002, "用户名长度3~12") + ErrUsernameCharLimit = xerror.NewError(20003, "用户名只能包含字母、数字") + ErrPasswordLengthLimit = xerror.NewError(20004, "密码长度6~16") + ErrUserRegisterFailed = xerror.NewError(20005, "用户注册失败") + ErrUserHasBeenBanned = xerror.NewError(20006, "该账户已被封停") + ErrNoPermission = xerror.NewError(20007, "无权限执行该请求") + ErrUserHasBindOTP = xerror.NewError(20008, "当前用户已绑定二次验证") + ErrUserOTPInvalid = xerror.NewError(20009, "二次验证码验证失败") + ErrUserNoBindOTP = xerror.NewError(20010, "当前用户未绑定二次验证") + ErrErrorOldPassword = xerror.NewError(20011, "当前用户密码验证失败") + ErrErrorCaptchaPassword = xerror.NewError(20012, "图形验证码验证失败") + ErrAccountNoPhoneBind = xerror.NewError(20013, "拒绝操作: 账户未绑定手机号") + ErrTooManyLoginError = xerror.NewError(20014, "登录失败次数过多,请稍后再试") + ErrGetPhoneCaptchaError = xerror.NewError(20015, "短信验证码获取失败") + ErrTooManyPhoneCaptchaSend = xerror.NewError(20016, "短信验证码获取次数已达今日上限") + ErrExistedUserPhone = xerror.NewError(20017, "该手机号已被绑定") + ErrErrorPhoneCaptcha = xerror.NewError(20018, "手机验证码不正确") + ErrMaxPhoneCaptchaUseTimes = xerror.NewError(20019, "手机验证码已达最大使用次数") + ErrNicknameLengthLimit = xerror.NewError(20020, "昵称长度2~12") + ErrNoExistUsername = xerror.NewError(20021, "用户不存在") + ErrNoAdminPermission = xerror.NewError(20022, "无管理权限") + ErrDisallowUserRegister = xerror.NewError(20023, "系统不允许注册用户") - _errGetPostsFailed = xerror.NewError(30001, "获取动态列表失败") - _errCreatePostFailed = xerror.NewError(30002, "动态发布失败") - _errGetPostFailed = xerror.NewError(30003, "获取动态详情失败") - _errDeletePostFailed = xerror.NewError(30004, "动态删除失败") - _errLockPostFailed = xerror.NewError(30005, "动态锁定失败") - _errGetPostTagsFailed = xerror.NewError(30006, "获取话题列表失败") - _errInvalidDownloadReq = xerror.NewError(30007, "附件下载请求不合法") - _errDownloadReqError = xerror.NewError(30008, "附件下载请求失败") - _errInsuffientDownloadMoney = xerror.NewError(30009, "附件下载失败:账户资金不足") - _errDownloadExecFail = xerror.NewError(30010, "附件下载失败:扣费失败") - _errStickPostFailed = xerror.NewError(30011, "动态置顶失败") - _errVisblePostFailed = xerror.NewError(30012, "更新可见性失败") + ErrGetPostsFailed = xerror.NewError(30001, "获取动态列表失败") + ErrCreatePostFailed = xerror.NewError(30002, "动态发布失败") + ErrGetPostFailed = xerror.NewError(30003, "获取动态详情失败") + ErrDeletePostFailed = xerror.NewError(30004, "动态删除失败") + ErrLockPostFailed = xerror.NewError(30005, "动态锁定失败") + ErrGetPostTagsFailed = xerror.NewError(30006, "获取话题列表失败") + ErrInvalidDownloadReq = xerror.NewError(30007, "附件下载请求不合法") + ErrDownloadReqError = xerror.NewError(30008, "附件下载请求失败") + ErrInsuffientDownloadMoney = xerror.NewError(30009, "附件下载失败:账户资金不足") + ErrDownloadExecFail = xerror.NewError(30010, "附件下载失败:扣费失败") + ErrStickPostFailed = xerror.NewError(30011, "动态置顶失败") + ErrVisblePostFailed = xerror.NewError(30012, "更新可见性失败") - _errGetCommentsFailed = xerror.NewError(40001, "获取评论列表失败") - _errCreateCommentFailed = xerror.NewError(40002, "评论发布失败") - _errGetCommentFailed = xerror.NewError(40003, "获取评论详情失败") - _errDeleteCommentFailed = xerror.NewError(40004, "评论删除失败") - _errCreateReplyFailed = xerror.NewError(40005, "评论回复失败") - _errGetReplyFailed = xerror.NewError(40006, "获取评论详情失败") - _errMaxCommentCount = xerror.NewError(40007, "评论数已达最大限制") - _errGetCommentThumbs = xerror.NewError(40008, "获取评论点赞信息失败") + ErrGetCommentsFailed = xerror.NewError(40001, "获取评论列表失败") + ErrCreateCommentFailed = xerror.NewError(40002, "评论发布失败") + ErrGetCommentFailed = xerror.NewError(40003, "获取评论详情失败") + ErrDeleteCommentFailed = xerror.NewError(40004, "评论删除失败") + ErrCreateReplyFailed = xerror.NewError(40005, "评论回复失败") + ErrGetReplyFailed = xerror.NewError(40006, "获取评论详情失败") + ErrMaxCommentCount = xerror.NewError(40007, "评论数已达最大限制") + ErrGetCommentThumbs = xerror.NewError(40008, "获取评论点赞信息失败") - _errGetMessagesFailed = xerror.NewError(50001, "获取消息列表失败") - _errReadMessageFailed = xerror.NewError(50002, "标记消息已读失败") - _errSendWhisperFailed = xerror.NewError(50003, "私信发送失败") - _errNoWhisperToSelf = xerror.NewError(50004, "不允许给自己发送私信") - _errTooManyWhisperNum = xerror.NewError(50005, "今日私信次数已达上限") + ErrGetMessagesFailed = xerror.NewError(50001, "获取消息列表失败") + ErrReadMessageFailed = xerror.NewError(50002, "标记消息已读失败") + ErrSendWhisperFailed = xerror.NewError(50003, "私信发送失败") + ErrNoWhisperToSelf = xerror.NewError(50004, "不允许给自己发送私信") + ErrTooManyWhisperNum = xerror.NewError(50005, "今日私信次数已达上限") - _errGetCollectionsFailed = xerror.NewError(60001, "获取收藏列表失败") - _errGetStarsFailed = xerror.NewError(60002, "获取点赞列表失败") + ErrGetCollectionsFailed = xerror.NewError(60001, "获取收藏列表失败") + ErrGetStarsFailed = xerror.NewError(60002, "获取点赞列表失败") - _errRechargeReqFail = xerror.NewError(70001, "充值请求失败") - _errRechargeNotifyError = xerror.NewError(70002, "充值回调失败") - _errGetRechargeFailed = xerror.NewError(70003, "充值详情获取失败") - _errUserWalletBillsFailed = xerror.NewError(70004, "用户钱包账单获取失败") + ErrRechargeReqFail = xerror.NewError(70001, "充值请求失败") + ErrRechargeNotifyError = xerror.NewError(70002, "充值回调失败") + ErrGetRechargeFailed = xerror.NewError(70003, "充值详情获取失败") + ErrUserWalletBillsFailed = xerror.NewError(70004, "用户钱包账单获取失败") - _errNoRequestingFriendToSelf = xerror.NewError(80001, "不允许添加自己为好友") - _errNotExistFriendId = xerror.NewError(80002, "好友id不存在") - _errSendRequestingFriendFailed = xerror.NewError(80003, "申请添加朋友请求发送失败") - _errAddFriendFailed = xerror.NewError(80004, "添加好友失败") - _errRejectFriendFailed = xerror.NewError(80005, "拒绝好友失败") - _errDeleteFriendFailed = xerror.NewError(80006, "删除好友失败") - _errGetContactsFailed = xerror.NewError(80007, "获取联系人列表失败") - _errNoActionToSelf = xerror.NewError(80008, "不允许对自己操作") + ErrNoRequestingFriendToSelf = xerror.NewError(80001, "不允许添加自己为好友") + ErrNotExistFriendId = xerror.NewError(80002, "好友id不存在") + ErrSendRequestingFriendFailed = xerror.NewError(80003, "申请添加朋友请求发送失败") + ErrAddFriendFailed = xerror.NewError(80004, "添加好友失败") + ErrRejectFriendFailed = xerror.NewError(80005, "拒绝好友失败") + ErrDeleteFriendFailed = xerror.NewError(80006, "删除好友失败") + ErrGetContactsFailed = xerror.NewError(80007, "获取联系人列表失败") + ErrNoActionToSelf = xerror.NewError(80008, "不允许对自己操作") - _errFollowTopicFailed = xerror.NewError(90001, "关注话题失败") - _errUnfollowTopicFailed = xerror.NewError(90002, "取消关注话题失败") - _errStickTopicFailed = xerror.NewError(90003, "更行话题置顶状态失败") - _errThumbsUpTweetComment = xerror.NewError(90101, "评论点赞失败") - _errThumbsDownTweetComment = xerror.NewError(90102, "评论点踩失败") - _errThumbsUpTweetReply = xerror.NewError(90103, "评论回复点赞失败") - _errThumbsDownTweetReply = xerror.NewError(90104, "评论回复点踩失败") + ErrFollowTopicFailed = xerror.NewError(90001, "关注话题失败") + ErrUnfollowTopicFailed = xerror.NewError(90002, "取消关注话题失败") + ErrStickTopicFailed = xerror.NewError(90003, "更行话题置顶状态失败") + ErrThumbsUpTweetComment = xerror.NewError(90101, "评论点赞失败") + ErrThumbsDownTweetComment = xerror.NewError(90102, "评论点踩失败") + ErrThumbsUpTweetReply = xerror.NewError(90103, "评论回复点赞失败") + ErrThumbsDownTweetReply = xerror.NewError(90104, "评论回复点踩失败") - _errFileUploadFailed = xerror.NewError(10200, "文件上传失败") - _errFileInvalidExt = xerror.NewError(10201, "文件类型不合法") - _errFileInvalidSize = xerror.NewError(10202, "文件大小超限") + ErrFileUploadFailed = xerror.NewError(10200, "文件上传失败") + ErrFileInvalidExt = xerror.NewError(10201, "文件类型不合法") + ErrFileInvalidSize = xerror.NewError(10202, "文件大小超限") ) diff --git a/internal/servants/web/admin.go b/internal/servants/web/admin.go index 27d7f5c1..1d8241e6 100644 --- a/internal/servants/web/admin.go +++ b/internal/servants/web/admin.go @@ -30,7 +30,7 @@ func (s *adminSrv) Chain() gin.HandlersChain { func (s *adminSrv) ChangeUserStatus(req *web.ChangeUserStatusReq) mir.Error { user, err := s.Ds.GetUserByID(req.ID) if err != nil || user.Model == nil || user.ID <= 0 { - return _errNoExistUsername + return web.ErrNoExistUsername } // 执行更新 user.Status = req.Status diff --git a/internal/servants/web/alipay.go b/internal/servants/web/alipay.go index dc8f4a84..9c7c11c5 100644 --- a/internal/servants/web/alipay.go +++ b/internal/servants/web/alipay.go @@ -40,7 +40,7 @@ func (s *alipayPubSrv) AlipayNotify(req *web.AlipayNotifyReq) mir.Error { recharge, err := s.Ds.GetRechargeByID(req.ID) if err != nil { logrus.Errorf("GetRechargeByID id:%d err: %s", req.ID, err) - return _errRechargeNotifyError + return web.ErrRechargeNotifyError } if recharge.TradeStatus != "TRADE_SUCCESS" { // 标记为已付款 @@ -48,7 +48,7 @@ func (s *alipayPubSrv) AlipayNotify(req *web.AlipayNotifyReq) mir.Error { defer s.Redis.DelRechargeStatus(req.Ctx, req.TradeNo) if err != nil { logrus.Errorf("HandleRechargeSuccess id:%d err: %s", req.ID, err) - return _errRechargeNotifyError + return web.ErrRechargeNotifyError } } } @@ -64,12 +64,12 @@ func (s *alipayPrivSrv) UserWalletBills(req *web.UserWalletBillsReq) (*web.UserW bills, err := s.Ds.GetUserWalletBills(req.UserId, (req.Page-1)*req.PageSize, req.PageSize) if err != nil { logrus.Errorf("GetUserWalletBills err: %s", err) - return nil, _errUserWalletBillsFailed + return nil, web.ErrUserWalletBillsFailed } totalRows, err := s.Ds.GetUserWalletBillCount(req.UserId) if err != nil { logrus.Errorf("GetUserWalletBillCount err: %s", err) - return nil, _errUserWalletBillsFailed + return nil, web.ErrUserWalletBillsFailed } resp := base.PageRespFrom(bills, req.Page, req.PageSize, totalRows) return (*web.UserWalletBillsResp)(resp), nil @@ -79,7 +79,7 @@ func (s *alipayPrivSrv) UserRechargeLink(req *web.UserRechargeLinkReq) (*web.Use recharge, err := s.Ds.CreateRecharge(req.User.ID, req.Amount) if err != nil { logrus.Errorf("Ds.CreateRecharge err: %v", err) - return nil, _errRechargeReqFail + return nil, web.ErrRechargeReqFail } p := alipay.TradePreCreate{} p.OutTradeNo = fmt.Sprintf("%d", recharge.ID) @@ -89,10 +89,10 @@ func (s *alipayPrivSrv) UserRechargeLink(req *web.UserRechargeLinkReq) (*web.Use rsp, err := s.alipayClient.TradePreCreate(p) if err != nil { logrus.Errorf("client.TradePreCreate err: %v\n", err) - return nil, _errRechargeReqFail + return nil, web.ErrRechargeReqFail } if rsp.Content.Code != alipay.CodeSuccess { - return nil, _errRechargeReqFail + return nil, web.ErrRechargeReqFail } return &web.UserRechargeLinkResp{ Id: recharge.ID, @@ -104,11 +104,11 @@ func (s *alipayPrivSrv) UserRechargeResult(req *web.UserRechargeResultReq) (*web recharge, err := s.Ds.GetRechargeByID(req.Id) if err != nil { logrus.Errorf("Ds.GetRechargeByID err: %v", err) - return nil, _errGetRechargeFailed + return nil, web.ErrGetRechargeFailed } if recharge.UserID != req.UserId { logrus.Errorf("Ds.GetRechargeByID userId not equel recharge.UserID: %d req.UserId %d", recharge.UserID, req.UserId) - return nil, _errGetRechargeFailed + return nil, web.ErrGetRechargeFailed } return &web.UserRechargeResultResp{ Id: recharge.ID, diff --git a/internal/servants/web/core.go b/internal/servants/web/core.go index 637108b8..9bf791c1 100644 --- a/internal/servants/web/core.go +++ b/internal/servants/web/core.go @@ -122,7 +122,7 @@ func (s *coreSrv) GetMessages(req *web.GetMessagesReq) (*web.GetMessagesResp, mi } if err != nil { logrus.Errorf("Ds.GetMessages err: %v\n", err) - return nil, _errGetMessagesFailed + return nil, web.ErrGetMessagesFailed } totalRows, _ := s.Ds.GetMessageCount(conditions) resp := base.PageRespFrom(messages, req.Page, req.PageSize, totalRows) @@ -132,14 +132,14 @@ func (s *coreSrv) GetMessages(req *web.GetMessagesReq) (*web.GetMessagesResp, mi func (s *coreSrv) ReadMessage(req *web.ReadMessageReq) mir.Error { message, err := s.Ds.GetMessageByID(req.ID) if err != nil { - return _errReadMessageFailed + return web.ErrReadMessageFailed } if message.ReceiverUserID != req.Uid { - return _errNoPermission + return web.ErrNoPermission } if err = s.Ds.ReadMessage(message); err != nil { logrus.Errorf("Ds.ReadMessage err: %s", err) - return _errReadMessageFailed + return web.ErrReadMessageFailed } return nil } @@ -147,13 +147,13 @@ func (s *coreSrv) ReadMessage(req *web.ReadMessageReq) mir.Error { func (s *coreSrv) SendUserWhisper(req *web.SendWhisperReq) mir.Error { // 不允许发送私信给自己 if req.Uid == req.UserID { - return _errNoWhisperToSelf + return web.ErrNoWhisperToSelf } // 今日频次限制 ctx := context.Background() if count, _ := s.Redis.GetCountWhisper(ctx, req.Uid); count >= _MaxWhisperNumDaily { - return _errTooManyWhisperNum + return web.ErrTooManyWhisperNum } // 创建私信 @@ -166,7 +166,7 @@ func (s *coreSrv) SendUserWhisper(req *web.SendWhisperReq) mir.Error { }) if err != nil { logrus.Errorf("Ds.CreateWhisper err: %s", err) - return _errSendWhisperFailed + return web.ErrSendWhisperFailed } // 写入当日(自然日)计数缓存 @@ -179,12 +179,12 @@ func (s *coreSrv) GetCollections(req *web.GetCollectionsReq) (*web.GetCollection collections, err := s.Ds.GetUserPostCollections(req.UserId, (req.Page-1)*req.PageSize, req.PageSize) if err != nil { logrus.Errorf("Ds.GetUserPostCollections err: %s", err) - return nil, _errGetCollectionsFailed + return nil, web.ErrGetCollectionsFailed } totalRows, err := s.Ds.GetUserPostCollectionCount(req.UserId) if err != nil { logrus.Errorf("Ds.GetUserPostCollectionCount err: %s", err) - return nil, _errGetCollectionsFailed + return nil, web.ErrGetCollectionsFailed } var posts []*core.Post @@ -194,7 +194,7 @@ func (s *coreSrv) GetCollections(req *web.GetCollectionsReq) (*web.GetCollection postsFormated, err := s.Ds.MergePosts(posts) if err != nil { logrus.Errorf("Ds.MergePosts err: %s", err) - return nil, _errGetCollectionsFailed + return nil, web.ErrGetCollectionsFailed } resp := base.PageRespFrom(postsFormated, req.Page, req.PageSize, totalRows) @@ -205,23 +205,23 @@ func (s *coreSrv) UserPhoneBind(req *web.UserPhoneBindReq) mir.Error { // 手机重复性检查 u, err := s.Ds.GetUserByPhone(req.Phone) if err == nil && u.Model != nil && u.ID != 0 && u.ID != req.User.ID { - return _errExistedUserPhone + return web.ErrExistedUserPhone } // 如果禁止phone verify 则允许通过任意验证码 if _enablePhoneVerify { c, err := s.Ds.GetLatestPhoneCaptcha(req.Phone) if err != nil { - return _errErrorPhoneCaptcha + return web.ErrErrorPhoneCaptcha } if c.Captcha != req.Captcha { - return _errErrorPhoneCaptcha + return web.ErrErrorPhoneCaptcha } if c.ExpiredOn < time.Now().Unix() { - return _errErrorPhoneCaptcha + return web.ErrErrorPhoneCaptcha } if c.UseTimes >= _MaxCaptchaTimes { - return _errMaxPhoneCaptchaUseTimes + return web.ErrMaxPhoneCaptchaUseTimes } // 更新检测次数 s.Ds.UsePhoneCaptcha(c) @@ -242,12 +242,12 @@ func (s *coreSrv) GetStars(req *web.GetStarsReq) (*web.GetStarsResp, mir.Error) stars, err := s.Ds.GetUserPostStars(req.UserId, (req.Page-1)*req.PageSize, req.PageSize) if err != nil { logrus.Errorf("Ds.GetUserPostStars err: %s", err) - return nil, _errGetStarsFailed + return nil, web.ErrGetStarsFailed } totalRows, err := s.Ds.GetUserPostStarCount(req.UserId) if err != nil { logrus.Errorf("Ds.GetUserPostStars err: %s", err) - return nil, _errGetStarsFailed + return nil, web.ErrGetStarsFailed } var posts []*core.Post @@ -257,7 +257,7 @@ func (s *coreSrv) GetStars(req *web.GetStarsReq) (*web.GetStarsResp, mir.Error) postsFormated, err := s.Ds.MergePosts(posts) if err != nil { logrus.Errorf("Ds.MergePosts err: %s", err) - return nil, _errGetStarsFailed + return nil, web.ErrGetStarsFailed } resp := base.PageRespFrom(postsFormated, req.Page, req.PageSize, totalRows) @@ -272,7 +272,7 @@ func (s *coreSrv) ChangePassword(req *web.ChangePasswordReq) mir.Error { // 旧密码校验 user := req.User if !validPassword(user.Password, req.OldPassword, req.User.Salt) { - return _errErrorOldPassword + return web.ErrErrorOldPassword } // 更新入库 user.Password, user.Salt = encryptPasswordAndSalt(req.Password) @@ -311,7 +311,7 @@ func (s *coreSrv) SuggestUsers(req *web.SuggestUsersReq) (*web.SuggestUsersResp, func (s *coreSrv) ChangeNickname(req *web.ChangeNicknameReq) mir.Error { if utf8.RuneCountInString(req.Nickname) < 2 || utf8.RuneCountInString(req.Nickname) > 12 { - return _errNicknameLengthLimit + return web.ErrNicknameLengthLimit } user := req.User user.Nickname = req.Nickname diff --git a/internal/servants/web/friendship.go b/internal/servants/web/friendship.go index afe0dcf2..4a419666 100644 --- a/internal/servants/web/friendship.go +++ b/internal/servants/web/friendship.go @@ -35,7 +35,7 @@ func (s *friendshipSrv) GetContacts(req *web.GetContactsReq) (*web.GetContactsRe res, err := s.Ds.GetContacts(req.User.ID, (req.Page-1)*req.PageSize, req.PageSize) if err != nil { logrus.Errorf("service.GetContacts err: %s", err) - return nil, _errGetContactsFailed + return nil, web.ErrGetContactsFailed } resp := base.PageRespFrom(res.Contacts, req.Page, req.PageSize, res.Total) return (*web.GetContactsResp)(resp), nil @@ -46,14 +46,14 @@ func (s *friendshipSrv) DeleteFriend(req *web.DeleteFriendReq) mir.Error { return xerror.ServerError } if req.User != nil && req.User.ID == req.UserId { - return _errNoActionToSelf + return web.ErrNoActionToSelf } if _, err := s.Ds.GetUserByID(req.UserId); err != nil { - return _errNotExistFriendId + return web.ErrNotExistFriendId } if err := s.Ds.DeleteFriend(req.User.ID, req.UserId); err != nil { logrus.Errorf("Ds.DeleteFriend err: %s", err) - return _errDeleteFriendFailed + return web.ErrDeleteFriendFailed } return nil } @@ -63,14 +63,14 @@ func (s *friendshipSrv) RejectFriend(req *web.RejectFriendReq) mir.Error { return xerror.ServerError } if req.User.ID == req.UserId { - return _errNoActionToSelf + return web.ErrNoActionToSelf } if _, err := s.Ds.GetUserByID(req.UserId); err != nil { - return _errNotExistFriendId + return web.ErrNotExistFriendId } if err := s.Ds.RejectFriend(req.User.ID, req.UserId); err != nil { logrus.Errorf("Ds.RejectFriend err: %s", err) - return _errRejectFriendFailed + return web.ErrRejectFriendFailed } return nil } @@ -80,14 +80,14 @@ func (s *friendshipSrv) AddFriend(req *web.AddFriendReq) mir.Error { return xerror.ServerError } if req.User.ID == req.UserId { - return _errNoActionToSelf + return web.ErrNoActionToSelf } if _, err := s.Ds.GetUserByID(req.UserId); err != nil { - return _errNotExistFriendId + return web.ErrNotExistFriendId } if err := s.Ds.AddFriend(req.User.ID, req.UserId); err != nil { logrus.Errorf("Ds.AddFriend err: %s", err) - return _errAddFriendFailed + return web.ErrAddFriendFailed } return nil } @@ -97,14 +97,14 @@ func (s *friendshipSrv) RequestingFriend(req *web.RequestingFriendReq) mir.Error return xerror.ServerError } if req.User.ID == req.UserId { - return _errNoRequestingFriendToSelf + return web.ErrNoRequestingFriendToSelf } if _, err := s.Ds.GetUserByID(req.UserId); err != nil { - return _errNotExistFriendId + return web.ErrNotExistFriendId } if err := s.Ds.RequestingFriend(req.User.ID, req.UserId, req.Greetings); err != nil { logrus.Errorf("Ds.RequestingFriend err: %s", err) - return _errSendRequestingFriendFailed + return web.ErrSendRequestingFriendFailed } return nil } diff --git a/internal/servants/web/loose.go b/internal/servants/web/loose.go index 2a6c50c7..97b9cabc 100644 --- a/internal/servants/web/loose.go +++ b/internal/servants/web/loose.go @@ -37,7 +37,7 @@ func (s *looseSrv) Timeline(req *web.TimelineReq) (*web.TimelineResp, mir.Error) res, err := s.Ds.IndexPosts(req.User, offset, limit) if err != nil { logrus.Errorf("Ds.IndexPosts err: %s", err) - return nil, _errGetPostsFailed + return nil, web.ErrGetPostsFailed } resp = base.PageRespFrom(res.Tweets, req.Page, req.PageSize, res.Total) } else { @@ -48,12 +48,12 @@ func (s *looseSrv) Timeline(req *web.TimelineReq) (*web.TimelineResp, mir.Error) res, err := s.Ts.Search(req.User, q, offset, limit) if err != nil { logrus.Errorf("Ts.Search err: %s", err) - return nil, _errGetPostsFailed + return nil, web.ErrGetPostsFailed } posts, err := s.Ds.RevampPosts(res.Items) if err != nil { logrus.Errorf("Ds.RevampPosts err: %s", err) - return nil, _errGetPostsFailed + return nil, web.ErrGetPostsFailed } resp = base.PageRespFrom(posts, req.Page, req.PageSize, res.Total) } @@ -85,12 +85,12 @@ func (s *looseSrv) GetUserTweets(req *web.GetUserTweetsReq) (*web.GetUserTweetsR _, posts, err := s.GetTweetList(conditions, (req.Page-1)*req.PageSize, req.PageSize) if err != nil { logrus.Errorf("s.GetTweetList err: %s", err) - return nil, _errGetPostsFailed + return nil, web.ErrGetPostsFailed } totalRows, err := s.Ds.GetPostCount(conditions) if err != nil { logrus.Errorf("s.GetPostCount err: %s", err) - return nil, _errGetPostsFailed + return nil, web.ErrGetPostsFailed } resp := base.PageRespFrom(posts, req.Page, req.PageSize, totalRows) @@ -101,10 +101,10 @@ func (s *looseSrv) GetUserProfile(req *web.GetUserProfileReq) (*web.GetUserProfi he, err := s.Ds.GetUserByUsername(req.Username) if err != nil { logrus.Errorf("Ds.GetUserByUsername err: %s", err) - return nil, _errNoExistUsername + return nil, web.ErrNoExistUsername } if he.Model == nil && he.ID <= 0 { - return nil, _errNoExistUsername + return nil, web.ErrNoExistUsername } // 设定自己不是自己的朋友 isFriend := !(req.User == nil || req.User.ID == he.ID) @@ -146,10 +146,10 @@ func (s *looseSrv) TopicList(req *web.TopicListReq) (*web.TopicListResp, mir.Err } default: // TODO: return good error - err = _errGetPostTagsFailed + err = web.ErrGetPostTagsFailed } if err != nil { - return nil, _errGetPostTagsFailed + return nil, web.ErrGetPostTagsFailed } return &web.TopicListResp{ Topics: tags, @@ -169,7 +169,7 @@ func (s *looseSrv) TweetComments(req *web.TweetCommentsReq) (*web.TweetCommentsR comments, err := s.Ds.GetComments(conditions, (req.Page-1)*req.PageSize, req.PageSize) if err != nil { - return nil, _errGetCommentsFailed + return nil, web.ErrGetCommentsFailed } userIDs := []int64{} @@ -181,24 +181,24 @@ func (s *looseSrv) TweetComments(req *web.TweetCommentsReq) (*web.TweetCommentsR users, err := s.Ds.GetUsersByIDs(userIDs) if err != nil { - return nil, _errGetCommentsFailed + return nil, web.ErrGetCommentsFailed } contents, err := s.Ds.GetCommentContentsByIDs(commentIDs) if err != nil { - return nil, _errGetCommentsFailed + return nil, web.ErrGetCommentsFailed } replies, err := s.Ds.GetCommentRepliesByID(commentIDs) if err != nil { - return nil, _errGetCommentsFailed + return nil, web.ErrGetCommentsFailed } var commentThumbs, replyThumbs cs.CommentThumbsMap if req.Uid > 0 { commentThumbs, replyThumbs, err = s.Ds.GetCommentThumbsMap(req.Uid, req.TweetId) if err != nil { - return nil, _errGetCommentsFailed + return nil, web.ErrGetCommentsFailed } } diff --git a/internal/servants/web/priv.go b/internal/servants/web/priv.go index 97117749..aae8f2c9 100644 --- a/internal/servants/web/priv.go +++ b/internal/servants/web/priv.go @@ -49,7 +49,7 @@ func (s *privSrv) Chain() gin.HandlersChain { func (s *privSrv) ThumbsDownTweetReply(req *web.TweetReplyThumbsReq) mir.Error { if err := s.Ds.ThumbsDownReply(req.Uid, req.TweetId, req.CommentId, req.ReplyId); err != nil { logrus.Errorf("thumbs down tweet reply error: %s req:%v", err, req) - return _errThumbsDownTweetReply + return web.ErrThumbsDownTweetReply } return nil } @@ -57,7 +57,7 @@ func (s *privSrv) ThumbsDownTweetReply(req *web.TweetReplyThumbsReq) mir.Error { func (s *privSrv) ThumbsUpTweetReply(req *web.TweetReplyThumbsReq) mir.Error { if err := s.Ds.ThumbsUpReply(req.Uid, req.TweetId, req.CommentId, req.ReplyId); err != nil { logrus.Errorf("thumbs up tweet reply error: %s req:%v", err, req) - return _errThumbsUpTweetReply + return web.ErrThumbsUpTweetReply } return nil } @@ -65,7 +65,7 @@ func (s *privSrv) ThumbsUpTweetReply(req *web.TweetReplyThumbsReq) mir.Error { func (s *privSrv) ThumbsDownTweetComment(req *web.TweetCommentThumbsReq) mir.Error { if err := s.Ds.ThumbsDownComment(req.Uid, req.TweetId, req.CommentId); err != nil { logrus.Errorf("thumbs down tweet comment error: %s req:%v", err, req) - return _errThumbsDownTweetComment + return web.ErrThumbsDownTweetComment } return nil } @@ -73,7 +73,7 @@ func (s *privSrv) ThumbsDownTweetComment(req *web.TweetCommentThumbsReq) mir.Err func (s *privSrv) ThumbsUpTweetComment(req *web.TweetCommentThumbsReq) mir.Error { if err := s.Ds.ThumbsUpComment(req.Uid, req.TweetId, req.CommentId); err != nil { logrus.Errorf("thumbs up tweet comment error: %s req:%v", err, req) - return _errThumbsUpTweetComment + return web.ErrThumbsUpTweetComment } return nil } @@ -81,7 +81,7 @@ func (s *privSrv) ThumbsUpTweetComment(req *web.TweetCommentThumbsReq) mir.Error func (s *privSrv) UnfollowTopic(req *web.UnfollowTopicReq) mir.Error { if err := s.Ds.UnfollowTopic(req.Uid, req.TopicId); err != nil { logrus.Errorf("user(%d) unfollow topic(%d) failed: %s", req.Uid, req.TopicId, err) - return _errUnfollowTopicFailed + return web.ErrUnfollowTopicFailed } return nil } @@ -89,7 +89,7 @@ func (s *privSrv) UnfollowTopic(req *web.UnfollowTopicReq) mir.Error { func (s *privSrv) FollowTopic(req *web.FollowTopicReq) mir.Error { if err := s.Ds.FollowTopic(req.Uid, req.TopicId); err != nil { logrus.Errorf("user(%d) follow topic(%d) failed: %s", req.Uid, req.TopicId, err) - return _errFollowTopicFailed + return web.ErrFollowTopicFailed } return nil } @@ -98,7 +98,7 @@ func (s *privSrv) StickTopic(req *web.StickTopicReq) (*web.StickTopicResp, mir.E status, err := s.Ds.StickTopic(req.Uid, req.TopicId) if err != nil { logrus.Errorf("user(%d) stick topic(%d) failed: %s", req.Uid, req.TopicId, err) - return nil, _errStickTopicFailed + return nil, web.ErrStickTopicFailed } return &web.StickTopicResp{ StickStatus: status, @@ -114,7 +114,7 @@ func (s *privSrv) UploadAttachment(req *web.UploadAttachmentReq) (*web.UploadAtt objectUrl, err := s.oss.PutObject(ossSavePath, req.File, req.FileSize, req.ContentType, false) if err != nil { logrus.Errorf("oss.putObject err: %s", err) - return nil, _errFileUploadFailed + return nil, web.ErrFileUploadFailed } // 构造附件Model @@ -134,7 +134,7 @@ func (s *privSrv) UploadAttachment(req *web.UploadAttachmentReq) (*web.UploadAtt attachment, err = s.Ds.CreateAttachment(attachment) if err != nil { logrus.Errorf("Ds.CreateAttachment err: %s", err) - return nil, _errFileUploadFailed + return nil, web.ErrFileUploadFailed } return &web.UploadAttachmentResp{ @@ -151,14 +151,14 @@ func (s *privSrv) DownloadAttachmentPrecheck(req *web.DownloadAttachmentPrecheck content, err := s.Ds.GetPostContentByID(req.ContentID) if err != nil { logrus.Errorf("Ds.GetPostContentByID err: %s", err) - return nil, _errInvalidDownloadReq + return nil, web.ErrInvalidDownloadReq } resp := &web.DownloadAttachmentPrecheckResp{Paid: true} if content.Type == core.ContentTypeChargeAttachment { tweet, err := s.GetTweetBy(content.PostID) if err != nil { logrus.Errorf("get tweet err: %v", err) - return nil, _errInvalidDownloadReq + return nil, web.ErrInvalidDownloadReq } // 发布者或管理员免费下载 if tweet.UserID == req.User.ID || req.User.IsAdmin { @@ -174,7 +174,7 @@ func (s *privSrv) DownloadAttachment(req *web.DownloadAttachmentReq) (*web.Downl content, err := s.Ds.GetPostContentByID(req.ContentID) if err != nil { logrus.Errorf("s.GetPostContentByID err: %v", err) - return nil, _errInvalidDownloadReq + return nil, web.ErrInvalidDownloadReq } // 收费附件 if content.Type == core.ContentTypeChargeAttachment { @@ -207,7 +207,7 @@ func (s *privSrv) DownloadAttachment(req *web.DownloadAttachmentReq) (*web.Downl signedURL, err := s.oss.SignURL(objectKey, 60) if err != nil { logrus.Errorf("client.SignURL err: %v", err) - return nil, _errDownloadReqError + return nil, web.ErrDownloadReqError } return &web.DownloadAttachmentResp{ SignedURL: signedURL, @@ -224,7 +224,7 @@ func (s *privSrv) CreateTweet(req *web.CreateTweetReq) (_ *web.CreateTweetResp, contents, err := persistMediaContents(s.oss, req.Contents) if err != nil { - return nil, _errCreatePostFailed + return nil, web.ErrCreatePostFailed } mediaContents = contents tags := tagsFrom(req.Tags) @@ -239,7 +239,7 @@ func (s *privSrv) CreateTweet(req *web.CreateTweetReq) (_ *web.CreateTweetResp, post, err = s.Ds.CreatePost(post) if err != nil { logrus.Errorf("Ds.CreatePost err: %s", err) - return nil, _errCreatePostFailed + return nil, web.ErrCreatePostFailed } // 创建推文内容 @@ -261,7 +261,7 @@ func (s *privSrv) CreateTweet(req *web.CreateTweetReq) (_ *web.CreateTweetResp, } if _, err = s.Ds.CreatePostContent(postContent); err != nil { logrus.Infof("Ds.CreatePostContent err: %s", err) - return nil, _errCreateCommentFailed + return nil, web.ErrCreateCommentFailed } } @@ -299,27 +299,27 @@ func (s *privSrv) CreateTweet(req *web.CreateTweetReq) (_ *web.CreateTweetResp, formatedPosts, err := s.Ds.RevampPosts([]*core.PostFormated{post.Format()}) if err != nil { logrus.Infof("Ds.RevampPosts err: %s", err) - return nil, _errCreatePostFailed + return nil, web.ErrCreatePostFailed } return (*web.CreateTweetResp)(formatedPosts[0]), nil } func (s *privSrv) DeleteTweet(req *web.DeleteTweetReq) mir.Error { if req.User == nil { - return _errNoPermission + return web.ErrNoPermission } post, err := s.Ds.GetPostByID(req.ID) if err != nil { logrus.Errorf("Ds.GetPostByID err: %s", err) - return _errGetPostFailed + return web.ErrGetPostFailed } if post.UserID != req.User.ID && !req.User.IsAdmin { - return _errNoPermission + return web.ErrNoPermission } mediaContents, err := s.Ds.DeletePost(post) if err != nil { logrus.Errorf("Ds.DeletePost delete post failed: %s", err) - return _errDeletePostFailed + return web.ErrDeletePostFailed } // 删除推文的媒体内容 deleteOssObjects(s.oss, mediaContents) @@ -327,7 +327,7 @@ func (s *privSrv) DeleteTweet(req *web.DeleteTweetReq) mir.Error { s.DeleteSearchPost(post) if err != nil { logrus.Errorf("s.DeleteSearchPost failed: %s", err) - return _errDeletePostFailed + return web.ErrDeletePostFailed } return nil } @@ -336,16 +336,16 @@ func (s *privSrv) DeleteCommentReply(req *web.DeleteCommentReplyReq) mir.Error { reply, err := s.Ds.GetCommentReplyByID(req.ID) if err != nil { logrus.Errorf("Ds.GetCommentReplyByID err: %s", err) - return _errGetReplyFailed + return web.ErrGetReplyFailed } if req.User.ID != reply.UserID && !req.User.IsAdmin { - return _errNoPermission + return web.ErrNoPermission } // 执行删除 err = s.deletePostCommentReply(reply) if err != nil { logrus.Errorf("s.deletePostCommentReply err: %s", err) - return _errDeleteCommentFailed + return web.ErrDeleteCommentFailed } return nil } @@ -359,7 +359,7 @@ func (s *privSrv) CreateCommentReply(req *web.CreateCommentReplyReq) (*web.Creat ) if post, comment, atUserID, err = s.createPostPreHandler(req.CommentID, req.Uid, req.AtUserID); err != nil { - return nil, _errCreateReplyFailed + return nil, web.ErrCreateReplyFailed } // 创建评论 @@ -374,7 +374,7 @@ func (s *privSrv) CreateCommentReply(req *web.CreateCommentReplyReq) (*web.Creat reply, err = s.Ds.CreateCommentReply(reply) if err != nil { - return nil, _errCreateReplyFailed + return nil, web.ErrCreateReplyFailed } // 更新Post回复数 @@ -432,26 +432,26 @@ func (s *privSrv) DeleteComment(req *web.DeleteCommentReq) mir.Error { comment, err := s.Ds.GetCommentByID(req.ID) if err != nil { logrus.Errorf("Ds.GetCommentByID err: %v\n", err) - return _errGetCommentFailed + return web.ErrGetCommentFailed } if req.User.ID != comment.UserID && !req.User.IsAdmin { - return _errNoPermission + return web.ErrNoPermission } // 加载post post, err := s.Ds.GetPostByID(comment.PostID) if err != nil { - return _errDeleteCommentFailed + return web.ErrDeleteCommentFailed } // 更新post回复数 post.CommentCount-- if err := s.Ds.UpdatePost(post); err != nil { logrus.Errorf("Ds.UpdatePost err: %s", err) - return _errDeleteCommentFailed + return web.ErrDeleteCommentFailed } // TODO: 优化删除逻辑,事务化删除comment if err := s.Ds.DeleteComment(comment); err != nil { logrus.Errorf("Ds.DeleteComment err: %s", err) - return _errDeleteCommentFailed + return web.ErrDeleteCommentFailed } return nil } @@ -478,7 +478,7 @@ func (s *privSrv) CreateComment(req *web.CreateCommentReq) (_ *web.CreateComment return nil, xerror.ServerError } if post.CommentCount >= conf.AppSetting.MaxCommentCount { - return nil, _errMaxCommentCount + return nil, web.ErrMaxCommentCount } comment := &core.Comment{ PostID: post.ID, @@ -489,7 +489,7 @@ func (s *privSrv) CreateComment(req *web.CreateCommentReq) (_ *web.CreateComment comment, err = s.Ds.CreateComment(comment) if err != nil { logrus.Errorf("Ds.CreateComment err:%s", err) - return nil, _errCreateCommentFailed + return nil, web.ErrCreateCommentFailed } for _, item := range req.Contents { @@ -595,14 +595,14 @@ func (s *privSrv) VisibleTweet(req *web.VisibleTweetReq) (*web.VisibleTweetResp, } post, err := s.Ds.GetPostByID(req.ID) if err != nil { - return nil, _errVisblePostFailed + return nil, web.ErrVisblePostFailed } if xerr := checkPermision(req.User, post.UserID); xerr != nil { return nil, xerr } if err = s.Ds.VisiblePost(post, req.Visibility); err != nil { logrus.Warnf("s.Ds.VisiblePost: %s", err) - return nil, _errVisblePostFailed + return nil, web.ErrVisblePostFailed } // 推送Search @@ -618,14 +618,14 @@ func (s *privSrv) StickTweet(req *web.StickTweetReq) (*web.StickTweetResp, mir.E post, err := s.Ds.GetPostByID(req.ID) if err != nil { logrus.Errorf("Ds.GetPostByID err: %v\n", err) - return nil, _errStickPostFailed + return nil, web.ErrStickPostFailed } if !req.User.IsAdmin { - return nil, _errNoPermission + return nil, web.ErrNoPermission } newStatus := 1 - post.IsTop if err = s.Ds.StickPost(post); err != nil { - return nil, _errStickPostFailed + return nil, web.ErrStickPostFailed } return &web.StickTweetResp{ StickStatus: newStatus, @@ -635,14 +635,14 @@ func (s *privSrv) StickTweet(req *web.StickTweetReq) (*web.StickTweetResp, mir.E func (s *privSrv) LockTweet(req *web.LockTweetReq) (*web.LockTweetResp, mir.Error) { post, err := s.Ds.GetPostByID(req.ID) if err != nil { - return nil, _errLockPostFailed + return nil, web.ErrLockPostFailed } if post.UserID != req.User.ID && !req.User.IsAdmin { - return nil, _errNoPermission + return nil, web.ErrNoPermission } newStatus := 1 - post.IsLock if err := s.Ds.LockPost(post); err != nil { - return nil, _errLockPostFailed + return nil, web.ErrLockPostFailed } return &web.LockTweetResp{ LockStatus: newStatus, @@ -688,7 +688,7 @@ func (s *privSrv) createPostPreHandler(commentID int64, userID, atUserID int64) } if post.CommentCount >= conf.AppSetting.MaxCommentCount { - return nil, nil, atUserID, _errMaxCommentCount + return nil, nil, atUserID, web.ErrMaxCommentCount } if userID == atUserID { @@ -715,7 +715,7 @@ func (s *privSrv) createPostStar(postID, userID int64) (*core.PostStar, mir.Erro // 私密post不可操作 // TODO: 使用统一的permission checker来检查权限问题,这里好友可见post就没处理,是bug if post.Visibility == core.PostVisitPrivate && post.UserID != userID { - return nil, _errNoPermission + return nil, web.ErrNoPermission } star, err := s.Ds.CreatePostStar(postID, userID) @@ -741,7 +741,7 @@ func (s *privSrv) deletePostStar(star *core.PostStar) mir.Error { // 私密post特殊处理 // TODO: 使用统一的permission checker来检查权限问题,这里好友可见post就没处理,是bug if post.Visibility == core.PostVisitPrivate && post.UserID != star.UserID { - return _errNoPermission + return web.ErrNoPermission } if err = s.Ds.DeletePostStar(star); err != nil { @@ -766,7 +766,7 @@ func (s *privSrv) createPostCollection(postID, userID int64) (*core.PostCollecti // 私密post特殊处理 // TODO: 使用统一的permission checker来检查权限问题,这里好友可见post就没处理,是bug if post.Visibility == core.PostVisitPrivate && post.UserID != userID { - return nil, _errNoPermission + return nil, web.ErrNoPermission } collection, err := s.Ds.CreatePostCollection(postID, userID) @@ -792,7 +792,7 @@ func (s *privSrv) deletePostCollection(collection *core.PostCollection) mir.Erro // 私密post特殊处理 // TODO: 使用统一的permission checker来检查权限问题,这里好友可见post就没处理,是bug if post.Visibility == core.PostVisitPrivate && post.UserID != collection.UserID { - return _errNoPermission + return web.ErrNoPermission } if err = s.Ds.DeletePostCollection(collection); err != nil { return xerror.ServerError @@ -814,7 +814,7 @@ func (s *privSrv) checkPostAttachmentIsPaid(postID, userID int64) bool { func (s *privSrv) buyPostAttachment(post *core.Post, user *core.User) mir.Error { if user.Balance < post.AttachmentPrice { - return _errInsuffientDownloadMoney + return web.ErrInsuffientDownloadMoney } // 执行购买 if err := s.Ds.HandlePostAttachmentBought(post, user); err != nil { diff --git a/internal/servants/web/pub.go b/internal/servants/web/pub.go index 6967d3c3..b91851bc 100644 --- a/internal/servants/web/pub.go +++ b/internal/servants/web/pub.go @@ -45,15 +45,15 @@ type pubSrv struct { func (s *pubSrv) TweetDetail(req *web.TweetDetailReq) (*web.TweetDetailResp, mir.Error) { post, err := s.Ds.GetPostByID(req.TweetId) if err != nil { - return nil, _errGetPostFailed + return nil, web.ErrGetPostFailed } postContents, err := s.Ds.GetPostContentsByIDs([]int64{post.ID}) if err != nil { - return nil, _errGetPostFailed + return nil, web.ErrGetPostFailed } users, err := s.Ds.GetUsersByIDs([]int64{post.UserID}) if err != nil { - return nil, _errGetPostFailed + return nil, web.ErrGetPostFailed } // 数据整合 postFormated := post.Format() @@ -74,13 +74,13 @@ func (s *pubSrv) SendCaptcha(req *web.SendCaptchaReq) mir.Error { // 验证图片验证码 if captcha, err := s.Redis.GetImgCaptcha(ctx, req.ImgCaptchaID); err != nil || string(captcha) != req.ImgCaptcha { logrus.Debugf("get captcha err:%s expect:%s got:%s", err, captcha, req.ImgCaptcha) - return _errErrorCaptchaPassword + return web.ErrErrorCaptchaPassword } s.Redis.DelImgCaptcha(ctx, req.ImgCaptchaID) // 今日频次限制 if count, _ := s.Redis.GetCountSmsCaptcha(ctx, req.Phone); count >= _MaxPhoneCaptcha { - return _errTooManyPhoneCaptchaSend + return web.ErrTooManyPhoneCaptchaSend } if err := s.Ds.SendPhoneCaptcha(req.Phone); err != nil { @@ -119,7 +119,7 @@ func (s *pubSrv) GetCaptcha() (*web.GetCaptchaResp, mir.Error) { func (s *pubSrv) Register(req *web.RegisterReq) (*web.RegisterResp, mir.Error) { if _disallowUserRegister { - return nil, _errDisallowUserRegister + return nil, web.ErrDisallowUserRegister } // 用户名检查 if err := s.validUsername(req.Username); err != nil { @@ -128,7 +128,7 @@ func (s *pubSrv) Register(req *web.RegisterReq) (*web.RegisterResp, mir.Error) { // 密码检查 if err := checkPassword(req.Password); err != nil { logrus.Errorf("scheckPassword err: %v", err) - return nil, _errUserRegisterFailed + return nil, web.ErrUserRegisterFailed } password, salt := encryptPasswordAndSalt(req.Password) user := &core.User{ @@ -142,7 +142,7 @@ func (s *pubSrv) Register(req *web.RegisterReq) (*web.RegisterResp, mir.Error) { user, err := s.Ds.CreateUser(user) if err != nil { logrus.Errorf("Ds.CreateUser err: %s", err) - return nil, _errUserRegisterFailed + return nil, web.ErrUserRegisterFailed } return &web.RegisterResp{ UserId: user.ID, @@ -160,12 +160,12 @@ func (s *pubSrv) Login(req *web.LoginReq) (*web.LoginResp, mir.Error) { if user.Model != nil && user.ID > 0 { if count, err := s.Redis.GetCountLoginErr(ctx, user.ID); err == nil && count >= _MaxLoginErrTimes { - return nil, _errTooManyLoginError + return nil, web.ErrTooManyLoginError } // 对比密码是否正确 if validPassword(user.Password, req.Password, user.Salt) { if user.Status == core.UserStatusClosed { - return nil, _errUserHasBeenBanned + return nil, web.ErrUserHasBeenBanned } // 清空登录计数 s.Redis.DelCountLoginErr(ctx, user.ID) @@ -198,17 +198,17 @@ func (s *pubSrv) Version() (*web.VersionResp, mir.Error) { func (s *pubSrv) validUsername(username string) mir.Error { // 检测用户是否合规 if utf8.RuneCountInString(username) < 3 || utf8.RuneCountInString(username) > 12 { - return _errUsernameLengthLimit + return web.ErrUsernameLengthLimit } if !regexp.MustCompile(`^[a-zA-Z0-9]+$`).MatchString(username) { - return _errUsernameCharLimit + return web.ErrUsernameCharLimit } // 重复检查 user, _ := s.Ds.GetUserByUsername(username) if user.Model != nil && user.ID > 0 { - return _errUsernameHasExisted + return web.ErrUsernameHasExisted } return nil } diff --git a/internal/servants/web/utils.go b/internal/servants/web/utils.go index b795d939..8bbfc06e 100644 --- a/internal/servants/web/utils.go +++ b/internal/servants/web/utils.go @@ -82,7 +82,7 @@ func getRandomAvatar() string { func checkPassword(password string) mir.Error { // 检测用户是否合规 if utf8.RuneCountInString(password) < 6 || utf8.RuneCountInString(password) > 16 { - return _errPasswordLengthLimit + return web.ErrPasswordLengthLimit } return nil } @@ -144,7 +144,7 @@ func fileCheck(uploadType string, size int64) mir.Error { return xerror.InvalidParams } if size > 1024*1024*100 { - return _errFileInvalidSize.WithDetails("最大允许100MB") + return web.ErrFileInvalidSize.WithDetails("最大允许100MB") } return nil } @@ -169,7 +169,7 @@ func getFileExt(s string) (string, mir.Error) { "application/x-zip-compressed": return ".zip", nil default: - return "", _errFileInvalidExt.WithDetails("仅允许 png/jpg/gif/mp4/mov/zip 类型") + return "", web.ErrFileInvalidExt.WithDetails("仅允许 png/jpg/gif/mp4/mov/zip 类型") } } @@ -202,7 +202,7 @@ func tagsFrom(originTags []string) []string { // checkPermision 检查是否拥有者或管理员 func checkPermision(user *core.User, targetUserId int64) mir.Error { if user == nil || (user.ID != targetUserId && !user.IsAdmin) { - return _errNoPermission + return web.ErrNoPermission } return nil } diff --git a/internal/servants/web/xerror.go b/internal/servants/web/xerror.go deleted file mode 100644 index aacf9a01..00000000 --- a/internal/servants/web/xerror.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2022 ROC. All rights reserved. -// Use of this source code is governed by a MIT style -// license that can be found in the LICENSE file. - -package web - -import ( - "github.com/rocboss/paopao-ce/pkg/xerror" -) - -// nolint -var ( - _errUsernameHasExisted = xerror.NewError(20001, "用户名已存在") - _errUsernameLengthLimit = xerror.NewError(20002, "用户名长度3~12") - _errUsernameCharLimit = xerror.NewError(20003, "用户名只能包含字母、数字") - _errPasswordLengthLimit = xerror.NewError(20004, "密码长度6~16") - _errUserRegisterFailed = xerror.NewError(20005, "用户注册失败") - _errUserHasBeenBanned = xerror.NewError(20006, "该账户已被封停") - _errNoPermission = xerror.NewError(20007, "无权限执行该请求") - _errUserHasBindOTP = xerror.NewError(20008, "当前用户已绑定二次验证") - _errUserOTPInvalid = xerror.NewError(20009, "二次验证码验证失败") - _errUserNoBindOTP = xerror.NewError(20010, "当前用户未绑定二次验证") - _errErrorOldPassword = xerror.NewError(20011, "当前用户密码验证失败") - _errErrorCaptchaPassword = xerror.NewError(20012, "图形验证码验证失败") - _errAccountNoPhoneBind = xerror.NewError(20013, "拒绝操作: 账户未绑定手机号") - _errTooManyLoginError = xerror.NewError(20014, "登录失败次数过多,请稍后再试") - _errGetPhoneCaptchaError = xerror.NewError(20015, "短信验证码获取失败") - _errTooManyPhoneCaptchaSend = xerror.NewError(20016, "短信验证码获取次数已达今日上限") - _errExistedUserPhone = xerror.NewError(20017, "该手机号已被绑定") - _errErrorPhoneCaptcha = xerror.NewError(20018, "手机验证码不正确") - _errMaxPhoneCaptchaUseTimes = xerror.NewError(20019, "手机验证码已达最大使用次数") - _errNicknameLengthLimit = xerror.NewError(20020, "昵称长度2~12") - _errNoExistUsername = xerror.NewError(20021, "用户不存在") - _errNoAdminPermission = xerror.NewError(20022, "无管理权限") - _errDisallowUserRegister = xerror.NewError(20023, "系统不允许注册用户") - - _errGetPostsFailed = xerror.NewError(30001, "获取动态列表失败") - _errCreatePostFailed = xerror.NewError(30002, "动态发布失败") - _errGetPostFailed = xerror.NewError(30003, "获取动态详情失败") - _errDeletePostFailed = xerror.NewError(30004, "动态删除失败") - _errLockPostFailed = xerror.NewError(30005, "动态锁定失败") - _errGetPostTagsFailed = xerror.NewError(30006, "获取话题列表失败") - _errInvalidDownloadReq = xerror.NewError(30007, "附件下载请求不合法") - _errDownloadReqError = xerror.NewError(30008, "附件下载请求失败") - _errInsuffientDownloadMoney = xerror.NewError(30009, "附件下载失败:账户资金不足") - _errDownloadExecFail = xerror.NewError(30010, "附件下载失败:扣费失败") - _errStickPostFailed = xerror.NewError(30011, "动态置顶失败") - _errVisblePostFailed = xerror.NewError(30012, "更新可见性失败") - - _errGetCommentsFailed = xerror.NewError(40001, "获取评论列表失败") - _errCreateCommentFailed = xerror.NewError(40002, "评论发布失败") - _errGetCommentFailed = xerror.NewError(40003, "获取评论详情失败") - _errDeleteCommentFailed = xerror.NewError(40004, "评论删除失败") - _errCreateReplyFailed = xerror.NewError(40005, "评论回复失败") - _errGetReplyFailed = xerror.NewError(40006, "获取评论详情失败") - _errMaxCommentCount = xerror.NewError(40007, "评论数已达最大限制") - _errGetCommentThumbs = xerror.NewError(40008, "获取评论点赞信息失败") - - _errGetMessagesFailed = xerror.NewError(50001, "获取消息列表失败") - _errReadMessageFailed = xerror.NewError(50002, "标记消息已读失败") - _errSendWhisperFailed = xerror.NewError(50003, "私信发送失败") - _errNoWhisperToSelf = xerror.NewError(50004, "不允许给自己发送私信") - _errTooManyWhisperNum = xerror.NewError(50005, "今日私信次数已达上限") - - _errGetCollectionsFailed = xerror.NewError(60001, "获取收藏列表失败") - _errGetStarsFailed = xerror.NewError(60002, "获取点赞列表失败") - - _errRechargeReqFail = xerror.NewError(70001, "充值请求失败") - _errRechargeNotifyError = xerror.NewError(70002, "充值回调失败") - _errGetRechargeFailed = xerror.NewError(70003, "充值详情获取失败") - _errUserWalletBillsFailed = xerror.NewError(70004, "用户钱包账单获取失败") - - _errNoRequestingFriendToSelf = xerror.NewError(80001, "不允许添加自己为好友") - _errNotExistFriendId = xerror.NewError(80002, "好友id不存在") - _errSendRequestingFriendFailed = xerror.NewError(80003, "申请添加朋友请求发送失败") - _errAddFriendFailed = xerror.NewError(80004, "添加好友失败") - _errRejectFriendFailed = xerror.NewError(80005, "拒绝好友失败") - _errDeleteFriendFailed = xerror.NewError(80006, "删除好友失败") - _errGetContactsFailed = xerror.NewError(80007, "获取联系人列表失败") - _errNoActionToSelf = xerror.NewError(80008, "不允许对自己操作") - - _errFollowTopicFailed = xerror.NewError(90001, "关注话题失败") - _errUnfollowTopicFailed = xerror.NewError(90002, "取消关注话题失败") - _errStickTopicFailed = xerror.NewError(90003, "更行话题置顶状态失败") - _errThumbsUpTweetComment = xerror.NewError(90101, "评论点赞失败") - _errThumbsDownTweetComment = xerror.NewError(90102, "评论点踩失败") - _errThumbsUpTweetReply = xerror.NewError(90103, "评论回复点赞失败") - _errThumbsDownTweetReply = xerror.NewError(90104, "评论回复点踩失败") - - _errFileUploadFailed = xerror.NewError(10200, "文件上传失败") - _errFileInvalidExt = xerror.NewError(10201, "文件类型不合法") - _errFileInvalidSize = xerror.NewError(10202, "文件大小超限") -) From 84085dba5426d0f323c0957537fd109a2bc0a694 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Wed, 28 Jun 2023 02:51:25 +0800 Subject: [PATCH 18/61] reduce unused code --- internal/servants/base/base.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/internal/servants/base/base.go b/internal/servants/base/base.go index a418b052..86e93064 100644 --- a/internal/servants/base/base.go +++ b/internal/servants/base/base.go @@ -20,7 +20,6 @@ import ( "github.com/rocboss/paopao-ce/internal/dao" "github.com/rocboss/paopao-ce/internal/dao/cache" "github.com/rocboss/paopao-ce/pkg/app" - "github.com/rocboss/paopao-ce/pkg/types" "github.com/rocboss/paopao-ce/pkg/xerror" "github.com/sirupsen/logrus" ) @@ -37,10 +36,6 @@ type DaoServant struct { Redis core.RedisCache } -type BaseBinding types.Empty - -type BaseRender types.Empty - type JsonResp struct { Code int `json:"code"` Msg string `json:"msg,omitempty"` From c89e781b51135022c136c35712f1075305e7cbf9 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Wed, 28 Jun 2023 05:51:53 +0800 Subject: [PATCH 19/61] add miss initial step in admin servant --- internal/servants/admin/user.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/servants/admin/user.go b/internal/servants/admin/user.go index e03f877a..5713a205 100644 --- a/internal/servants/admin/user.go +++ b/internal/servants/admin/user.go @@ -14,10 +14,12 @@ var ( ) type userSrv struct { - base.BaseServant + *base.BaseServant api.UnimplementedUserServant } func newUserSrv() api.User { - return &userSrv{} + return &userSrv{ + BaseServant: base.NewBaseServant(), + } } From dd66cc3627b778625febeb19f278a6cb572e2b4f Mon Sep 17 00:00:00 2001 From: Michael Li Date: Wed, 28 Jun 2023 13:10:46 +0800 Subject: [PATCH 20/61] upgrade github.com/alimy/mir/v4 => v4.0.0-alpha.4 --- auto/api/m/v1/user.go | 24 +-- auto/api/r/v1/user.go | 24 +-- auto/api/s/v1/user.go | 24 +-- auto/api/v1/admin.go | 26 +-- auto/api/v1/alipay_priv.go | 75 ++----- auto/api/v1/alipay_pub.go | 14 +- auto/api/v1/core.go | 315 ++++------------------------ auto/api/v1/followship.go | 74 +------ auto/api/v1/friendship.go | 76 +------ auto/api/v1/loose.go | 121 ++--------- auto/api/v1/priv.go | 411 +++++-------------------------------- auto/api/v1/pub.go | 132 ++---------- auto/api/x/v1/user.go | 24 +-- go.mod | 3 +- go.sum | 6 +- mirc/gen.go | 1 + 16 files changed, 185 insertions(+), 1165 deletions(-) diff --git a/auto/api/m/v1/user.go b/auto/api/m/v1/user.go index 43136276..d9fe36c9 100644 --- a/auto/api/m/v1/user.go +++ b/auto/api/m/v1/user.go @@ -85,31 +85,13 @@ func RegisterUserServant(e *gin.Engine, s User) { default: } - var ( - obj any - err mir.Error - ) req := new(LoginReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - obj, err = s.Login(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.Login(req) + s.Render(c, resp, err) }) } diff --git a/auto/api/r/v1/user.go b/auto/api/r/v1/user.go index 6dd6407b..d5dce055 100644 --- a/auto/api/r/v1/user.go +++ b/auto/api/r/v1/user.go @@ -85,31 +85,13 @@ func RegisterUserServant(e *gin.Engine, s User) { default: } - var ( - obj any - err mir.Error - ) req := new(LoginReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - obj, err = s.Login(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.Login(req) + s.Render(c, resp, err) }) } diff --git a/auto/api/s/v1/user.go b/auto/api/s/v1/user.go index 285bece1..061fa293 100644 --- a/auto/api/s/v1/user.go +++ b/auto/api/s/v1/user.go @@ -80,31 +80,13 @@ func RegisterUserServant(e *gin.Engine, s User) { default: } - var ( - obj any - err mir.Error - ) req := new(LoginReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - obj, err = s.Login(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.Login(req) + s.Render(c, resp, err) }) router.Handle("GET", "/index/", func(c *gin.Context) { select { diff --git a/auto/api/v1/admin.go b/auto/api/v1/admin.go index 71e0c3cc..2b2e2c4a 100644 --- a/auto/api/v1/admin.go +++ b/auto/api/v1/admin.go @@ -12,6 +12,19 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" ) +type _binding_ interface { + Bind(*gin.Context) mir.Error +} + +type _render_ interface { + Render(*gin.Context) +} + +type _default_ interface { + Bind(*gin.Context, any) mir.Error + Render(*gin.Context, any, mir.Error) +} + type Admin interface { _default_ @@ -38,22 +51,11 @@ func RegisterAdminServant(e *gin.Engine, s Admin) { default: } - var ( - obj any - err mir.Error - ) req := new(web.ChangeUserStatusReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.ChangeUserStatus(req)) }) } diff --git a/auto/api/v1/alipay_priv.go b/auto/api/v1/alipay_priv.go index 8f655b77..d4b1e534 100644 --- a/auto/api/v1/alipay_priv.go +++ b/auto/api/v1/alipay_priv.go @@ -40,31 +40,14 @@ func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.UserWalletBillsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.UserWalletBills(req) - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.UserWalletBills(req) + s.Render(c, resp, err) }) router.Handle("GET", "/user/recharge", func(c *gin.Context) { select { @@ -73,31 +56,14 @@ func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.UserRechargeResultReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.UserRechargeResult(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.UserRechargeResult(req) + s.Render(c, resp, err) }) router.Handle("POST", "/user/recharge", func(c *gin.Context) { select { @@ -106,31 +72,14 @@ func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.UserRechargeLinkReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.UserRechargeLink(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.UserRechargeLink(req) + s.Render(c, resp, err) }) } diff --git a/auto/api/v1/alipay_pub.go b/auto/api/v1/alipay_pub.go index ad61d9a7..abe85bee 100644 --- a/auto/api/v1/alipay_pub.go +++ b/auto/api/v1/alipay_pub.go @@ -32,22 +32,12 @@ func RegisterAlipayPubServant(e *gin.Engine, s AlipayPub) { default: } - var ( - obj any - err mir.Error - ) req := new(web.AlipayNotifyReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.AlipayNotify(req)) }) } diff --git a/auto/api/v1/core.go b/auto/api/v1/core.go index 5608ef05..e34cc058 100644 --- a/auto/api/v1/core.go +++ b/auto/api/v1/core.go @@ -53,31 +53,14 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.TweetCollectionStatusReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.TweetCollectionStatus(req) - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.TweetCollectionStatus(req) + s.Render(c, resp, err) }) router.Handle("GET", "/post/star", func(c *gin.Context) { select { @@ -86,31 +69,14 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.TweetStarStatusReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.TweetStarStatus(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.TweetStarStatus(req) + s.Render(c, resp, err) }) router.Handle("GET", "/suggest/tags", func(c *gin.Context) { select { @@ -119,31 +85,14 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.SuggestTagsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.SuggestTags(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.SuggestTags(req) + s.Render(c, resp, err) }) router.Handle("GET", "/suggest/users", func(c *gin.Context) { select { @@ -152,31 +101,14 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.SuggestUsersReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.SuggestUsers(req) - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.SuggestUsers(req) + s.Render(c, resp, err) }) router.Handle("POST", "/user/avatar", func(c *gin.Context) { select { @@ -185,22 +117,11 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.ChangeAvatarReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.ChangeAvatar(req)) }) router.Handle("POST", "/user/nickname", func(c *gin.Context) { @@ -210,22 +131,11 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.ChangeNicknameReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.ChangeNickname(req)) }) router.Handle("POST", "/user/password", func(c *gin.Context) { @@ -235,22 +145,11 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.ChangePasswordReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.ChangePassword(req)) }) router.Handle("POST", "/user/phone", func(c *gin.Context) { @@ -260,22 +159,11 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.UserPhoneBindReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.UserPhoneBind(req)) }) router.Handle("GET", "/user/stars", func(c *gin.Context) { @@ -285,31 +173,14 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.GetStarsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.GetStars(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.GetStars(req) + s.Render(c, resp, err) }) router.Handle("GET", "/user/collections", func(c *gin.Context) { select { @@ -318,31 +189,14 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.GetCollectionsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.GetCollections(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.GetCollections(req) + s.Render(c, resp, err) }) router.Handle("POST", "/user/whisper", func(c *gin.Context) { select { @@ -351,22 +205,11 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.SendWhisperReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.SendUserWhisper(req)) }) router.Handle("POST", "/user/message/read", func(c *gin.Context) { @@ -376,22 +219,11 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.ReadMessageReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.ReadMessage(req)) }) router.Handle("GET", "/user/messages", func(c *gin.Context) { @@ -401,31 +233,14 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.GetMessagesReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.GetMessages(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.GetMessages(req) + s.Render(c, resp, err) }) router.Handle("GET", "/user/msgcount/unread", func(c *gin.Context) { select { @@ -434,31 +249,13 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.GetUnreadMsgCountReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - obj, err = s.GetUnreadMsgCount(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.GetUnreadMsgCount(req) + s.Render(c, resp, err) }) router.Handle("GET", "/user/info", func(c *gin.Context) { select { @@ -467,31 +264,14 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.UserInfoReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.GetUserInfo(req) - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.GetUserInfo(req) + s.Render(c, resp, err) }) router.Handle("GET", "/sync/index", func(c *gin.Context) { select { @@ -500,22 +280,11 @@ func RegisterCoreServant(e *gin.Engine, s Core) { default: } - var ( - obj any - err mir.Error - ) req := new(web.SyncSearchIndexReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.SyncSearchIndex(req)) }) } diff --git a/auto/api/v1/followship.go b/auto/api/v1/followship.go index 775e16f5..34f4a8a8 100644 --- a/auto/api/v1/followship.go +++ b/auto/api/v1/followship.go @@ -41,31 +41,13 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship) { default: } - var ( - obj any - err mir.Error - ) req := new(web.ListFollowersReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.ListFollowers(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.ListFollowers(req) + s.Render(c, resp, err) }) router.Handle("GET", "/following/list", func(c *gin.Context) { select { @@ -74,31 +56,13 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship) { default: } - var ( - obj any - err mir.Error - ) req := new(web.ListFollowingsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.ListFollowings(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.ListFollowings(req) + s.Render(c, resp, err) }) router.Handle("POST", "/following/delete", func(c *gin.Context) { select { @@ -107,22 +71,11 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship) { default: } - var ( - obj any - err mir.Error - ) req := new(web.DeleteFollowingReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.DeleteFollowing(req)) }) router.Handle("POST", "/following/add", func(c *gin.Context) { @@ -132,22 +85,11 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship) { default: } - var ( - obj any - err mir.Error - ) req := new(web.AddFollowingReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.AddFollowing(req)) }) } diff --git a/auto/api/v1/friendship.go b/auto/api/v1/friendship.go index 403ec6c2..dc29ee26 100644 --- a/auto/api/v1/friendship.go +++ b/auto/api/v1/friendship.go @@ -42,31 +42,13 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship) { default: } - var ( - obj any - err mir.Error - ) req := new(web.GetContactsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.GetContacts(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.GetContacts(req) + s.Render(c, resp, err) }) router.Handle("POST", "/friend/delete", func(c *gin.Context) { select { @@ -75,22 +57,11 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship) { default: } - var ( - obj any - err mir.Error - ) req := new(web.DeleteFriendReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.DeleteFriend(req)) }) router.Handle("POST", "/friend/reject", func(c *gin.Context) { @@ -100,22 +71,11 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship) { default: } - var ( - obj any - err mir.Error - ) req := new(web.RejectFriendReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.RejectFriend(req)) }) router.Handle("POST", "/friend/add", func(c *gin.Context) { @@ -125,22 +85,11 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship) { default: } - var ( - obj any - err mir.Error - ) req := new(web.AddFriendReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.AddFriend(req)) }) router.Handle("POST", "/friend/requesting", func(c *gin.Context) { @@ -150,22 +99,11 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship) { default: } - var ( - obj any - err mir.Error - ) req := new(web.RequestingFriendReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.RequestingFriend(req)) }) } diff --git a/auto/api/v1/loose.go b/auto/api/v1/loose.go index 309609aa..94a07f88 100644 --- a/auto/api/v1/loose.go +++ b/auto/api/v1/loose.go @@ -42,31 +42,13 @@ func RegisterLooseServant(e *gin.Engine, s Loose) { default: } - var ( - obj any - err mir.Error - ) req := new(web.TweetCommentsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.TweetComments(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.TweetComments(req) + s.Render(c, resp, err) }) router.Handle("GET", "/tags", func(c *gin.Context) { select { @@ -75,31 +57,13 @@ func RegisterLooseServant(e *gin.Engine, s Loose) { default: } - var ( - obj any - err mir.Error - ) req := new(web.TopicListReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - obj, err = s.TopicList(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.TopicList(req) + s.Render(c, resp, err) }) router.Handle("GET", "/user/profile", func(c *gin.Context) { select { @@ -108,31 +72,13 @@ func RegisterLooseServant(e *gin.Engine, s Loose) { default: } - var ( - obj any - err mir.Error - ) req := new(web.GetUserProfileReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - obj, err = s.GetUserProfile(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.GetUserProfile(req) + s.Render(c, resp, err) }) router.Handle("GET", "/user/posts", func(c *gin.Context) { select { @@ -141,31 +87,13 @@ func RegisterLooseServant(e *gin.Engine, s Loose) { default: } - var ( - obj any - err mir.Error - ) req := new(web.GetUserTweetsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.GetUserTweets(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.GetUserTweets(req) + s.Render(c, resp, err) }) router.Handle("GET", "/posts", func(c *gin.Context) { select { @@ -174,31 +102,14 @@ func RegisterLooseServant(e *gin.Engine, s Loose) { default: } - var ( - obj any - err mir.Error - ) req := new(web.TimelineReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.Timeline(req) - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.Timeline(req) + s.Render(c, resp, err) }) } diff --git a/auto/api/v1/priv.go b/auto/api/v1/priv.go index 9e9d9a38..633b7299 100644 --- a/auto/api/v1/priv.go +++ b/auto/api/v1/priv.go @@ -58,22 +58,11 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.UnfollowTopicReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.UnfollowTopic(req)) }) router.Handle("POST", "/topic/follow", func(c *gin.Context) { @@ -83,22 +72,11 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.FollowTopicReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.FollowTopic(req)) }) router.Handle("POST", "/topic/stick", func(c *gin.Context) { @@ -108,31 +86,13 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.StickTopicReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - obj, err = s.StickTopic(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.StickTopic(req) + s.Render(c, resp, err) }) router.Handle("POST", "/tweet/reply/thumbsdown", func(c *gin.Context) { select { @@ -141,22 +101,11 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.TweetReplyThumbsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.ThumbsDownTweetReply(req)) }) router.Handle("POST", "/tweet/reply/thumbsup", func(c *gin.Context) { @@ -166,22 +115,11 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.TweetReplyThumbsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.ThumbsUpTweetReply(req)) }) router.Handle("POST", "/tweet/comment/thumbsdown", func(c *gin.Context) { @@ -191,22 +129,11 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.TweetCommentThumbsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.ThumbsDownTweetComment(req)) }) router.Handle("POST", "/tweet/comment/thumbsup", func(c *gin.Context) { @@ -216,22 +143,11 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.TweetCommentThumbsReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.ThumbsUpTweetComment(req)) }) router.Handle("DELETE", "/post/comment/reply", func(c *gin.Context) { @@ -241,22 +157,11 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.DeleteCommentReplyReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.DeleteCommentReply(req)) }) router.Handle("POST", "/post/comment/reply", func(c *gin.Context) { @@ -266,31 +171,14 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.CreateCommentReplyReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.CreateCommentReply(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.CreateCommentReply(req) + s.Render(c, resp, err) }) router.Handle("DELETE", "/post/comment", func(c *gin.Context) { select { @@ -299,22 +187,11 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.DeleteCommentReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.DeleteComment(req)) }) router.Handle("POST", "/post/comment", func(c *gin.Context) { @@ -324,31 +201,14 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.CreateCommentReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.CreateComment(req) - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.CreateComment(req) + s.Render(c, resp, err) }) router.Handle("POST", "/post/visibility", func(c *gin.Context) { select { @@ -357,31 +217,13 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.VisibleTweetReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.VisibleTweet(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.VisibleTweet(req) + s.Render(c, resp, err) }) router.Handle("POST", "/post/stick", func(c *gin.Context) { select { @@ -390,31 +232,13 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.StickTweetReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.StickTweet(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.StickTweet(req) + s.Render(c, resp, err) }) router.Handle("POST", "/post/lock", func(c *gin.Context) { select { @@ -423,31 +247,13 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.LockTweetReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.LockTweet(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.LockTweet(req) + s.Render(c, resp, err) }) router.Handle("POST", "/post/collection", func(c *gin.Context) { select { @@ -456,31 +262,13 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.CollectionTweetReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.CollectionTweet(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.CollectionTweet(req) + s.Render(c, resp, err) }) router.Handle("POST", "/post/star", func(c *gin.Context) { select { @@ -489,31 +277,13 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.StarTweetReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.StarTweet(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.StarTweet(req) + s.Render(c, resp, err) }) router.Handle("DELETE", "/post", func(c *gin.Context) { select { @@ -522,22 +292,11 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.DeleteTweetReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.DeleteTweet(req)) }) router.Handle("POST", "/post", func(c *gin.Context) { @@ -547,31 +306,14 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.CreateTweetReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.CreateTweet(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.CreateTweet(req) + s.Render(c, resp, err) }) router.Handle("GET", "/attachment", func(c *gin.Context) { select { @@ -580,31 +322,14 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.DownloadAttachmentReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.DownloadAttachment(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.DownloadAttachment(req) + s.Render(c, resp, err) }) router.Handle("GET", "/attachment/precheck", func(c *gin.Context) { select { @@ -613,31 +338,14 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.DownloadAttachmentPrecheckReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.DownloadAttachmentPrecheck(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.DownloadAttachmentPrecheck(req) + s.Render(c, resp, err) }) router.Handle("POST", "/attachment", func(c *gin.Context) { select { @@ -646,31 +354,14 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { default: } - var ( - obj any - err mir.Error - ) req := new(web.UploadAttachmentReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + var bv _binding_ = req + if err := bv.Bind(c); err != nil { s.Render(c, nil, err) return } - obj, err = s.UploadAttachment(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.UploadAttachment(req) + s.Render(c, resp, err) }) } diff --git a/auto/api/v1/pub.go b/auto/api/v1/pub.go index 88b7b9d1..ae2f8367 100644 --- a/auto/api/v1/pub.go +++ b/auto/api/v1/pub.go @@ -12,19 +12,6 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" ) -type _binding_ interface { - Bind(*gin.Context) mir.Error -} - -type _render_ interface { - Render(*gin.Context) -} - -type _default_ interface { - Bind(*gin.Context, any) mir.Error - Render(*gin.Context, any, mir.Error) -} - type Pub interface { _default_ @@ -50,31 +37,13 @@ func RegisterPubServant(e *gin.Engine, s Pub) { default: } - var ( - obj any - err mir.Error - ) req := new(web.TweetDetailReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - obj, err = s.TweetDetail(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.TweetDetail(req) + s.Render(c, resp, err) }) router.Handle("POST", "/captcha", func(c *gin.Context) { select { @@ -83,22 +52,11 @@ func RegisterPubServant(e *gin.Engine, s Pub) { default: } - var ( - obj any - err mir.Error - ) req := new(web.SendCaptchaReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - s.Render(c, nil, s.SendCaptcha(req)) }) router.Handle("GET", "/captcha", func(c *gin.Context) { @@ -108,21 +66,8 @@ func RegisterPubServant(e *gin.Engine, s Pub) { default: } - var ( - obj any - err mir.Error - ) - - obj, err = s.GetCaptcha() - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.GetCaptcha() + s.Render(c, resp, err) }) router.Handle("POST", "/auth/register", func(c *gin.Context) { select { @@ -131,31 +76,13 @@ func RegisterPubServant(e *gin.Engine, s Pub) { default: } - var ( - obj any - err mir.Error - ) req := new(web.RegisterReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.Register(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.Register(req) + s.Render(c, resp, err) }) router.Handle("POST", "/auth/login", func(c *gin.Context) { select { @@ -164,31 +91,13 @@ func RegisterPubServant(e *gin.Engine, s Pub) { default: } - var ( - obj any - err mir.Error - ) req := new(web.LoginReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { - s.Render(c, nil, err) - return - } - obj, err = s.Login(req) - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.Login(req) + s.Render(c, resp, err) }) router.Handle("GET", "/", func(c *gin.Context) { select { @@ -197,21 +106,8 @@ func RegisterPubServant(e *gin.Engine, s Pub) { default: } - var ( - obj any - err mir.Error - ) - - obj, err = s.Version() - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.Version() + s.Render(c, resp, err) }) } diff --git a/auto/api/x/v1/user.go b/auto/api/x/v1/user.go index 5640ae2f..1ec46b0d 100644 --- a/auto/api/x/v1/user.go +++ b/auto/api/x/v1/user.go @@ -85,31 +85,13 @@ func RegisterUserServant(e *gin.Engine, s User) { default: } - var ( - obj any - err mir.Error - ) req := new(LoginReq) - obj = req - if bv, ok := obj.(_binding_); !ok { - err = s.Bind(c, req) - } else { - err = bv.Bind(c) - } - if err != nil { + if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) return } - obj, err = s.Login(req) - if err != nil { - s.Render(c, nil, err) - return - } - if rv, ok := obj.(_render_); !ok { - s.Render(c, obj, nil) - } else { - rv.Render(c) - } + resp, err := s.Login(req) + s.Render(c, resp, err) }) } diff --git a/go.mod b/go.mod index 4bcbcb50..d47c0e67 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,8 @@ require ( github.com/Masterminds/semver/v3 v3.2.1 github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868 github.com/alimy/cfg v0.3.0 - github.com/alimy/mir/v4 v4.0.0-alpha.3 + github.com/alimy/mir/engine/gin/v4 v4.0.0 + github.com/alimy/mir/v4 v4.0.0-alpha.4 github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/allegro/bigcache/v3 v3.0.2 github.com/bytedance/sonic v1.9.1 diff --git a/go.sum b/go.sum index 27639f6f..733fd85c 100644 --- a/go.sum +++ b/go.sum @@ -131,8 +131,10 @@ github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:C github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= github.com/alimy/cfg v0.3.0 h1:9xgA0QWVCPSq9fFNRcYahVCAX22IL9ts2wrTQPfAStY= github.com/alimy/cfg v0.3.0/go.mod h1:rOxbasTH2srl6StAjNF5Vyi8bfrdkl3fLGmOYtSw81c= -github.com/alimy/mir/v4 v4.0.0-alpha.3 h1:T1i3xolo/cvOxCpUTSvAU2AcgB3ajNm0/jM1EbsqpJM= -github.com/alimy/mir/v4 v4.0.0-alpha.3/go.mod h1:X09f2IOQ4NTyJFKJ10S+J7Jk988T5IvvprwTijQZAsg= +github.com/alimy/mir/engine/gin/v4 v4.0.0 h1:N3nvpniFLW2z1WxU26gHw1FKx+/G+B/5cllOjOTjsWI= +github.com/alimy/mir/engine/gin/v4 v4.0.0/go.mod h1:M28AJQ5h1CEA+m2s6acuVjGXI8ElLNDA5IKtSdWI48k= +github.com/alimy/mir/v4 v4.0.0-alpha.4 h1:UKYwkvYnGo/5wr5pMwy+n2MW1+K8b4btCfdhTQhQB1A= +github.com/alimy/mir/v4 v4.0.0-alpha.4/go.mod h1:X09f2IOQ4NTyJFKJ10S+J7Jk988T5IvvprwTijQZAsg= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/allegro/bigcache/v3 v3.0.2 h1:AKZCw+5eAaVyNTBmI2fgyPVJhHkdWder3O9IrprcQfI= diff --git a/mirc/gen.go b/mirc/gen.go index 0f0acca9..5c0b76c6 100644 --- a/mirc/gen.go +++ b/mirc/gen.go @@ -13,6 +13,7 @@ import ( . "github.com/alimy/mir/v4/core" . "github.com/alimy/mir/v4/engine" + _ "github.com/alimy/mir/engine/gin/v4" _ "github.com/rocboss/paopao-ce/mirc/admin/v1" _ "github.com/rocboss/paopao-ce/mirc/bot/v1" _ "github.com/rocboss/paopao-ce/mirc/localoss/v1" From e350df085066d18343ff792106726571f4f5a69a Mon Sep 17 00:00:00 2001 From: Michael Li Date: Thu, 29 Jun 2023 05:32:36 +0800 Subject: [PATCH 21/61] add pprof feature support --- CHANGELOG.md | 2 + Makefile | 12 ++-- README.md | 3 +- default.pgo | Bin 0 -> 7677 bytes ...加Pprof功能特性用于获取Profile.md | 67 ++++++++++++++++++ .../23062906-关于开启pgo编译优化.md | 38 ++++++++++ features-status.md | 13 ++-- internal/conf/conf.go | 2 + internal/conf/config.yaml | 6 ++ internal/service/pprof.go | 61 ++++++++++++++++ internal/service/service.go | 3 + pkg/debug/pprof_embed.go | 12 ++++ 12 files changed, 207 insertions(+), 12 deletions(-) create mode 100644 default.pgo create mode 100644 docs/proposal/23062905-添加Pprof功能特性用于获取Profile.md create mode 100644 docs/proposal/23062906-关于开启pgo编译优化.md create mode 100644 internal/service/pprof.go create mode 100644 pkg/debug/pprof_embed.go diff --git a/CHANGELOG.md b/CHANGELOG.md index d0be5cd4..8f56ce78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to paopao-ce are documented in this file. ## 0.4.0+dev ([`dev`](https://github.com/rocboss/paopao-ce/tree/dev)) +### Added +- add `pprof` feature support [#327](https://github.com/rocboss/paopao-ce/pull/327) ## 0.3.0 ### Added diff --git a/Makefile b/Makefile index 55c923a0..901927d8 100644 --- a/Makefile +++ b/Makefile @@ -32,10 +32,10 @@ all: fmt build build: @go mod download @echo Build paopao-ce - @go build -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $(RELEASE_ROOT)/$(TARGET) + @go build -pgo=auto -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $(RELEASE_ROOT)/$(TARGET) run: - @go run -trimpath -gcflags "all=-N -l" -tags '$(TAGS)' -ldflags '$(LDFLAGS)' . + @go run -pgo=auto -trimpath -gcflags "all=-N -l" -tags '$(TAGS)' -ldflags '$(LDFLAGS)' . .PHONY: release release: linux-amd64 darwin-amd64 darwin-arm64 windows-x64 @@ -52,22 +52,22 @@ release: linux-amd64 darwin-amd64 darwin-arm64 windows-x64 .PHONY: linux-amd64 linux-amd64: @echo Build paopao-ce [linux-amd64] CGO_ENABLED=$(CGO_ENABLED) TAGS="'$(TAGS)'" - @CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GOARCH=amd64 go build -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $(RELEASE_LINUX_AMD64)/$(TARGET_BIN) + @CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GOARCH=amd64 go build -pgo=auto -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $(RELEASE_LINUX_AMD64)/$(TARGET_BIN) .PHONY: darwin-amd64 darwin-amd64: @echo Build paopao-ce [darwin-amd64] CGO_ENABLED=$(CGO_ENABLED) TAGS="'$(TAGS)'" - @CGO_ENABLED=$(CGO_ENABLED) GOOS=darwin GOARCH=amd64 go build -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $(RELEASE_DARWIN_AMD64)/$(TARGET_BIN) + @CGO_ENABLED=$(CGO_ENABLED) GOOS=darwin GOARCH=amd64 go build -pgo=auto -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $(RELEASE_DARWIN_AMD64)/$(TARGET_BIN) .PHONY: darwin-arm64 darwin-arm64: @echo Build paopao-ce [darwin-arm64] CGO_ENABLED=$(CGO_ENABLED) TAGS="'$(TAGS)'" - @CGO_ENABLED=$(CGO_ENABLED) GOOS=darwin GOARCH=arm64 go build -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $(RELEASE_DARWIN_ARM64)/$(TARGET_BIN) + @CGO_ENABLED=$(CGO_ENABLED) GOOS=darwin GOARCH=arm64 go build -pgo=auto -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $(RELEASE_DARWIN_ARM64)/$(TARGET_BIN) .PHONY: windows-x64 windows-x64: @echo Build paopao-ce [windows-x64] CGO_ENABLED=$(CGO_ENABLED) TAGS="'$(TAGS)'" - @CGO_ENABLED=$(CGO_ENABLED) GOOS=windows GOARCH=amd64 go build -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $(RELEASE_WINDOWS_AMD64)/$(TARGET_BIN).exe + @CGO_ENABLED=$(CGO_ENABLED) GOOS=windows GOARCH=amd64 go build -pgo=auto -trimpath -tags '$(TAGS)' -ldflags '$(LDFLAGS)' -o $(RELEASE_WINDOWS_AMD64)/$(TARGET_BIN).exe .PHONY: generate generate: gen-mir gen-grpc diff --git a/README.md b/README.md index eba606fd..7cf224b7 100644 --- a/README.md +++ b/README.md @@ -375,7 +375,8 @@ release/paopao-ce --no-default-features --features sqlite3,localoss,loggerfile,r |`Alipay` | 支付 | 稳定 | 开启基于[支付宝开放平台](https://open.alipay.com/)的钱包功能 | |`Sms` | 短信验证 | 稳定 | 开启短信验证码功能,用于手机绑定验证手机是否注册者的;功能如果没有开启,手机绑定时任意短信验证码都可以绑定手机 | |`Docs:OpenAPI` | 开发文档 | 稳定 | 开启openapi文档功能,提供web api文档说明(visit http://127.0.0.1:8008/docs/openapi) | -|[`Pyroscope`](docs/proposal/016-关于使用pyroscope用于性能调试的设计.md)| 性能优化 | 内测 | 开启Pyroscope功能用于性能调试 | +|[`Pyroscope`](docs/proposal/23021510-关于使用pyroscope用于性能调试的设计.md)| 性能优化 | 内测 | 开启Pyroscope功能用于性能调试 | +|[`Pprof`](docs/proposal/23062905-添加Pprof功能特性用于获取Profile.md)| 性能优化 | 内测 | 开启Pprof功能收集Profile信息 | |`PhoneBind` | 其他 | 稳定 | 手机绑定功能 | |`Web:DisallowUserRegister` | 功能特性 | 稳定 | 不允许用户注册 | diff --git a/default.pgo b/default.pgo new file mode 100644 index 0000000000000000000000000000000000000000..a4f2bc981eca57830abd7713df115f138bd7dc41 GIT binary patch literal 7677 zcmVZs$4%Z!fO%qTANJ?B<; zryIiN_lI=ud*5^Jx#ymH?zy)feeD@wfv-JlhwV$auNVs2weQfe6YK0N>{8?}M!-3D zebl~0@%6<(Nw90T?xnm(&tARz9Mf0oCm(y<@%>Neuk7*Cj1a+dA5six-HEtgz++2y~zVh+rOc`zRqK>sV@ zfZ`Pr8)5kMkmF!6?M-k449~IiM%WBD!Od_B+zMM@E8GS- z-iO=aj{VSLU&o=tPPr3?XMh2|(exC`!vd*EKse+T!$@8N#f0S~}~2l}kLuSnRj z6CU#Prg3kyU9bgqx1v4UGZ+eTfB^#kcHjCrD0g6hFSL`96(H~j9$YmC<@T%qE9C%d zhrr+a@_IpPhhKw?tUUt%_lGYFQhQWnWE~LrYinK+NC!MaM%EF5e{=PoxrB7YGC9CH zA@DWN5YmBl!kuIQL*P$eyH`LAuO_H70>9_YcLdZK?Rf@ph-~FtZ zT`8{YEe9A!;Jk9YcB^_4+Q@4{FMUgftx$X0oD_N-@V}p0rkWM?c@OKMbMlK z>w04KM&P^de@Z~T@Z&CWfb~J(Z{6lWy>V9;8QC!i{KH*0EG0|(V6_}zeaY#!JS?Vj z4BkcBB?SJ5t39YM&LgNF0$;qwgCzW%7Engu&wqNm(B2O}Bka;JxIZSlK)f$zF>|AmEq$Aok*;`URbI4eRny)PD0?{Eq_`- zC*q66a)1p$;M>0Nw#`ZSGuaTLMf}?$5i|p^pNuSwz&C#2At9VB2Ut0+*Hz1fSQsDn z$pKb@z;FF|nSjdi&z^=g3ttw{5ZqTH2iQ;qzIM(AA$T&bZZ9Jn zMy5XNWr3kMNe-}65cr-O7YNcYyop?TDgxiW>?#4Bg8w5`r;-2GdeEu(Wl#>V(-HU& zi`EM0G`zl_9ALvKLiTxZf}?1Pf6722CM#*hUfe36k+`FWjBGR|tW|sG(|ksWtTqOLfAZ#DL8`>( zXlsr|;BVgZPeB@uwCTnn@J;u>CP-s&9!+{Y0$=psHv}{m=hNCxpd|M8;$#zq<0G$Ot3rIaanyc}R>A@CJ*-xMijD!xp1SJ6&-#@pc2 z@L39lY6SkuMlZ6@!sq>RfK5l>*Ik_n_O~e5&!*^j$P=u>?_6%|PJ) z`DXb_f~xT^G~&4keA#^~1T-D5qj)@z67q*0bT-~c(D{^j_Ic1bcrE3D3lR8ofA^pn z_zK12Z)nH8v{hv3bH$`DMBvZ-@S||(c{oN6u!|7*?LT>Y>3n>G_EHT3|I6MR1atwu zKvrE$x$g}xj(>yen2by(0GQ)y?-A!kMDh}*eF*ief<(td8B>8$Xe2ree| zG19g04+5&g4=F%qBJkbYpB0uG7?hDU(t-A{ht%T;Il$s1w)#0C7R4ti%Onu^qtC5c zNKgabP0CFK{=&P@2`Gl^$ukz6a;sky&`i9JPT3>^|Kq;b1=NTSP~M(JN%{j1isL^> z&_>{^U-X~^t|Q2ykX-qOfK1#)kc+^7TZ*|?rem`$l@y$3n?4JmJ-kh#}`T)dZ9mr&90hzF(cJ%TPp;IBX7 zK~3JtbQu}?lm|8Amjqo-C+$-!1vDG)BK5ze-TUHB0kz=$1YLo^zj`2(8Ww_F!sbvp z_5O8l3G5R5qMcmA<`TB$?uE+;yA;=w=sd#y{_Q4_9xg*k4zT$IJ^J8HBET=lDRK#0 z03yZzu!1Cii*w1eD+yb$(Muy&;AA<-7811eqgNKA+>tDJw38fUiwJyVn+MJX+}KeL zvc*F9ftLk14{%F+xr8kt@Vy0Zh;W$?SS|pgQ;0M3$wY&~H+ zTg`cv%-JA@d2fku&Pu?$d~%RoC!}BUz*T@RGdajM5_s!tiv_qE@M&Vwb%Jl)8o*I< zkliGtZ(1OT>i~C>y<>j4REGh!gdh$-{rRn z>~=s~E@2Od$?UsQMDQJesvKYsifytslLk(dgKVcT`dQCAcLLtkLk_ZsM51Y3o7-q@ zb`iK^d)B$v(<<&3Q~AULw*h|ITPSKugct5G5(oHR70hGBc9jnYMQVUrL9>xw7v6C}U#b%E+*-B96*RHoFZg{(WOT$N5#9wU)bJc*wql`1R9 zK^zD00a8f$qP<$kdSIA`rI50&gIdUXVmU9DN|k@pw0dC$uaHWWC%dSHtT$?0lS-9` zx~M+Z2M6+j(jet5wU8ZygZW@-h;mIkwUG72lljTg5M?ekBpk|zN<);-NLfD|#)nC# zD1RYqWIUChDxISInG84Wr{*rdTEwbw0q_OX{Je|m zXVrKm@GC)D2+GT#`q^|`1bmTb-&>&i+1a=l_+rt%qrK{9=in0HOGNv1YR|x>z?X{l zOYPMnb}lXhz6_-0pwy^E>^xind<94=K^d+VvGZ{i@Kqp9Q+9V!i`WIY8u)6E)__v1 z`Y9I!zY3(apnTa;En*kq)xfU?=^9YZRsHNDTnBs|NY{e$NjufgYH&U9^`iYDwJ*jE zz&C(&9VkngTEukR2z(>W^a&cQ7Ow|>JxIFpIVq3eCg7W>xrl`8@CM*FfOMl!R>Tb4 z416<4H-S>37O{G~8TiejIb8L#DBc467QueZr}|j~-U|FykhXxblC;HeEAXu#-3H3F zv?Md}cHp;zbO$JY)z2F7PT+Tfv<;N)q~}2SH>h3M75F^x=Rvwe397|ZB)eBD7Urs8-H@I3<9LIFD;@Fn0cf%GycVYQfw;#Yvb0@9y^`NdQazY6?SkX{32 zL4jIK747T5UkB+8Q2t00Tm<+g@HYjJQj4i{d<*znAiXWtqnN7LcYwbmfW0KK6mT!_ zy&(M=l$olZO4WCPzYEfPptx!=RjKa-e;=g3fbw?|SONF}@DIcgQMH%~(GP)t2+~KO zeA-zprXuvO!2c?M5T0bJpX$xefPV&3M`a)FfolLi2mU!o7b+*HeyTG60sJ2z)hJuY#%rna;{POl zKNPBdsx7|&{spyHm8gCyNWKLACAGiqs`{yF`4{kiQF{T!h{y)*4q!v@fH>ZHlDUjwCDBCEQZv&iHz~>c6^9z(gs-G&o1qFOTfpleoGE4PS zmA9~fFD#H26)0t@pUSz#1$=P<&AEr_r}}J30bfGx?Y*`C(>ghNA{jRvtwY30nXc9@ zl1yoZrfyn}5wXlVNAue$(~TvJP@~agn6B0>-3~h~PEDO|H^WucfEb2TZi zKU`lY)YW7xi&`4rU&GkZWuXZq%MXxEnX%a<6EF=oq^PFh5?Ku7Hw`zJ63nCMk%*CW zwH_Wgy>i;5nBy9zVQ0I#lDr#9I##5yCTTgImbL^&dIJ6&0WlA1H@I#xq^Q+~-9%LJ ztCeJW!j8a+-LDO{H^fM@&J!CMjkyh}+EBzwgl#KQYdKChsar|i8W1tUS>KS(Si}e^ zDyhrpa$MbZwbPDDg|Mfl)yAr$HNX>{W?AtILZQ%wX)8RFLiH&#qG=}|okgw2ROARc zR?3bTQCm+ogd>(22`60hlV12o$)*U+SNGki(RIOs|?SRqN5#-t$zJ?8IF%Q1V=6H*ldtT8jMI|rDd99Y}>L0(@qO?t4-C%EOM_PYMHSJ{guPb zA4xly#E7Pf(6CTNI3rfm?9HB5F=mA#RL&FjR&FR>>{ql6DS$|NfqHEhyeX_@u0Xj*&O;k3tv z9O)i(2)~RmqcPJc3pI#Erp2u?W~B_r)%qW9fT&kCoOA@*TO&ux4>&s=Tse&Hxm#3Z z3c=KhGetl`uWO1qh8D;GPK$H4W7JKpZmnz*Mk1%ODc+Bnt%!(6gq|6Kq9z&)Jy{mg z<8doeozzVYvs~&ScJH>?lXWwt$FpS*oo10n(bK9!U?LS}ShS%9nk9uyquE2Uq=aP~ z9+WB4!n%`4=XWQ^sY%0jVvb9xGe2u)_q}WDrjxX6cmJ{?M>L)CCRtWe>y@z~={DGg zUROgkWsMVynt5|I5_+@VXrz)_*NlZ$ZgH7qnwD$q&x}(MMJkBt&+(t_CbEkcPTE#P zq`?e<)FiWOPHqzvZ+`@H*4#A`p7%;@qdsm#+|W6CJY|H&#Epc8X)N3%u&9+qLKDoo zm~BK{?U*{<)oXRf2s^Xlp@?NR8MZspAum)}&5l-@+aFH%i-IsuP*I6p7OIZurWVYT zp>A4`sAVTYF)J*76?OEevXB$e%?YM!Rl9a7;%dEfDYO^0!J&#UkwjeODG&qY354mq zuhk=sPUx(ZVYg@}w5cx33eQTVGt~a3k*^KMvFx(YnAt`oZq*I^7D-jG31-q{4Nzc1TgrcIX5fXB=^no3A09a=cu6 z*3n9b6qRHr>!uzxs=YHz7(y0}YMC%v8+z0RWsIpj%9AtFpvTP6#AbJrWjRKAqn!F{ zl!RwCyLp9WW!!QMtyfzGVx8f*w$-BbY`ZgJ8}<8DmQ*w*Qm*0MsoE0rhRZKHJuI)r z^q>Pzl!(B4w|&y2{UWzn?|JcnQjD?#jLRChTuCn&DRBd{Lh$R@9R}>vmMP|%{oXqJJ&GsgYL?muc zvBn#Ea+)P(;b`4+YJy1I&K|DVT6d7HXe4_qhdm_kI8W$}h7*rPjGQx{n!-Bq1Ypc| zleXnrAv#SbPnbMryrI__wpN zk{9{8BH06$z?RknHfjkV?M)QebowW5Mf6%n>msI`d8p~r+OH>*hFLe(vJ<*nHMVl# zz=6ZG?t)w|uo}BQLSUO>)vg_jWW~C*c2CxAr$LWTte!e0FNsC1NTekkwFb;|EVDI6 z)7vUEQfSQ;KJ8$_bQ`ZI4`~M|$tsIl+VCSDI^2{<&*}ej^rl2O<;Fz8P<~XSSEWqt zlwUPolcy(DHvCRx$(menX~9^*)}E6Jy?b2X%djLV&}6SGrE z$1sUwr<~9vqsfTVFpf9OA-LXMP75~(cGS`a96~RhJg(hBhoEf;{YRqOAQ@79!jY(s zThSvUPO_qTYk4SQeco;Ppv(zoy;Xlm&t|F9?3n4+=Uwp+k&gczRh~sqvR-RtKhB_9}33&%2Il=;W&EK$f!BvSJl%APsy(>sng*Z66LVh>FHRn=3(vW-mnRWiF)Ro@++z+Qg`?ozpXN=k_^eIqbdgFof3yG zq%y-EVQSm|YB6Jax;n_+!?sZubHaAYh}FetUnFBmqb%gKn32)>k9K)P3Tev7VWNxY z;lrvNZE1rKOQNf2)V5M)-L#mQc}+u$2xDXM>~k+#PPjf6H(Fn>b2;h9>okXYef0@9 zG&V_FUF%YxaKqxy{XY@t^;RV1gd<*gO*ae6)m@`3B%Woc8mbyMYNR&$pdxfim50g) zXyp~dD#|O$%ZF)02UQFhR9jb3uT?~b4jnQyTxaXeG;rCW1{N2OvQU*6Kd;h0fSSGx zl!Zt!m1AZ!?}l;o7G`uut-P#w@R2KRgUswMZaP!~j~g|zEJXhf88p(>{N4@7>y28O zTbOXfXj^ZdtUHZbNh_FjQGWRp*Uf0S-Zl)kC28b78jo(B_=JN?jNJOz7STULvIB1fzEv{t;|NATA7PeWW2(;v*77AIkuT1Ccp z*@URORw5P&DQfy&nf|g_?OL`m#hNinlMW&hrl=6dPigBV)=BDSwc(b9k}0R5_3bx7 zxZ`~^>zi}sjZm$n$IC(~GonWt4Do*5DwXaQRY9&4QRxO)AB)FxF1G^T|8+b~HjUZt zSlckPQbzH)&_YTk-KC%CR#DGRWyS}Ep5mF+it+j zW;aa#H4P$n>$Z5|6TjkPNnDR5oV-1DfZT|tL7~CotFE1XQ9J37!|bp8knD_d*J?D( z{Xg*>c%&v9qhURn^v0M@GI^=-paPkfxNfbNcE@m?WXv=vX|yH-%a|Q=%g2AZ{nOhP reYpF9(rJ%udGE=;!1>~TWxjaMT_3ei{@?!#009604->4l-aG&Rtnu*c literal 0 HcmV?d00001 diff --git a/docs/proposal/23062905-添加Pprof功能特性用于获取Profile.md b/docs/proposal/23062905-添加Pprof功能特性用于获取Profile.md new file mode 100644 index 00000000..5763c5a8 --- /dev/null +++ b/docs/proposal/23062905-添加Pprof功能特性用于获取Profile.md @@ -0,0 +1,67 @@ +| 编号 | 作者 | 发表时间 | 变更时间 | 版本 | 状态 | +| ----- | ----- | ----- | ----- | ----- | ----- | +| 23062905| 北野 | 2023-06-29 | 2023-06-29 | v1.0 | 提议 | + +### 概述 +使用net/http/pprof获取Profile信息。添加`Pprof`功能特性用于开启PprofServer服务。 + +### 需求 +- 只在开发环境下获取profile信息 +- 可以在配置文件中开启获取profile的服务 + +### 方案 +- 添加`Pprof`功能特性 +- 添加`PprofServer`服务 + +#### 设计细节 +- 配置文件中添加`PprofServer`项用于配制http server +- 添加`Pprof`功能特性 +- 添加`PprofServer`服务 +- 使用`//go:build pprof`按需编译profile功能 +- `PprofServer` 不能和其他服务共用一个端口 + +### 疑问 + +1. 为什么要添加`pprof`功能特性? +使用 net/http/pprof 在线获取CPU profile信息,用于 [PGO](https://go.dev/doc/pgo) 编译优化。 + +2. 如何开启`Pprof`服务? +* 构建时将 `pprof` 添加到TAGS中: + ```sh + make run TAGS='pprof' + ``` +* 在配置文件config.yaml中的`Features`中添加`Pprof`功能项开启该功能: + ```yaml + ... + # features中加上 Friendship + Features: + Default: ["Meili", "LoggerMeili", "Base", "Sqlite3", "BigCacheIndex", "MinIO", "Pprof"] + Base: ["Redis", "PhoneBind"] + ... + ``` + +3. 常见命令 + +#### Merging profiles +The pprof tool can merge multiple profiles like this: +```sh +$ go tool pprof -proto a.pprof b.pprof > merged.pprof +``` +This merge is effectively a straightforward sum of samples in the input, regardless of wall duration of the profile. As a result, when profiling a small time slice of an application (e.g., a server that runs indefinitely), you likely want to ensure that all profiles have the same wall duration (i.e., all profiles are collected for 30s). Otherwise, profiles with longer wall duration will be overrepresented in the merged profile. + +#### look at a 30-second CPU profile: +```sh +go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30 +``` + +### 参考文档 +* [PGO](https://go.dev/doc/pgo) +* [net/http/pprof](https://pkg.go.dev/net/http/pprof) +* [runtime/pprof](https://pkg.go.dev/runtime/pprof) + +### 参考实现 +- [#327](https://github.com/rocboss/paopao-ce/pull/327) + +### 更新记录 +#### v1.0(2023-06-20) - 北野 +* 初始文档 diff --git a/docs/proposal/23062906-关于开启pgo编译优化.md b/docs/proposal/23062906-关于开启pgo编译优化.md new file mode 100644 index 00000000..4623c6a9 --- /dev/null +++ b/docs/proposal/23062906-关于开启pgo编译优化.md @@ -0,0 +1,38 @@ +| 编号 | 作者 | 发表时间 | 变更时间 | 版本 | 状态 | +| ----- | ----- | ----- | ----- | ----- | ----- | +| 23062906| 北野 | 2023-06-29 | 2023-06-29 | v1.0 | 提议 | + +### 概述 +Beginning in Go 1.20, the Go compiler supports profile-guided optimization ([PGO](https://go.dev/doc/pgo)) to further optimize builds. + + +### 疑问 + +1. 为什么要添加`pprof`功能特性? +使用 net/http/pprof 在线获取CPU profile信息,用于 [PGO](https://go.dev/doc/pgo) 编译优化。 + +2. 如何开启`pgo`编译优化? +The standard approach is to store a pprof CPU profile with filename default.pgo in the main package directory of the profiled binary, and build with go build -pgo=auto, which will pick up default.pgo files automatically. + +3. 常见命令 + +#### Merging profiles +The pprof tool can merge multiple profiles like this: +```sh +$ go tool pprof -proto a.pprof b.pprof > default.pgo +``` +This merge is effectively a straightforward sum of samples in the input, regardless of wall duration of the profile. As a result, when profiling a small time slice of an application (e.g., a server that runs indefinitely), you likely want to ensure that all profiles have the same wall duration (i.e., all profiles are collected for 30s). Otherwise, profiles with longer wall duration will be overrepresented in the merged profile. + +#### look at a 30-second CPU profile: +```sh +go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30 +``` + +### 参考文档 +* [PGO](https://go.dev/doc/pgo) +* [net/http/pprof](https://pkg.go.dev/net/http/pprof) +* [runtime/pprof](https://pkg.go.dev/runtime/pprof) + +### 更新记录 +#### v1.0(2023-06-20) - 北野 +* 初始文档 diff --git a/features-status.md b/features-status.md index bf368407..60f17aff 100644 --- a/features-status.md +++ b/features-status.md @@ -146,15 +146,15 @@ #### 关系模式: * `Friendship` 弱关系好友模式,类似微信朋友圈(目前状态: 内测); - * [x] [提按文档](docs/proposal/002-关于Friendship功能项的设计.md) + * [x] [提按文档](docs/proposal/22110410-关于Friendship功能项的设计.md) * [x] 接口定义 * [x] 业务逻辑实现 * `Followship` 关注者模式,类似Twitter的Follow模式(目前状态: WIP); - * [ ] [提按文档](docs/proposal/003-关于Followship功能项的设计.md) + * [ ] [提按文档](docs/proposal/22110409-关于Followship功能项的设计.md) * [ ] 接口定义 * [ ] 业务逻辑实现 * `Lightship` 开放模式,所有推文都公开可见(目前状态: 内测、默认); - * [x] [提按文档](docs/proposal/011-关于Lightship功能项的设计.md) + * [x] [提按文档](docs/proposal/22121409-关于Lightship功能项的设计.md) * [x] 接口定义 * [x] 业务逻辑实现 @@ -181,10 +181,13 @@ * [x] 业务逻辑实现 ### 性能优化 -* [`Pyroscope`](docs/proposal/016-关于使用pyroscope用于性能调试的设计.md) 开启Pyroscope功能用于性能调试(目前状态: 内测); +* [`Pyroscope`](docs/proposal/23021510-关于使用pyroscope用于性能调试的设计.md) 开启Pyroscope功能用于性能调试(目前状态: 内测); * [x] 提按文档 * [x] 业务逻辑实现 - +* [`Pprof`](docs/proposal/23062905-添加Pprof功能特性用于获取Profile.md) 开启Pprof功能收集Profile信息(目前状态: 内测); + * [x] 提按文档 + * [x] 业务逻辑实现 + ### 其他: * `PhoneBind` 手机绑定功能; * [ ] 提按文档 diff --git a/internal/conf/conf.go b/internal/conf/conf.go index 2dad15c7..a0dc88df 100644 --- a/internal/conf/conf.go +++ b/internal/conf/conf.go @@ -24,6 +24,7 @@ var ( MysqlSetting *mysqlConf PostgresSetting *postgresConf Sqlite3Setting *sqlite3Conf + PprofServerSetting *httpServerConf WebServerSetting *httpServerConf AdminServerSetting *httpServerConf SpaceXServerSetting *httpServerConf @@ -67,6 +68,7 @@ func setupSetting(suite []string, noDefault bool) error { objects := map[string]any{ "App": &AppSetting, + "PprofServer": &PprofServerSetting, "WebServer": &WebServerSetting, "AdminServer": &AdminServerSetting, "SpaceXServer": &SpaceXServerSetting, diff --git a/internal/conf/config.yaml b/internal/conf/config.yaml index 0f74e77e..fc86dfd4 100644 --- a/internal/conf/config.yaml +++ b/internal/conf/config.yaml @@ -37,6 +37,12 @@ LocalossServer: # Localoss服务 HttpPort: 8018 ReadTimeout: 60 WriteTimeout: 60 +PprofServer: # Pprof服务 + RunMode: debug + HttpIp: 0.0.0.0 + HttpPort: 6060 + ReadTimeout: 60 + WriteTimeout: 60 FrontendWebServer: # Web前端静态资源服务 RunMode: debug HttpIp: 0.0.0.0 diff --git a/internal/service/pprof.go b/internal/service/pprof.go new file mode 100644 index 00000000..80f8c07e --- /dev/null +++ b/internal/service/pprof.go @@ -0,0 +1,61 @@ +// Copyright 2023 ROC. All rights reserved. +// Use of this source code is governed by a MIT style +// license that can be found in the LICENSE file. + +package service + +import ( + "fmt" + "net/http" + + "github.com/Masterminds/semver/v3" + "github.com/fatih/color" + "github.com/gin-gonic/gin" + "github.com/rocboss/paopao-ce/internal/conf" +) + +var ( + _ Service = (*pprofService)(nil) +) + +type pprofService struct { + *baseHttpService +} + +func (s *pprofService) Name() string { + return "PprofService" +} + +func (s *pprofService) Version() *semver.Version { + return semver.MustParse("v0.1.0") +} + +func (s *pprofService) OnInit() error { + s.registerRoute(s, func(*gin.Engine) {}) + return nil +} + +func (s *pprofService) String() string { + return fmt.Sprintf("listen on %s\n", color.GreenString("http://%s:%s", conf.PprofServerSetting.HttpIp, conf.PprofServerSetting.HttpPort)) +} + +func newPprofService() Service { + addr := conf.PprofServerSetting.HttpIp + ":" + conf.PprofServerSetting.HttpPort + // notice this step just to register pprof server to start. don't share server with pprof. + server := httpServers.from(addr, func() *httpServer { + engine := newWebEngine() + return &httpServer{ + baseServer: newBaseServe(), + e: engine, + server: &http.Server{ + Addr: addr, + Handler: http.DefaultServeMux, + }, + } + }) + return &pprofService{ + baseHttpService: &baseHttpService{ + server: server, + }, + } +} diff --git a/internal/service/service.go b/internal/service/service.go index 18c36951..ad248695 100644 --- a/internal/service/service.go +++ b/internal/service/service.go @@ -72,6 +72,9 @@ func newService() (ss []Service) { "Docs": func() { ss = append(ss, newDocsService()) }, + "Pprof": func() { + ss = append(ss, newPprofService()) + }, }) return } diff --git a/pkg/debug/pprof_embed.go b/pkg/debug/pprof_embed.go new file mode 100644 index 00000000..a2511e6b --- /dev/null +++ b/pkg/debug/pprof_embed.go @@ -0,0 +1,12 @@ +// Copyright 2023 ROC. All rights reserved. +// Use of this source code is governed by a MIT style +// license that can be found in the LICENSE file. + +//go:build pprof +// +build pprof + +package debug + +import ( + _ "net/http/pprof" +) From b6e9d633eab5f436fc5d5926c43da6bbdcfd1aff Mon Sep 17 00:00:00 2001 From: Michael Li Date: Thu, 29 Jun 2023 05:41:58 +0800 Subject: [PATCH 22/61] update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f56ce78..4b69d4bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ All notable changes to paopao-ce are documented in this file. ## 0.4.0+dev ([`dev`](https://github.com/rocboss/paopao-ce/tree/dev)) ### Added - add `pprof` feature support [#327](https://github.com/rocboss/paopao-ce/pull/327) +- use compiler profile-guided optimization (PGO) to further optimize builds. [#327](https://github.com/rocboss/paopao-ce/pull/327) ## 0.3.0 ### Added From de7198064de15cf5bb57a0b10bd16dd69e8bbbe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=97=E9=87=8E=20-=20Michael=20Li?= Date: Thu, 29 Jun 2023 05:52:02 +0800 Subject: [PATCH 23/61] =?UTF-8?q?Update=2023062906-=E5=85=B3=E4=BA=8E?= =?UTF-8?q?=E5=BC=80=E5=90=AFpgo=E7=BC=96=E8=AF=91=E4=BC=98=E5=8C=96.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/proposal/23062906-关于开启pgo编译优化.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/proposal/23062906-关于开启pgo编译优化.md b/docs/proposal/23062906-关于开启pgo编译优化.md index 4623c6a9..7622c3f4 100644 --- a/docs/proposal/23062906-关于开启pgo编译优化.md +++ b/docs/proposal/23062906-关于开启pgo编译优化.md @@ -11,7 +11,7 @@ Beginning in Go 1.20, the Go compiler supports profile-guided optimization ([PGO 1. 为什么要添加`pprof`功能特性? 使用 net/http/pprof 在线获取CPU profile信息,用于 [PGO](https://go.dev/doc/pgo) 编译优化。 -2. 如何开启`pgo`编译优化? +2. 如何开启`pgo`编译优化? The standard approach is to store a pprof CPU profile with filename default.pgo in the main package directory of the profiled binary, and build with go build -pgo=auto, which will pick up default.pgo files automatically. 3. 常见命令 From cf81364b48a2688b30a9b448dd5bb9717a57df66 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Thu, 29 Jun 2023 16:59:53 +0800 Subject: [PATCH 24/61] upgrade some dependent package version --- Makefile | 6 +- auto/rpc/v1/auth.pb.go | 2 +- docker-compose.yaml | 2 +- go.mod | 42 +++---- go.sum | 191 ++++++++------------------------ internal/servants/web/alipay.go | 4 +- internal/servants/web/priv.go | 2 +- internal/servants/web/pub.go | 2 +- internal/servants/web/utils.go | 2 +- 9 files changed, 78 insertions(+), 175 deletions(-) diff --git a/Makefile b/Makefile index 901927d8..8e0c1ff7 100644 --- a/Makefile +++ b/Makefile @@ -110,9 +110,9 @@ pre-commit: fmt .PHONY: install-protobuf-plugins install-protobuf-plugins: - @go install github.com/bufbuild/buf/cmd/buf@v1.18.0 - @go install github.com/bufbuild/buf/cmd/protoc-gen-buf-breaking@v1.18.0 - @go install github.com/bufbuild/buf/cmd/protoc-gen-buf-lint@v1.18.0 + @go install github.com/bufbuild/buf/cmd/buf@v1.22.0 + @go install github.com/bufbuild/buf/cmd/protoc-gen-buf-breaking@v1.22.0 + @go install github.com/bufbuild/buf/cmd/protoc-gen-buf-lint@v1.22.0 @go install google.golang.org/protobuf/cmd/protoc-gen-go@latest @go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest diff --git a/auto/rpc/v1/auth.pb.go b/auto/rpc/v1/auth.pb.go index e225ce74..9983b286 100644 --- a/auto/rpc/v1/auth.pb.go +++ b/auto/rpc/v1/auth.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.31.0 // protoc (unknown) // source: v1/auth.proto diff --git a/docker-compose.yaml b/docker-compose.yaml index a05250c9..d3b903d6 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -67,7 +67,7 @@ services: - paopao-network # meili: - # image: getmeili/meilisearch:v1.1 + # image: getmeili/meilisearch:v1.2 # restart: always # ports: # - 7700:7700 diff --git a/go.mod b/go.mod index d47c0e67..84ee87ea 100644 --- a/go.mod +++ b/go.mod @@ -9,9 +9,9 @@ require ( github.com/alimy/mir/engine/gin/v4 v4.0.0 github.com/alimy/mir/v4 v4.0.0-alpha.4 github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible - github.com/allegro/bigcache/v3 v3.0.2 + github.com/allegro/bigcache/v3 v3.1.0 github.com/bytedance/sonic v1.9.1 - github.com/cockroachdb/errors v1.9.1 + github.com/cockroachdb/errors v1.10.0 github.com/disintegration/imaging v1.6.2 github.com/fatih/color v1.15.0 github.com/getsentry/sentry-go v0.22.0 @@ -19,43 +19,43 @@ require ( github.com/gin-gonic/gin v1.9.1 github.com/go-resty/resty/v2 v2.7.0 github.com/goccy/go-json v0.10.2 - github.com/gofrs/uuid v4.4.0+incompatible + github.com/gofrs/uuid/v5 v5.0.0 github.com/golang-jwt/jwt/v4 v4.5.0 github.com/golang-migrate/migrate/v4 v4.15.2 github.com/huaweicloud/huaweicloud-sdk-go-obs v3.23.4+incompatible github.com/json-iterator/go v1.1.12 - github.com/meilisearch/meilisearch-go v0.24.0 - github.com/minio/minio-go/v7 v7.0.58 + github.com/meilisearch/meilisearch-go v0.25.0 + github.com/minio/minio-go/v7 v7.0.59 github.com/onsi/ginkgo/v2 v2.11.0 github.com/onsi/gomega v1.27.8 github.com/pyroscope-io/client v0.7.1 github.com/redis/rueidis v1.0.10 - github.com/sirupsen/logrus v1.9.2 - github.com/smartwalle/alipay/v3 v3.2.3 + github.com/sirupsen/logrus v1.9.3 + github.com/smartwalle/alipay/v3 v3.2.14 github.com/sourcegraph/conc v0.3.0 - github.com/spf13/viper v1.15.0 + github.com/spf13/viper v1.16.0 github.com/tencentyun/cos-go-sdk-v5 v0.7.41 github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc go.uber.org/automaxprocs v1.5.2 - google.golang.org/grpc v1.55.0 - google.golang.org/protobuf v1.30.0 + google.golang.org/grpc v1.56.1 + google.golang.org/protobuf v1.31.0 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/resty.v1 v1.12.0 gorm.io/driver/mysql v1.5.1 gorm.io/driver/postgres v1.5.2 - gorm.io/driver/sqlite v1.4.4 - gorm.io/gorm v1.25.1 + gorm.io/driver/sqlite v1.5.2 + gorm.io/gorm v1.25.2 gorm.io/plugin/dbresolver v1.4.1 gorm.io/plugin/soft_delete v1.2.1 - modernc.org/sqlite v1.22.1 + modernc.org/sqlite v1.23.1 ) require ( github.com/andybalholm/brotli v1.0.5 // indirect github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect github.com/clbanning/mxj v1.8.4 // indirect - github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f // indirect - github.com/cockroachdb/redact v1.1.3 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/redact v1.1.5 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect @@ -93,7 +93,7 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.19 // indirect - github.com/mattn/go-sqlite3 v1.14.16 // indirect + github.com/mattn/go-sqlite3 v1.14.17 // indirect github.com/minio/md5-simd v1.1.2 // indirect github.com/minio/sha256-simd v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -106,9 +106,11 @@ require ( github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rogpeppe/go-internal v1.9.0 // indirect github.com/rs/xid v1.5.0 // indirect - github.com/smartwalle/ncrypto v1.0.0 // indirect - github.com/spf13/afero v1.9.3 // indirect - github.com/spf13/cast v1.5.0 // indirect + github.com/smartwalle/ncrypto v1.0.2 // indirect + github.com/smartwalle/ngx v1.0.6 // indirect + github.com/smartwalle/nsign v1.0.8 // indirect + github.com/spf13/afero v1.9.5 // indirect + github.com/spf13/cast v1.5.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/subosito/gotenv v1.4.2 // indirect @@ -126,7 +128,7 @@ require ( golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.9.3 // indirect - google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect + google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect lukechampine.com/uint128 v1.2.0 // indirect diff --git a/go.sum b/go.sum index 733fd85c..0e4ba506 100644 --- a/go.sum +++ b/go.sum @@ -54,7 +54,6 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= -github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-storage-blob-go v0.14.0/go.mod h1:SMqIBi+SuiQH32bvyjngEewEeXoPfKMgWlBDaYf6fck= @@ -79,9 +78,6 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBp github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ClickHouse/clickhouse-go v1.4.3/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= -github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= -github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= -github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= @@ -116,11 +112,9 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM= -github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868 h1:uFrPOl1VBt/Abfl2z+A/DFc+AwmFLxEHR1+Yq6cXvww= github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868/go.mod h1:srphKZ1i+yGXxl/LpBS7ZIECTjCTPzZzAMtJWoG3sLo= -github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -137,8 +131,8 @@ github.com/alimy/mir/v4 v4.0.0-alpha.4 h1:UKYwkvYnGo/5wr5pMwy+n2MW1+K8b4btCfdhTQ github.com/alimy/mir/v4 v4.0.0-alpha.4/go.mod h1:X09f2IOQ4NTyJFKJ10S+J7Jk988T5IvvprwTijQZAsg= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= -github.com/allegro/bigcache/v3 v3.0.2 h1:AKZCw+5eAaVyNTBmI2fgyPVJhHkdWder3O9IrprcQfI= -github.com/allegro/bigcache/v3 v3.0.2/go.mod h1:aPyh7jEvrog9zAwx5N7+JUQX5dZTSGpxF1LAR4dr35I= +github.com/allegro/bigcache/v3 v3.1.0 h1:H2Vp8VOvxcrB91o86fUSVJFqeuz8kpyyB02eH3bSzwk= +github.com/allegro/bigcache/v3 v3.1.0/go.mod h1:aPyh7jEvrog9zAwx5N7+JUQX5dZTSGpxF1LAR4dr35I= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= @@ -178,7 +172,6 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.6.1/go.mod h1:hLZ/AnkIKHLuPGjEiyghNE github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21TfrhJ8AEMzVybRNSb/b4g= github.com/aws/smithy-go v1.7.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= -github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -245,16 +238,14 @@ github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMe github.com/cockroachdb/cockroach-go/v2 v2.1.1/go.mod h1:7NtUnP6eK+l6k483WSYNrq3Kb23bWV10IRV1TyeSpwM= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= -github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= -github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= -github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= +github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= +github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= -github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f h1:6jduT9Hfc0njg5jJ1DdKCFPdMBrp/mdZfCpa5h+WM74= -github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= -github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= @@ -355,7 +346,6 @@ github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= @@ -371,7 +361,6 @@ github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+ github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= @@ -389,10 +378,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denisenkom/go-mssqldb v0.10.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= -github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dhui/dktest v0.3.10 h1:0frpeeoM9pHouHjhLeZDuDTJ0PqjDTrycaHaMmkJAo8= github.com/dhui/dktest v0.3.10/go.mod h1:h5Enh0nG3Qbo9WjNFRrwmKUaePEBhXMOygbz3Ww7Sz0= @@ -425,7 +412,6 @@ github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25Kn github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= @@ -440,14 +426,11 @@ github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go. github.com/envoyproxy/go-control-plane v0.10.1/go.mod h1:AY7fTTXNdv/aJ2O5jwpxAPOWUZ7hQAEvzN5Pf27BkQQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.6.2/go.mod h1:2t7qjJNvHPx8IjnBOzl9E9/baC+qXE/TeeyBRzgJDws= -github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= -github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= @@ -455,7 +438,7 @@ github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoD github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.5+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= @@ -467,24 +450,18 @@ github.com/gabriel-vasile/mimetype v1.4.0/go.mod h1:fA8fi6KUiG7MgQQ+mEWotXoEOvmx github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= -github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= -github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= github.com/getsentry/sentry-go v0.22.0 h1:XNX9zKbv7baSEI65l+H1GEJgSeIC1c7EN5kluWaP6dM= github.com/getsentry/sentry-go v0.22.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= -github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= -github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= @@ -511,7 +488,6 @@ github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= @@ -573,9 +549,6 @@ github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWe github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= @@ -588,22 +561,17 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= -github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gofrs/uuid/v5 v5.0.0 h1:p544++a97kEL+svbcFbCQVM9KFu0Yo25UoISXGNNH9M= +github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= -github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= -github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.1.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= @@ -653,7 +621,6 @@ github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8l github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= @@ -724,7 +691,6 @@ github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -753,7 +719,6 @@ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerX github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -766,7 +731,6 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huaweicloud/huaweicloud-sdk-go-obs v3.23.4+incompatible h1:XRAk4HBDLCYEdPLWtKf5iZhOi7lfx17aY0oSO9+mcg8= github.com/huaweicloud/huaweicloud-sdk-go-obs v3.23.4+incompatible/go.mod h1:l7VUhRbTKCzdOacdT4oWCwATKyvZqUOlOqr0Ous3k4s= -github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -775,14 +739,8 @@ github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= -github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= -github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= -github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= -github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= -github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= @@ -855,7 +813,6 @@ github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFF github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -872,20 +829,13 @@ github.com/k0kubun/pp v2.3.0+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3t github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= -github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= -github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= -github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= -github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= @@ -895,7 +845,6 @@ github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47e github.com/klauspost/compress v1.15.6/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= @@ -918,8 +867,6 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/ktrysmt/go-bitbucket v0.6.4/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4= -github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= -github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= @@ -952,8 +899,6 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E= @@ -976,23 +921,19 @@ github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOq github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.10/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= -github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= -github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= -github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM= +github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= -github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= -github.com/meilisearch/meilisearch-go v0.24.0 h1:GTP8LWZmkMYrGgX5BRZdkC2Txyp0mFYLzXYMlVV7cSQ= -github.com/meilisearch/meilisearch-go v0.24.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= -github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= +github.com/meilisearch/meilisearch-go v0.25.0 h1:xIp+8YWterHuDvpdYlwQ4Qp7im3JlRHmSKiP0NvjyXs= +github.com/meilisearch/meilisearch-go v0.25.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.58 h1:B9/8Az8Om/2kX8Ys2ai2PZbBTokRE5W6P5OaqnAs6po= -github.com/minio/minio-go/v7 v7.0.58/go.mod h1:NUDy4A4oXPq1l2yK6LTSvCEzAMeIcoz9lcj5dbzSrRE= +github.com/minio/minio-go/v7 v7.0.59 h1:lxIXwsTIcQkYoEG25rUJbzpmSB/oWeVDmxFo/uWUUsw= +github.com/minio/minio-go/v7 v7.0.59/go.mod h1:NUDy4A4oXPq1l2yK6LTSvCEzAMeIcoz9lcj5dbzSrRE= github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= @@ -1031,7 +972,6 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60= github.com/mozillazg/go-httpheader v0.3.1 h1:IRP+HFrMX2SlwY9riuio7raffXUpzAosHtZu25BSJok= github.com/mozillazg/go-httpheader v0.3.1/go.mod h1:PuT8h0pw6efvp8ZeUec1Rs7dwjK08bt6gKSReGMqtdA= @@ -1043,10 +983,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8/go.mod h1:86wM1zFnC6/uDBfZGNwB65O+pR2OFi5q/YQaEUid1qA= -github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= github.com/neo4j/neo4j-go-driver v1.8.1-0.20200803113522-b626aa943eba/go.mod h1:ncO5VaFWh0Nrt+4KT4mOZboaczBZcLuHrG+/sUeP8gI= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= @@ -1123,7 +1059,6 @@ github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.8/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= -github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/browser v0.0.0-20210706143420-7d21f8c997e2/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -1189,7 +1124,6 @@ github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= @@ -1197,21 +1131,17 @@ github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= @@ -1225,12 +1155,16 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y= -github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartwalle/alipay/v3 v3.2.3 h1:X7HVDcIJ7+2pV29fySEG4BMF1ocFPAV/aE4OZpX+LnA= -github.com/smartwalle/alipay/v3 v3.2.3/go.mod h1:AtAg7UMCxuqG61WcEv5DJTkyF2qI+iw75kZvxbEqINQ= -github.com/smartwalle/ncrypto v1.0.0 h1:nQFxIS3fRgr8V0xRkhnfNQOrcJGPNF6d5XzFwVm79KU= -github.com/smartwalle/ncrypto v1.0.0/go.mod h1:NmCbG0nLnSDnMImEDrjptFKs0PiLThnFkjQSMtGYgs4= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/smartwalle/alipay/v3 v3.2.14 h1:X7IPMzweYXjxO+30G9amEjCogzpoA/K1GZpVjM1keps= +github.com/smartwalle/alipay/v3 v3.2.14/go.mod h1:niTNB609KyUYuAx9Bex/MawEjv2yPx4XOjxSAkqmGjE= +github.com/smartwalle/ncrypto v1.0.2 h1:pTAhCqtPCMhpOwFXX+EcMdR6PNzruBNoGQrN2S1GbGI= +github.com/smartwalle/ncrypto v1.0.2/go.mod h1:Dwlp6sfeNaPMnOxMNayMTacvC5JGEVln3CVdiVDgbBk= +github.com/smartwalle/ngx v1.0.6 h1:JPNqNOIj+2nxxFtrSkJO+vKJfeNUSEQueck/Wworjps= +github.com/smartwalle/ngx v1.0.6/go.mod h1:mx/nz2Pk5j+RBs7t6u6k22MPiBG/8CtOMpCnALIG8Y0= +github.com/smartwalle/nsign v1.0.8 h1:78KWtwKPrdt4Xsn+tNEBVxaTLIJBX9YRX0ZSrMUeuHo= +github.com/smartwalle/nsign v1.0.8/go.mod h1:eY6I4CJlyNdVMP+t6z1H6Jpd4m5/V+8xi44ufSTxXgc= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= @@ -1244,14 +1178,13 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= -github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= +github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= -github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= +github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= +github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= @@ -1263,11 +1196,10 @@ github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= -github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= +github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= +github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1308,10 +1240,7 @@ github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9 github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= @@ -1319,16 +1248,11 @@ github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I= github.com/valyala/fasthttp v1.40.0 h1:CRq/00MfruPGFLTQKY8b+8SfdK60TxNztjRMnH0t1Yc= github.com/valyala/fasthttp v1.40.0/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= @@ -1347,16 +1271,11 @@ github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6 github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc h1:7VHQaaNwHymWbj8lAcXMYX1qopebSBHwYC3ceXLWONU= github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc/go.mod h1:Pcc297eVCbkDBBVq8FbnI+qDUeIMrHy4Bo7nveAuCAs= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= -github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= -github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1433,7 +1352,6 @@ golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= @@ -1445,7 +1363,6 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -1457,8 +1374,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1527,7 +1444,6 @@ golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190225153610-fe579d43d832/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1576,7 +1492,6 @@ golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -1624,7 +1539,6 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1731,15 +1645,12 @@ golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1771,7 +1682,6 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220224211638-0e9765cccd65/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1782,14 +1692,12 @@ golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1914,7 +1822,6 @@ google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= -google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1987,10 +1894,9 @@ google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ6 google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220111164026-67b88f271998/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= 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.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -2023,8 +1929,8 @@ google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9K google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= -google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ= +google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -2040,8 +1946,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= 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 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= 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= @@ -2055,15 +1961,11 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= -gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= @@ -2083,7 +1985,6 @@ gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -2096,17 +1997,17 @@ gorm.io/driver/postgres v1.0.8/go.mod h1:4eOzrI1MUfm6ObJU/UcmbXyiHSs8jSwH95G5P5d gorm.io/driver/postgres v1.5.2 h1:ytTDxxEv+MplXOfFe3Lzm7SjG09fcdb3Z/c056DTBx0= gorm.io/driver/postgres v1.5.2/go.mod h1:fmpX0m2I1PKuR7mKZiEluwrP3hbs+ps7JIGMUBpCgl8= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= -gorm.io/driver/sqlite v1.4.4 h1:gIufGoR0dQzjkyqDyYSCvsYR6fba1Gw5YKDqKeChxFc= -gorm.io/driver/sqlite v1.4.4/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI= +gorm.io/driver/sqlite v1.5.2 h1:TpQ+/dqCY4uCigCFyrfnrJnrW9zjpelWVoEVNy5qJkc= +gorm.io/driver/sqlite v1.5.2/go.mod h1:qxAuCol+2r6PannQDpOP1FP6ag3mKi4esLnB/jHed+4= gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.20.12/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.21.4/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= -gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= -gorm.io/gorm v1.25.1 h1:nsSALe5Pr+cM3V1qwwQ7rOkw+6UeLrX5O4v3llhHa64= gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.25.2 h1:gs1o6Vsa+oVKG/a9ElL3XgyGfghFfkKA2SInQaCyMho= +gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk= gorm.io/plugin/dbresolver v1.4.1/go.mod h1:CTbCtMWhsjXSiJqiW2R8POvJ2cq18RVOl4WGyT5nhNc= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= @@ -2201,8 +2102,8 @@ modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/ql v1.0.0/go.mod h1:xGVyrLIatPcO2C1JvI/Co8c0sr6y91HKFNy4pt9JXEY= modernc.org/sortutil v1.1.0/go.mod h1:ZyL98OQHJgH9IEfN71VsamvJgrtRX9Dj2gX+vH86L1k= modernc.org/sqlite v1.10.6/go.mod h1:Z9FEjUtZP4qFEg6/SiADg9XCER7aYy9a/j7Pg9P7CPs= -modernc.org/sqlite v1.22.1 h1:P2+Dhp5FR1RlVRkQ3dDfCiv3Ok8XPxqpe70IjYVA9oE= -modernc.org/sqlite v1.22.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk= +modernc.org/sqlite v1.23.1 h1:nrSBg4aRQQwq59JpvGEQ15tNxoO5pX/kUjcRNwSAGQM= +modernc.org/sqlite v1.23.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk= modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= diff --git a/internal/servants/web/alipay.go b/internal/servants/web/alipay.go index 9c7c11c5..a84a9bd9 100644 --- a/internal/servants/web/alipay.go +++ b/internal/servants/web/alipay.go @@ -91,12 +91,12 @@ func (s *alipayPrivSrv) UserRechargeLink(req *web.UserRechargeLinkReq) (*web.Use logrus.Errorf("client.TradePreCreate err: %v\n", err) return nil, web.ErrRechargeReqFail } - if rsp.Content.Code != alipay.CodeSuccess { + if rsp.Code != alipay.CodeSuccess { return nil, web.ErrRechargeReqFail } return &web.UserRechargeLinkResp{ Id: recharge.ID, - Pay: rsp.Content.QRCode, + Pay: rsp.QRCode, }, nil } diff --git a/internal/servants/web/priv.go b/internal/servants/web/priv.go index aae8f2c9..93f52f34 100644 --- a/internal/servants/web/priv.go +++ b/internal/servants/web/priv.go @@ -12,7 +12,7 @@ import ( "github.com/alimy/mir/v4" "github.com/disintegration/imaging" "github.com/gin-gonic/gin" - "github.com/gofrs/uuid" + "github.com/gofrs/uuid/v5" api "github.com/rocboss/paopao-ce/auto/api/v1" "github.com/rocboss/paopao-ce/internal/conf" "github.com/rocboss/paopao-ce/internal/core" diff --git a/internal/servants/web/pub.go b/internal/servants/web/pub.go index b91851bc..d34f074f 100644 --- a/internal/servants/web/pub.go +++ b/internal/servants/web/pub.go @@ -15,7 +15,7 @@ import ( "github.com/afocus/captcha" "github.com/alimy/mir/v4" - "github.com/gofrs/uuid" + "github.com/gofrs/uuid/v5" api "github.com/rocboss/paopao-ce/auto/api/v1" "github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/model/web" diff --git a/internal/servants/web/utils.go b/internal/servants/web/utils.go index 8bbfc06e..b54fbd50 100644 --- a/internal/servants/web/utils.go +++ b/internal/servants/web/utils.go @@ -12,7 +12,7 @@ import ( "unicode/utf8" "github.com/alimy/mir/v4" - "github.com/gofrs/uuid" + "github.com/gofrs/uuid/v5" "github.com/rocboss/paopao-ce/internal/core" "github.com/rocboss/paopao-ce/internal/model/web" "github.com/rocboss/paopao-ce/pkg/utils" From f1e5f43609630fb01759d1a360ca71dd457bc2f6 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Fri, 30 Jun 2023 09:36:11 +0800 Subject: [PATCH 25/61] upgrade github.com/alimy/mir/v4 => v4.0.0-alpha.5 --- auto/api/m/v1/user.go | 1 - auto/api/r/v1/user.go | 1 - auto/api/s/v1/user.go | 1 - auto/api/v1/admin.go | 14 -------------- auto/api/v1/alipay_priv.go | 3 --- auto/api/v1/alipay_pub.go | 14 +++++++++++++- auto/api/v1/core.go | 16 ---------------- auto/api/v1/followship.go | 4 ---- auto/api/v1/friendship.go | 5 ----- auto/api/v1/loose.go | 5 ----- auto/api/v1/priv.go | 21 --------------------- auto/api/v1/pub.go | 4 ---- auto/api/x/v1/user.go | 1 - go.mod | 4 ++-- go.sum | 8 ++++---- 15 files changed, 19 insertions(+), 83 deletions(-) diff --git a/auto/api/m/v1/user.go b/auto/api/m/v1/user.go index d9fe36c9..8918a199 100644 --- a/auto/api/m/v1/user.go +++ b/auto/api/m/v1/user.go @@ -84,7 +84,6 @@ func RegisterUserServant(e *gin.Engine, s User) { return default: } - req := new(LoginReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) diff --git a/auto/api/r/v1/user.go b/auto/api/r/v1/user.go index d5dce055..e7f98082 100644 --- a/auto/api/r/v1/user.go +++ b/auto/api/r/v1/user.go @@ -84,7 +84,6 @@ func RegisterUserServant(e *gin.Engine, s User) { return default: } - req := new(LoginReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) diff --git a/auto/api/s/v1/user.go b/auto/api/s/v1/user.go index 061fa293..c0b7dae3 100644 --- a/auto/api/s/v1/user.go +++ b/auto/api/s/v1/user.go @@ -79,7 +79,6 @@ func RegisterUserServant(e *gin.Engine, s User) { return default: } - req := new(LoginReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) diff --git a/auto/api/v1/admin.go b/auto/api/v1/admin.go index 2b2e2c4a..4e5658a0 100644 --- a/auto/api/v1/admin.go +++ b/auto/api/v1/admin.go @@ -12,19 +12,6 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" ) -type _binding_ interface { - Bind(*gin.Context) mir.Error -} - -type _render_ interface { - Render(*gin.Context) -} - -type _default_ interface { - Bind(*gin.Context, any) mir.Error - Render(*gin.Context, any, mir.Error) -} - type Admin interface { _default_ @@ -50,7 +37,6 @@ func RegisterAdminServant(e *gin.Engine, s Admin) { return default: } - req := new(web.ChangeUserStatusReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) diff --git a/auto/api/v1/alipay_priv.go b/auto/api/v1/alipay_priv.go index d4b1e534..02500522 100644 --- a/auto/api/v1/alipay_priv.go +++ b/auto/api/v1/alipay_priv.go @@ -39,7 +39,6 @@ func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv) { return default: } - req := new(web.UserWalletBillsReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -55,7 +54,6 @@ func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv) { return default: } - req := new(web.UserRechargeResultReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -71,7 +69,6 @@ func RegisterAlipayPrivServant(e *gin.Engine, s AlipayPriv) { return default: } - req := new(web.UserRechargeLinkReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { diff --git a/auto/api/v1/alipay_pub.go b/auto/api/v1/alipay_pub.go index abe85bee..10e067ad 100644 --- a/auto/api/v1/alipay_pub.go +++ b/auto/api/v1/alipay_pub.go @@ -12,6 +12,19 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" ) +type _binding_ interface { + Bind(*gin.Context) mir.Error +} + +type _render_ interface { + Render(*gin.Context) +} + +type _default_ interface { + Bind(*gin.Context, any) mir.Error + Render(*gin.Context, any, mir.Error) +} + type AlipayPub interface { _default_ @@ -31,7 +44,6 @@ func RegisterAlipayPubServant(e *gin.Engine, s AlipayPub) { return default: } - req := new(web.AlipayNotifyReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { diff --git a/auto/api/v1/core.go b/auto/api/v1/core.go index e34cc058..159e938f 100644 --- a/auto/api/v1/core.go +++ b/auto/api/v1/core.go @@ -52,7 +52,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.TweetCollectionStatusReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -68,7 +67,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.TweetStarStatusReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -84,7 +82,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.SuggestTagsReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -100,7 +97,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.SuggestUsersReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -116,7 +112,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.ChangeAvatarReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -130,7 +125,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.ChangeNicknameReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -144,7 +138,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.ChangePasswordReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -158,7 +151,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.UserPhoneBindReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -172,7 +164,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.GetStarsReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -188,7 +179,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.GetCollectionsReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -204,7 +194,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.SendWhisperReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -218,7 +207,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.ReadMessageReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -232,7 +220,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.GetMessagesReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -248,7 +235,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.GetUnreadMsgCountReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -263,7 +249,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.UserInfoReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -279,7 +264,6 @@ func RegisterCoreServant(e *gin.Engine, s Core) { return default: } - req := new(web.SyncSearchIndexReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) diff --git a/auto/api/v1/followship.go b/auto/api/v1/followship.go index 34f4a8a8..fa6c0f8b 100644 --- a/auto/api/v1/followship.go +++ b/auto/api/v1/followship.go @@ -40,7 +40,6 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship) { return default: } - req := new(web.ListFollowersReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -55,7 +54,6 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship) { return default: } - req := new(web.ListFollowingsReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -70,7 +68,6 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship) { return default: } - req := new(web.DeleteFollowingReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -84,7 +81,6 @@ func RegisterFollowshipServant(e *gin.Engine, s Followship) { return default: } - req := new(web.AddFollowingReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) diff --git a/auto/api/v1/friendship.go b/auto/api/v1/friendship.go index dc29ee26..e6e912fe 100644 --- a/auto/api/v1/friendship.go +++ b/auto/api/v1/friendship.go @@ -41,7 +41,6 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship) { return default: } - req := new(web.GetContactsReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -56,7 +55,6 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship) { return default: } - req := new(web.DeleteFriendReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -70,7 +68,6 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship) { return default: } - req := new(web.RejectFriendReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -84,7 +81,6 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship) { return default: } - req := new(web.AddFriendReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -98,7 +94,6 @@ func RegisterFriendshipServant(e *gin.Engine, s Friendship) { return default: } - req := new(web.RequestingFriendReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) diff --git a/auto/api/v1/loose.go b/auto/api/v1/loose.go index 94a07f88..4c9f9c6f 100644 --- a/auto/api/v1/loose.go +++ b/auto/api/v1/loose.go @@ -41,7 +41,6 @@ func RegisterLooseServant(e *gin.Engine, s Loose) { return default: } - req := new(web.TweetCommentsReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -56,7 +55,6 @@ func RegisterLooseServant(e *gin.Engine, s Loose) { return default: } - req := new(web.TopicListReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -71,7 +69,6 @@ func RegisterLooseServant(e *gin.Engine, s Loose) { return default: } - req := new(web.GetUserProfileReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -86,7 +83,6 @@ func RegisterLooseServant(e *gin.Engine, s Loose) { return default: } - req := new(web.GetUserTweetsReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -101,7 +97,6 @@ func RegisterLooseServant(e *gin.Engine, s Loose) { return default: } - req := new(web.TimelineReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { diff --git a/auto/api/v1/priv.go b/auto/api/v1/priv.go index 633b7299..d0254345 100644 --- a/auto/api/v1/priv.go +++ b/auto/api/v1/priv.go @@ -57,7 +57,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.UnfollowTopicReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -71,7 +70,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.FollowTopicReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -85,7 +83,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.StickTopicReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -100,7 +97,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.TweetReplyThumbsReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -114,7 +110,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.TweetReplyThumbsReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -128,7 +123,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.TweetCommentThumbsReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -142,7 +136,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.TweetCommentThumbsReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -156,7 +149,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.DeleteCommentReplyReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -170,7 +162,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.CreateCommentReplyReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -186,7 +177,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.DeleteCommentReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -200,7 +190,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.CreateCommentReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -216,7 +205,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.VisibleTweetReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -231,7 +219,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.StickTweetReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -246,7 +233,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.LockTweetReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -261,7 +247,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.CollectionTweetReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -276,7 +261,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.StarTweetReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -291,7 +275,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.DeleteTweetReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -305,7 +288,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.CreateTweetReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -321,7 +303,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.DownloadAttachmentReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -337,7 +318,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.DownloadAttachmentPrecheckReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { @@ -353,7 +333,6 @@ func RegisterPrivServant(e *gin.Engine, s Priv) { return default: } - req := new(web.UploadAttachmentReq) var bv _binding_ = req if err := bv.Bind(c); err != nil { diff --git a/auto/api/v1/pub.go b/auto/api/v1/pub.go index ae2f8367..850a7906 100644 --- a/auto/api/v1/pub.go +++ b/auto/api/v1/pub.go @@ -36,7 +36,6 @@ func RegisterPubServant(e *gin.Engine, s Pub) { return default: } - req := new(web.TweetDetailReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -51,7 +50,6 @@ func RegisterPubServant(e *gin.Engine, s Pub) { return default: } - req := new(web.SendCaptchaReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -75,7 +73,6 @@ func RegisterPubServant(e *gin.Engine, s Pub) { return default: } - req := new(web.RegisterReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) @@ -90,7 +87,6 @@ func RegisterPubServant(e *gin.Engine, s Pub) { return default: } - req := new(web.LoginReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) diff --git a/auto/api/x/v1/user.go b/auto/api/x/v1/user.go index 1ec46b0d..9de31b49 100644 --- a/auto/api/x/v1/user.go +++ b/auto/api/x/v1/user.go @@ -84,7 +84,6 @@ func RegisterUserServant(e *gin.Engine, s User) { return default: } - req := new(LoginReq) if err := s.Bind(c, req); err != nil { s.Render(c, nil, err) diff --git a/go.mod b/go.mod index 84ee87ea..aeed41e7 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,8 @@ require ( github.com/Masterminds/semver/v3 v3.2.1 github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868 github.com/alimy/cfg v0.3.0 - github.com/alimy/mir/engine/gin/v4 v4.0.0 - github.com/alimy/mir/v4 v4.0.0-alpha.4 + github.com/alimy/mir/engine/gin/v4 v4.0.0-alpha.5 + github.com/alimy/mir/v4 v4.0.0-alpha.5 github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/allegro/bigcache/v3 v3.1.0 github.com/bytedance/sonic v1.9.1 diff --git a/go.sum b/go.sum index 0e4ba506..710dea0c 100644 --- a/go.sum +++ b/go.sum @@ -125,10 +125,10 @@ github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:C github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= github.com/alimy/cfg v0.3.0 h1:9xgA0QWVCPSq9fFNRcYahVCAX22IL9ts2wrTQPfAStY= github.com/alimy/cfg v0.3.0/go.mod h1:rOxbasTH2srl6StAjNF5Vyi8bfrdkl3fLGmOYtSw81c= -github.com/alimy/mir/engine/gin/v4 v4.0.0 h1:N3nvpniFLW2z1WxU26gHw1FKx+/G+B/5cllOjOTjsWI= -github.com/alimy/mir/engine/gin/v4 v4.0.0/go.mod h1:M28AJQ5h1CEA+m2s6acuVjGXI8ElLNDA5IKtSdWI48k= -github.com/alimy/mir/v4 v4.0.0-alpha.4 h1:UKYwkvYnGo/5wr5pMwy+n2MW1+K8b4btCfdhTQhQB1A= -github.com/alimy/mir/v4 v4.0.0-alpha.4/go.mod h1:X09f2IOQ4NTyJFKJ10S+J7Jk988T5IvvprwTijQZAsg= +github.com/alimy/mir/engine/gin/v4 v4.0.0-alpha.5 h1:VcsxrgQthRHZiBgKhQwl6jcx8RUhrrLr0KYY67tCvtI= +github.com/alimy/mir/engine/gin/v4 v4.0.0-alpha.5/go.mod h1:QGiJqcbwlCOC86hoIr7TS8QJvtn1+AvKwlV7FFioqb8= +github.com/alimy/mir/v4 v4.0.0-alpha.5 h1:su6Qu57VYGFKi1V0+4kWKhn3Wq1DuDz9Wl82h+IQc0c= +github.com/alimy/mir/v4 v4.0.0-alpha.5/go.mod h1:X09f2IOQ4NTyJFKJ10S+J7Jk988T5IvvprwTijQZAsg= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/allegro/bigcache/v3 v3.1.0 h1:H2Vp8VOvxcrB91o86fUSVJFqeuz8kpyyB02eH3bSzwk= From 7b8239457b31c2c83c71b907230781a0efc920a4 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Fri, 30 Jun 2023 10:56:06 +0800 Subject: [PATCH 26/61] upgrade github.com/alimy/mir/v4 => v4.0.0-alpha.6 --- auto/api/v1/alipay_priv.go | 13 +++++++++++++ auto/api/v1/alipay_pub.go | 13 ------------- go.mod | 3 +-- go.sum | 6 ++---- mirc/gen.go | 3 ++- 5 files changed, 18 insertions(+), 20 deletions(-) diff --git a/auto/api/v1/alipay_priv.go b/auto/api/v1/alipay_priv.go index 02500522..6028607d 100644 --- a/auto/api/v1/alipay_priv.go +++ b/auto/api/v1/alipay_priv.go @@ -12,6 +12,19 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" ) +type _binding_ interface { + Bind(*gin.Context) mir.Error +} + +type _render_ interface { + Render(*gin.Context) +} + +type _default_ interface { + Bind(*gin.Context, any) mir.Error + Render(*gin.Context, any, mir.Error) +} + type AlipayPriv interface { _default_ diff --git a/auto/api/v1/alipay_pub.go b/auto/api/v1/alipay_pub.go index 10e067ad..b31172ad 100644 --- a/auto/api/v1/alipay_pub.go +++ b/auto/api/v1/alipay_pub.go @@ -12,19 +12,6 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" ) -type _binding_ interface { - Bind(*gin.Context) mir.Error -} - -type _render_ interface { - Render(*gin.Context) -} - -type _default_ interface { - Bind(*gin.Context, any) mir.Error - Render(*gin.Context, any, mir.Error) -} - type AlipayPub interface { _default_ diff --git a/go.mod b/go.mod index aeed41e7..1370454c 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,7 @@ require ( github.com/Masterminds/semver/v3 v3.2.1 github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868 github.com/alimy/cfg v0.3.0 - github.com/alimy/mir/engine/gin/v4 v4.0.0-alpha.5 - github.com/alimy/mir/v4 v4.0.0-alpha.5 + github.com/alimy/mir/v4 v4.0.0-alpha.6 github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/allegro/bigcache/v3 v3.1.0 github.com/bytedance/sonic v1.9.1 diff --git a/go.sum b/go.sum index 710dea0c..8508b359 100644 --- a/go.sum +++ b/go.sum @@ -125,10 +125,8 @@ github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:C github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= github.com/alimy/cfg v0.3.0 h1:9xgA0QWVCPSq9fFNRcYahVCAX22IL9ts2wrTQPfAStY= github.com/alimy/cfg v0.3.0/go.mod h1:rOxbasTH2srl6StAjNF5Vyi8bfrdkl3fLGmOYtSw81c= -github.com/alimy/mir/engine/gin/v4 v4.0.0-alpha.5 h1:VcsxrgQthRHZiBgKhQwl6jcx8RUhrrLr0KYY67tCvtI= -github.com/alimy/mir/engine/gin/v4 v4.0.0-alpha.5/go.mod h1:QGiJqcbwlCOC86hoIr7TS8QJvtn1+AvKwlV7FFioqb8= -github.com/alimy/mir/v4 v4.0.0-alpha.5 h1:su6Qu57VYGFKi1V0+4kWKhn3Wq1DuDz9Wl82h+IQc0c= -github.com/alimy/mir/v4 v4.0.0-alpha.5/go.mod h1:X09f2IOQ4NTyJFKJ10S+J7Jk988T5IvvprwTijQZAsg= +github.com/alimy/mir/v4 v4.0.0-alpha.6 h1:bCFZ0HwFlT3Gsk5TgRGRyI4Xc/BCMR2VvuNghnTTHC0= +github.com/alimy/mir/v4 v4.0.0-alpha.6/go.mod h1:d58dBvw2KImcVbAUANrciEV/of0arMNsI9c/5UNCMMc= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/allegro/bigcache/v3 v3.1.0 h1:H2Vp8VOvxcrB91o86fUSVJFqeuz8kpyyB02eH3bSzwk= diff --git a/mirc/gen.go b/mirc/gen.go index 5c0b76c6..69e9933d 100644 --- a/mirc/gen.go +++ b/mirc/gen.go @@ -12,8 +12,8 @@ import ( . "github.com/alimy/mir/v4/core" . "github.com/alimy/mir/v4/engine" + "github.com/gin-gonic/gin" - _ "github.com/alimy/mir/engine/gin/v4" _ "github.com/rocboss/paopao-ce/mirc/admin/v1" _ "github.com/rocboss/paopao-ce/mirc/bot/v1" _ "github.com/rocboss/paopao-ce/mirc/localoss/v1" @@ -26,6 +26,7 @@ func main() { log.Println("generate code start") opts := Options{ RunMode(InSerialMode), + AssertType[*gin.Context](), GeneratorName(GeneratorGin), WatchCtxDone(true), SinkPath("../auto"), From 7b8e6f292f93b7d60b39691abb548f1873e523ec Mon Sep 17 00:00:00 2001 From: Michael Li Date: Fri, 30 Jun 2023 14:18:18 +0800 Subject: [PATCH 27/61] upgrade github.com/alimy/mir/v4 => v4.0.0-alpha.7 --- auto/api/v1/admin.go | 13 +++++++++++++ auto/api/v1/alipay_priv.go | 13 ------------- go.mod | 2 +- go.sum | 4 ++-- mirc/web/v1/admin.go | 2 +- mirc/web/v1/core.go | 2 +- mirc/web/v1/followship.go | 2 +- mirc/web/v1/friendship.go | 2 +- mirc/web/v1/loose.go | 2 +- mirc/web/v1/priv.go | 2 +- mirc/web/v1/pub.go | 2 +- 11 files changed, 23 insertions(+), 23 deletions(-) diff --git a/auto/api/v1/admin.go b/auto/api/v1/admin.go index 4e5658a0..ad4ac308 100644 --- a/auto/api/v1/admin.go +++ b/auto/api/v1/admin.go @@ -12,6 +12,19 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" ) +type _binding_ interface { + Bind(*gin.Context) mir.Error +} + +type _render_ interface { + Render(*gin.Context) +} + +type _default_ interface { + Bind(*gin.Context, any) mir.Error + Render(*gin.Context, any, mir.Error) +} + type Admin interface { _default_ diff --git a/auto/api/v1/alipay_priv.go b/auto/api/v1/alipay_priv.go index 6028607d..02500522 100644 --- a/auto/api/v1/alipay_priv.go +++ b/auto/api/v1/alipay_priv.go @@ -12,19 +12,6 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" ) -type _binding_ interface { - Bind(*gin.Context) mir.Error -} - -type _render_ interface { - Render(*gin.Context) -} - -type _default_ interface { - Bind(*gin.Context, any) mir.Error - Render(*gin.Context, any, mir.Error) -} - type AlipayPriv interface { _default_ diff --git a/go.mod b/go.mod index 1370454c..c374c952 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/Masterminds/semver/v3 v3.2.1 github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868 github.com/alimy/cfg v0.3.0 - github.com/alimy/mir/v4 v4.0.0-alpha.6 + github.com/alimy/mir/v4 v4.0.0-alpha.7 github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/allegro/bigcache/v3 v3.1.0 github.com/bytedance/sonic v1.9.1 diff --git a/go.sum b/go.sum index 8508b359..e49de168 100644 --- a/go.sum +++ b/go.sum @@ -125,8 +125,8 @@ github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:C github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= github.com/alimy/cfg v0.3.0 h1:9xgA0QWVCPSq9fFNRcYahVCAX22IL9ts2wrTQPfAStY= github.com/alimy/cfg v0.3.0/go.mod h1:rOxbasTH2srl6StAjNF5Vyi8bfrdkl3fLGmOYtSw81c= -github.com/alimy/mir/v4 v4.0.0-alpha.6 h1:bCFZ0HwFlT3Gsk5TgRGRyI4Xc/BCMR2VvuNghnTTHC0= -github.com/alimy/mir/v4 v4.0.0-alpha.6/go.mod h1:d58dBvw2KImcVbAUANrciEV/of0arMNsI9c/5UNCMMc= +github.com/alimy/mir/v4 v4.0.0-alpha.7 h1:ysAg2U3MDLj9QMB6lDqqGaz8uWwlq/ndDs9gmFceZWw= +github.com/alimy/mir/v4 v4.0.0-alpha.7/go.mod h1:d58dBvw2KImcVbAUANrciEV/of0arMNsI9c/5UNCMMc= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/allegro/bigcache/v3 v3.1.0 h1:H2Vp8VOvxcrB91o86fUSVJFqeuz8kpyyB02eH3bSzwk= diff --git a/mirc/web/v1/admin.go b/mirc/web/v1/admin.go index 8799fc8a..49c07ce4 100644 --- a/mirc/web/v1/admin.go +++ b/mirc/web/v1/admin.go @@ -7,7 +7,7 @@ import ( ) func init() { - AddEntry(new(Admin)) + Entry[Admin]() } // Admin 运维相关服务 diff --git a/mirc/web/v1/core.go b/mirc/web/v1/core.go index d81fa520..f12c7018 100644 --- a/mirc/web/v1/core.go +++ b/mirc/web/v1/core.go @@ -7,7 +7,7 @@ import ( ) func init() { - AddEntry(new(Core)) + Entry[Core]() } // Core 核心服务,需要授权访问 diff --git a/mirc/web/v1/followship.go b/mirc/web/v1/followship.go index e0123479..c44c7709 100644 --- a/mirc/web/v1/followship.go +++ b/mirc/web/v1/followship.go @@ -7,7 +7,7 @@ import ( ) func init() { - AddEntry(new(Followship)) + Entry[Followship]() } // Followship 关注者模式 服务 diff --git a/mirc/web/v1/friendship.go b/mirc/web/v1/friendship.go index 69757d27..b04f9622 100644 --- a/mirc/web/v1/friendship.go +++ b/mirc/web/v1/friendship.go @@ -7,7 +7,7 @@ import ( ) func init() { - AddEntry(new(Friendship)) + Entry[Friendship]() } // Friendship 好友模式 服务 diff --git a/mirc/web/v1/loose.go b/mirc/web/v1/loose.go index a5119656..a7fe6d7e 100644 --- a/mirc/web/v1/loose.go +++ b/mirc/web/v1/loose.go @@ -7,7 +7,7 @@ import ( ) func init() { - AddEntry(new(Loose)) + Entry[Loose]() } // Loose 宽松授权的服务 diff --git a/mirc/web/v1/priv.go b/mirc/web/v1/priv.go index 0c1f2f27..460c9d99 100644 --- a/mirc/web/v1/priv.go +++ b/mirc/web/v1/priv.go @@ -7,7 +7,7 @@ import ( ) func init() { - AddEntry(new(Priv)) + Entry[Priv]() } // Priv 私有授权的服务 diff --git a/mirc/web/v1/pub.go b/mirc/web/v1/pub.go index 6dcd8bc5..89a90162 100644 --- a/mirc/web/v1/pub.go +++ b/mirc/web/v1/pub.go @@ -7,7 +7,7 @@ import ( ) func init() { - AddEntry(new(Pub)) + Entry[Pub]() } // Pub 不用授权的公开服务 From 6662d8e3bc0995d9805b106b01280b28c5997cc9 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Fri, 30 Jun 2023 14:29:25 +0800 Subject: [PATCH 28/61] use Entry[T]() function to add entry to go-mir --- auto/api/v1/admin.go | 13 ------------- auto/api/v1/core.go | 13 +++++++++++++ mirc/admin/v1/user.go | 2 +- mirc/bot/v1/user.go | 2 +- mirc/localoss/v1/user.go | 2 +- mirc/space/v1/user.go | 2 +- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/auto/api/v1/admin.go b/auto/api/v1/admin.go index ad4ac308..4e5658a0 100644 --- a/auto/api/v1/admin.go +++ b/auto/api/v1/admin.go @@ -12,19 +12,6 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" ) -type _binding_ interface { - Bind(*gin.Context) mir.Error -} - -type _render_ interface { - Render(*gin.Context) -} - -type _default_ interface { - Bind(*gin.Context, any) mir.Error - Render(*gin.Context, any, mir.Error) -} - type Admin interface { _default_ diff --git a/auto/api/v1/core.go b/auto/api/v1/core.go index 159e938f..cb49743e 100644 --- a/auto/api/v1/core.go +++ b/auto/api/v1/core.go @@ -12,6 +12,19 @@ import ( "github.com/rocboss/paopao-ce/internal/model/web" ) +type _binding_ interface { + Bind(*gin.Context) mir.Error +} + +type _render_ interface { + Render(*gin.Context) +} + +type _default_ interface { + Bind(*gin.Context, any) mir.Error + Render(*gin.Context, any, mir.Error) +} + type Core interface { _default_ diff --git a/mirc/admin/v1/user.go b/mirc/admin/v1/user.go index c8e690e8..90dbdab9 100644 --- a/mirc/admin/v1/user.go +++ b/mirc/admin/v1/user.go @@ -6,7 +6,7 @@ import ( ) func init() { - AddEntry(new(User)) + Entry[User]() } type AgentInfo struct { diff --git a/mirc/bot/v1/user.go b/mirc/bot/v1/user.go index ffe4d8da..11c7330f 100644 --- a/mirc/bot/v1/user.go +++ b/mirc/bot/v1/user.go @@ -6,7 +6,7 @@ import ( ) func init() { - AddEntry(new(User)) + Entry[User]() } type AgentInfo struct { diff --git a/mirc/localoss/v1/user.go b/mirc/localoss/v1/user.go index e7380750..af558fd6 100644 --- a/mirc/localoss/v1/user.go +++ b/mirc/localoss/v1/user.go @@ -6,7 +6,7 @@ import ( ) func init() { - AddEntry(new(User)) + Entry[User]() } type AgentInfo struct { diff --git a/mirc/space/v1/user.go b/mirc/space/v1/user.go index f54c3298..64fd8c7f 100644 --- a/mirc/space/v1/user.go +++ b/mirc/space/v1/user.go @@ -6,7 +6,7 @@ import ( ) func init() { - AddEntry(new(User)) + Entry[User]() } type AgentInfo struct { From a2e206dc3a9d15306e64f608b839a235982fd602 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 10:20:39 +0000 Subject: [PATCH 29/61] mod: bump github.com/alimy/mir/v4 from 4.0.0-alpha.7 to 4.0.0-alpha.9 Bumps [github.com/alimy/mir/v4](https://github.com/alimy/mir) from 4.0.0-alpha.7 to 4.0.0-alpha.9. - [Release notes](https://github.com/alimy/mir/releases) - [Changelog](https://github.com/alimy/mir/blob/main/CHANGELOG.md) - [Commits](https://github.com/alimy/mir/compare/v4.0.0-alpha.7...v4.0.0-alpha.9) --- updated-dependencies: - dependency-name: github.com/alimy/mir/v4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c374c952..c5553160 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/Masterminds/semver/v3 v3.2.1 github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868 github.com/alimy/cfg v0.3.0 - github.com/alimy/mir/v4 v4.0.0-alpha.7 + github.com/alimy/mir/v4 v4.0.0-alpha.9 github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/allegro/bigcache/v3 v3.1.0 github.com/bytedance/sonic v1.9.1 diff --git a/go.sum b/go.sum index e49de168..76c34146 100644 --- a/go.sum +++ b/go.sum @@ -125,8 +125,8 @@ github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:C github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= github.com/alimy/cfg v0.3.0 h1:9xgA0QWVCPSq9fFNRcYahVCAX22IL9ts2wrTQPfAStY= github.com/alimy/cfg v0.3.0/go.mod h1:rOxbasTH2srl6StAjNF5Vyi8bfrdkl3fLGmOYtSw81c= -github.com/alimy/mir/v4 v4.0.0-alpha.7 h1:ysAg2U3MDLj9QMB6lDqqGaz8uWwlq/ndDs9gmFceZWw= -github.com/alimy/mir/v4 v4.0.0-alpha.7/go.mod h1:d58dBvw2KImcVbAUANrciEV/of0arMNsI9c/5UNCMMc= +github.com/alimy/mir/v4 v4.0.0-alpha.9 h1:gT1oTZ9aeRd2XCFXmhY3g47yXN/fr5fsUtU/n2Tm7ak= +github.com/alimy/mir/v4 v4.0.0-alpha.9/go.mod h1:d58dBvw2KImcVbAUANrciEV/of0arMNsI9c/5UNCMMc= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis= github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/allegro/bigcache/v3 v3.1.0 h1:H2Vp8VOvxcrB91o86fUSVJFqeuz8kpyyB02eH3bSzwk= From f2e33b52c194e17f1a694609ab6e52c48c73e211 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 10:20:50 +0000 Subject: [PATCH 30/61] mod: bump github.com/tencentyun/cos-go-sdk-v5 from 0.7.41 to 0.7.42 Bumps [github.com/tencentyun/cos-go-sdk-v5](https://github.com/tencentyun/cos-go-sdk-v5) from 0.7.41 to 0.7.42. - [Release notes](https://github.com/tencentyun/cos-go-sdk-v5/releases) - [Changelog](https://github.com/tencentyun/cos-go-sdk-v5/blob/master/CHANGELOG.md) - [Commits](https://github.com/tencentyun/cos-go-sdk-v5/compare/v0.7.41...v0.7.42) --- updated-dependencies: - dependency-name: github.com/tencentyun/cos-go-sdk-v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index c374c952..874d7094 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/smartwalle/alipay/v3 v3.2.14 github.com/sourcegraph/conc v0.3.0 github.com/spf13/viper v1.16.0 - github.com/tencentyun/cos-go-sdk-v5 v0.7.41 + github.com/tencentyun/cos-go-sdk-v5 v0.7.42 github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc go.uber.org/automaxprocs v1.5.2 google.golang.org/grpc v1.56.1 diff --git a/go.sum b/go.sum index e49de168..13e0e511 100644 --- a/go.sum +++ b/go.sum @@ -1226,10 +1226,10 @@ github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.194/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.194/go.mod h1:yrBKWhChnDqNz1xuXdSbWXG56XawEq0G5j1lg4VwBD4= -github.com/tencentyun/cos-go-sdk-v5 v0.7.41 h1:iU0Li/Np78H4SBna0ECQoF3mpgi6ImLXU+doGzPFXGc= -github.com/tencentyun/cos-go-sdk-v5 v0.7.41/go.mod h1:4dCEtLHGh8QPxHEkgq+nFaky7yZxQuYwgSJM87icDaw= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.563/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.563/go.mod h1:uom4Nvi9W+Qkom0exYiJ9VWJjXwyxtPYTkKkaLMlfE0= +github.com/tencentyun/cos-go-sdk-v5 v0.7.42 h1:Up1704BJjI5orycXKjpVpvuOInt9GC5pqY4knyE9Uds= +github.com/tencentyun/cos-go-sdk-v5 v0.7.42/go.mod h1:LUFnaqRmGk6pEHOaRmdn2dCZR2j0cSsM5xowWFPTPao= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= From cd994a9272ed612a6dffb269df920d7d24d3166b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 10:28:56 +0000 Subject: [PATCH 31/61] mod: bump github.com/bytedance/sonic from 1.9.1 to 1.9.2 Bumps [github.com/bytedance/sonic](https://github.com/bytedance/sonic) from 1.9.1 to 1.9.2. - [Release notes](https://github.com/bytedance/sonic/releases) - [Commits](https://github.com/bytedance/sonic/compare/v1.9.1...v1.9.2) --- updated-dependencies: - dependency-name: github.com/bytedance/sonic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9b095786..8fc4d6c6 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/alimy/mir/v4 v4.0.0-alpha.9 github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/allegro/bigcache/v3 v3.1.0 - github.com/bytedance/sonic v1.9.1 + github.com/bytedance/sonic v1.9.2 github.com/cockroachdb/errors v1.10.0 github.com/disintegration/imaging v1.6.2 github.com/fatih/color v1.15.0 diff --git a/go.sum b/go.sum index d0ce1981..1fad6949 100644 --- a/go.sum +++ b/go.sum @@ -192,8 +192,8 @@ github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8n github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= -github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/bytedance/sonic v1.9.2 h1:GDaNjuWSGu09guE9Oql0MSTNhNCLlWwO8y/xM5BzcbM= +github.com/bytedance/sonic v1.9.2/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= From d1ab13cbb5f31ad126201eb5ba8b0b972f4b06b4 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Thu, 6 Jul 2023 12:18:21 +0800 Subject: [PATCH 32/61] change man content width to 600px and optimize tweet/comment/replay text length --- .../mysql/0008_content_type_alter.down.sql | 3 + .../mysql/0008_content_type_alter.up.sql | 3 + .../postgres/0007_content_type_alter.down.sql | 1 + .../postgres/0007_content_type_alter.up.sql | 3 + .../sqlite3/0008_content_type_alter.down.sql | 1 + .../sqlite3/0008_content_type_alter.up.sql | 154 ++++++++++++++++++ scripts/paopao-mysql.sql | 6 +- scripts/paopao-postgres.sql | 6 +- scripts/paopao-sqlite3.sql | 6 +- web/.env | 6 +- .../{404-73601eaa.js => 404-3f4651e7.js} | 2 +- ...er-4f82e6dd.js => @css-render-6b6cdab1.js} | 2 +- ...vicons-7ee3dafd.js => @vicons-4022100b.js} | 2 +- web/dist/assets/@vue-b8d06722.js | 1 - web/dist/assets/@vue-d002002f.js | 1 + ...nt-c1b36ed4.js => Anouncement-f2146181.js} | 2 +- ...ion-653778e5.js => Collection-f0c6a1aa.js} | 2 +- ...tacts-c762cdd3.js => Contacts-ba6816c8.js} | 2 +- web/dist/assets/Home-20128b51.js | 1 + web/dist/assets/Home-398b71c7.js | 1 - web/dist/assets/Messages-4036bf90.js | 1 - web/dist/assets/Messages-8bfe7f3b.js | 1 + web/dist/assets/Post-00695942.css | 1 + web/dist/assets/Post-1ec9984a.js | 1 + web/dist/assets/Post-521adc02.css | 1 - web/dist/assets/Post-b5c82479.js | 1 - ...rofile-8f13b93f.js => Profile-536bb0b1.js} | 2 +- web/dist/assets/Setting-8c94862d.js | 1 - web/dist/assets/Setting-bb44f792.js | 1 + .../{Topic-1e3989cd.js => Topic-09053135.js} | 2 +- .../{User-c16a5bad.js => User-e96c5cea.js} | 2 +- web/dist/assets/Wallet-6f8e141c.js | 1 + web/dist/assets/Wallet-bb7e4a82.js | 1 - ...ontent-bfe7958f.js => content-1ad34d0c.js} | 2 +- ...tent-5ea7b681.css => content-2fda112b.css} | 2 +- web/dist/assets/index-43cab287.js | 1 - web/dist/assets/index-5fa3c6e0.js | 1 + ...{index-df729f44.css => index-c5cff9e7.css} | 2 +- ...e_vue_type_style_index_0_lang-7d0e0feb.js} | 2 +- ...ve-ui-374a973f.js => naive-ui-d02aa0d7.js} | 4 +- ...fc7.js => paopao-video-player-d47e9bf6.js} | 2 +- ...e_vue_type_style_index_0_lang-bc760886.js} | 2 +- ...-3fdfd3d1.js => post-skeleton-49f18127.js} | 2 +- ...b9d.js => v3-infinite-loading-58f64a4e.js} | 2 +- .../{vooks-423a5f30.js => vooks-77bdadbd.js} | 2 +- ...ter-8af5a3a6.js => vue-router-29e6667f.js} | 2 +- .../{vueuc-556279b6.js => vueuc-0232e3b9.js} | 2 +- .../{vuex-613b371d.js => vuex-4d2f7b35.js} | 2 +- web/dist/index.html | 20 +-- web/src/assets/css/main.less | 2 +- web/src/components/comment-item.vue | 3 +- web/src/components/compose-comment.vue | 7 +- web/src/components/post-image.vue | 6 +- web/src/components/reply-item.vue | 6 +- 54 files changed, 232 insertions(+), 63 deletions(-) create mode 100644 scripts/migration/mysql/0008_content_type_alter.down.sql create mode 100644 scripts/migration/mysql/0008_content_type_alter.up.sql create mode 100644 scripts/migration/postgres/0007_content_type_alter.down.sql create mode 100644 scripts/migration/postgres/0007_content_type_alter.up.sql create mode 100644 scripts/migration/sqlite3/0008_content_type_alter.down.sql create mode 100644 scripts/migration/sqlite3/0008_content_type_alter.up.sql rename web/dist/assets/{404-73601eaa.js => 404-3f4651e7.js} (59%) rename web/dist/assets/{@css-render-4f82e6dd.js => @css-render-6b6cdab1.js} (96%) rename web/dist/assets/{@vicons-7ee3dafd.js => @vicons-4022100b.js} (99%) delete mode 100644 web/dist/assets/@vue-b8d06722.js create mode 100644 web/dist/assets/@vue-d002002f.js rename web/dist/assets/{Anouncement-c1b36ed4.js => Anouncement-f2146181.js} (73%) rename web/dist/assets/{Collection-653778e5.js => Collection-f0c6a1aa.js} (75%) rename web/dist/assets/{Contacts-c762cdd3.js => Contacts-ba6816c8.js} (76%) create mode 100644 web/dist/assets/Home-20128b51.js delete mode 100644 web/dist/assets/Home-398b71c7.js delete mode 100644 web/dist/assets/Messages-4036bf90.js create mode 100644 web/dist/assets/Messages-8bfe7f3b.js create mode 100644 web/dist/assets/Post-00695942.css create mode 100644 web/dist/assets/Post-1ec9984a.js delete mode 100644 web/dist/assets/Post-521adc02.css delete mode 100644 web/dist/assets/Post-b5c82479.js rename web/dist/assets/{Profile-8f13b93f.js => Profile-536bb0b1.js} (75%) delete mode 100644 web/dist/assets/Setting-8c94862d.js create mode 100644 web/dist/assets/Setting-bb44f792.js rename web/dist/assets/{Topic-1e3989cd.js => Topic-09053135.js} (73%) rename web/dist/assets/{User-c16a5bad.js => User-e96c5cea.js} (71%) create mode 100644 web/dist/assets/Wallet-6f8e141c.js delete mode 100644 web/dist/assets/Wallet-bb7e4a82.js rename web/dist/assets/{content-bfe7958f.js => content-1ad34d0c.js} (97%) rename web/dist/assets/{content-5ea7b681.css => content-2fda112b.css} (68%) delete mode 100644 web/dist/assets/index-43cab287.js create mode 100644 web/dist/assets/index-5fa3c6e0.js rename web/dist/assets/{index-df729f44.css => index-c5cff9e7.css} (98%) rename web/dist/assets/{main-nav.vue_vue_type_style_index_0_lang-6c037963.js => main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js} (81%) rename web/dist/assets/{naive-ui-374a973f.js => naive-ui-d02aa0d7.js} (99%) rename web/dist/assets/{paopao-video-player-b4739fc7.js => paopao-video-player-d47e9bf6.js} (99%) rename web/dist/assets/{post-item.vue_vue_type_style_index_0_lang-f7f6062b.js => post-item.vue_vue_type_style_index_0_lang-bc760886.js} (86%) rename web/dist/assets/{post-skeleton-3fdfd3d1.js => post-skeleton-49f18127.js} (66%) rename web/dist/assets/{v3-infinite-loading-e8a7ab9d.js => v3-infinite-loading-58f64a4e.js} (95%) rename web/dist/assets/{vooks-423a5f30.js => vooks-77bdadbd.js} (98%) rename web/dist/assets/{vue-router-8af5a3a6.js => vue-router-29e6667f.js} (99%) rename web/dist/assets/{vueuc-556279b6.js => vueuc-0232e3b9.js} (99%) rename web/dist/assets/{vuex-613b371d.js => vuex-4d2f7b35.js} (99%) diff --git a/scripts/migration/mysql/0008_content_type_alter.down.sql b/scripts/migration/mysql/0008_content_type_alter.down.sql new file mode 100644 index 00000000..97d8e80e --- /dev/null +++ b/scripts/migration/mysql/0008_content_type_alter.down.sql @@ -0,0 +1,3 @@ +ALTER TABLE `p_post_content` MODIFY COLUMN `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容'; +ALTER TABLE `p_comment_content` MODIFY COLUMN `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容'; +ALTER TABLE `p_comment_reply` MODIFY COLUMN `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容'; \ No newline at end of file diff --git a/scripts/migration/mysql/0008_content_type_alter.up.sql b/scripts/migration/mysql/0008_content_type_alter.up.sql new file mode 100644 index 00000000..511c47ec --- /dev/null +++ b/scripts/migration/mysql/0008_content_type_alter.up.sql @@ -0,0 +1,3 @@ +ALTER TABLE `p_post_content` MODIFY COLUMN `content` varchar(65535) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容'; +ALTER TABLE `p_comment_content` MODIFY COLUMN `content` varchar(65535) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容'; +ALTER TABLE `p_comment_reply` MODIFY COLUMN `content` varchar(65535) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容'; diff --git a/scripts/migration/postgres/0007_content_type_alter.down.sql b/scripts/migration/postgres/0007_content_type_alter.down.sql new file mode 100644 index 00000000..e95cb5d1 --- /dev/null +++ b/scripts/migration/postgres/0007_content_type_alter.down.sql @@ -0,0 +1 @@ +-- nothing diff --git a/scripts/migration/postgres/0007_content_type_alter.up.sql b/scripts/migration/postgres/0007_content_type_alter.up.sql new file mode 100644 index 00000000..4df0470d --- /dev/null +++ b/scripts/migration/postgres/0007_content_type_alter.up.sql @@ -0,0 +1,3 @@ +ALTER TABLE p_post_content ALTER COLUMN content SET DATA TYPE TEXT NOT NULL DEFAULT ''; +ALTER TABLE p_comment_content ALTER COLUMN content SET DATA TYPE TEXT NOT NULL DEFAULT ''; +ALTER TABLE p_comment_reply ALTER COLUMN content SET DATA TYPE TEXT NOT NULL DEFAULT ''; diff --git a/scripts/migration/sqlite3/0008_content_type_alter.down.sql b/scripts/migration/sqlite3/0008_content_type_alter.down.sql new file mode 100644 index 00000000..e95cb5d1 --- /dev/null +++ b/scripts/migration/sqlite3/0008_content_type_alter.down.sql @@ -0,0 +1 @@ +-- nothing diff --git a/scripts/migration/sqlite3/0008_content_type_alter.up.sql b/scripts/migration/sqlite3/0008_content_type_alter.up.sql new file mode 100644 index 00000000..ba4db9e1 --- /dev/null +++ b/scripts/migration/sqlite3/0008_content_type_alter.up.sql @@ -0,0 +1,154 @@ +PRAGMA foreign_keys=off; + +BEGIN TRANSACTION; + +ALTER TABLE p_post_content RENAME TO _p_post_content; + +ALTER TABLE p_comment_content RENAME TO _p_comment_content; + +ALTER TABLE p_comment_reply RENAME TO _p_comment_reply; + +CREATE TABLE p_post_content +( "id" integer NOT NULL, + "post_id" integer NOT NULL, + "user_id" integer NOT NULL, + "content" text NOT NULL, + "type" integer NOT NULL, + "sort" integer NOT NULL, + "created_on" integer NOT NULL, + "modified_on" integer NOT NULL, + "deleted_on" integer NOT NULL, + "is_del" integer NOT NULL, + PRIMARY KEY ("id") +); + +CREATE TABLE p_comment_content +( "id" integer NOT NULL, + "comment_id" integer NOT NULL, + "user_id" integer NOT NULL, + "content" text NOT NULL, + "type" integer NOT NULL, + "sort" integer NOT NULL, + "created_on" integer NOT NULL, + "modified_on" integer NOT NULL, + "deleted_on" integer NOT NULL, + "is_del" integer NOT NULL, + PRIMARY KEY ("id") +); + +CREATE TABLE p_comment_reply +( "id" integer NOT NULL, + "comment_id" integer NOT NULL, + "user_id" integer NOT NULL, + "at_user_id" integer NOT NULL, + "content" text NOT NULL, + "ip" text(64) NOT NULL, + "ip_loc" text(64) NOT NULL, + "thumbs_up_count" integer NOT NULL DEFAULT 0, -- 点赞数 + "thumbs_down_count" integer NOT NULL DEFAULT 0, -- 点踩数 + "created_on" integer NOT NULL, + "modified_on" integer NOT NULL, + "deleted_on" integer NOT NULL, + "is_del" integer NOT NULL, + PRIMARY KEY ("id") +); + +-- ---------------------------- +-- Indexes structure for table p_post_content +-- ---------------------------- +CREATE INDEX "idx_post_content_post_id" +ON "p_post_content" ( + "post_id" ASC +); +CREATE INDEX "idx_post_content_user_id" +ON "p_post_content" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_comment_reply +-- ---------------------------- +CREATE INDEX "idx_comment_reply_comment_id" +ON "p_comment_reply" ( + "comment_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_comment_content +-- ---------------------------- +CREATE INDEX "idx_comment_content_comment_id" +ON "p_comment_content" ( + "comment_id" ASC +); +CREATE INDEX "idx_comment_content_sort" +ON "p_comment_content" ( + "sort" ASC +); +CREATE INDEX "idx_comment_content_type" +ON "p_comment_content" ( + "type" ASC +); +CREATE INDEX "idx_comment_content_user_id" +ON "p_comment_content" ( + "user_id" ASC +); + +INSERT INTO p_post_content (id, post_id, user_id, content, `type`, sort, created_on, modified_on, deleted_on, is_del) + SELECT id, post_id, user_id, content, `type`, sort, created_on, modified_on, deleted_on, is_del + FROM _p_post_content; + +INSERT INTO p_comment_content (id, comment_id, user_id, content, `type`, sort, created_on, modified_on, deleted_on, is_del) + SELECT id, comment_id, user_id, content, `type`, sort, created_on, modified_on, deleted_on, is_del + FROM _p_comment_content; + +INSERT INTO p_comment_reply (id, comment_id, user_id, at_user_id, content, ip, ip_loc, thumbs_up_count, thumbs_down_count, created_on, modified_on, deleted_on, is_del) + SELECT id, comment_id, user_id, at_user_id, content, ip, ip_loc, thumbs_up_count, thumbs_down_count, created_on, modified_on, deleted_on, is_del + FROM _p_comment_reply; + +DROP TABLE _p_post_content; +DROP TABLE _p_comment_content; +DROP TABLE _p_comment_reply; + +-- ---------------------------- +-- Indexes structure for table p_post_content +-- ---------------------------- +CREATE INDEX "idx_post_content_post_id" +ON "p_post_content" ( + "post_id" ASC +); +CREATE INDEX "idx_post_content_user_id" +ON "p_post_content" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_comment_reply +-- ---------------------------- +CREATE INDEX "idx_comment_reply_comment_id" +ON "p_comment_reply" ( + "comment_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_comment_content +-- ---------------------------- +CREATE INDEX "idx_comment_content_comment_id" +ON "p_comment_content" ( + "comment_id" ASC +); +CREATE INDEX "idx_comment_content_sort" +ON "p_comment_content" ( + "sort" ASC +); +CREATE INDEX "idx_comment_content_type" +ON "p_comment_content" ( + "type" ASC +); +CREATE INDEX "idx_comment_content_user_id" +ON "p_comment_content" ( + "user_id" ASC +); + +COMMIT; + +PRAGMA foreign_keys=on; diff --git a/scripts/paopao-mysql.sql b/scripts/paopao-mysql.sql index 5a3b4c0b..419cc53e 100644 --- a/scripts/paopao-mysql.sql +++ b/scripts/paopao-mysql.sql @@ -70,7 +70,7 @@ CREATE TABLE `p_comment_content` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '内容ID', `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID', `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', + `content` varchar(65535) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', `type` tinyint unsigned NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址', `sort` bigint unsigned NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前', `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', @@ -93,7 +93,7 @@ CREATE TABLE `p_comment_reply` ( `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID', `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', `at_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '@用户ID', - `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', + `content` varchar(65535) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址', `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址', `thumbs_up_count` int unsigned NOT NULL DEFAULT '0' COMMENT '点赞数', @@ -224,7 +224,7 @@ CREATE TABLE `p_post_content` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '内容ID', `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', + `content` varchar(65535) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', `type` tinyint unsigned NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源', `sort` int unsigned NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前', `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', diff --git a/scripts/paopao-postgres.sql b/scripts/paopao-postgres.sql index 9830cd62..9cc7a14f 100644 --- a/scripts/paopao-postgres.sql +++ b/scripts/paopao-postgres.sql @@ -58,7 +58,7 @@ CREATE TABLE p_comment_content ( id BIGSERIAL PRIMARY KEY, comment_id BIGINT NOT NULL DEFAULT 0, user_id BIGINT NOT NULL DEFAULT 0, - content VARCHAR(255) NOT NULL DEFAULT '', + content TEXT NOT NULL DEFAULT '', "type" SMALLINT NOT NULL DEFAULT 2, -- 类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址, sort BIGINT NOT NULL DEFAULT 100, created_on BIGINT NOT NULL DEFAULT 0, @@ -77,7 +77,7 @@ CREATE TABLE p_comment_reply ( comment_id BIGINT NOT NULL DEFAULT 0, user_id BIGINT NOT NULL DEFAULT 0, at_user_id BIGINT NOT NULL DEFAULT 0, - content VARCHAR(255) NOT NULL DEFAULT '', + content TEXT NOT NULL DEFAULT '', ip VARCHAR(64) NOT NULL DEFAULT '', ip_loc VARCHAR(64) NOT NULL DEFAULT '', thumbs_up_count int NOT NULL DEFAULT 0, -- 点赞数 @@ -186,7 +186,7 @@ CREATE TABLE p_post_content ( id BIGSERIAL PRIMARY KEY, post_id BIGINT NOT NULL DEFAULT 0, user_id BIGINT NOT NULL DEFAULT 0, - content VARCHAR(2000) NOT NULL DEFAULT '', + content TEXT NOT NULL DEFAULT '', "type" SMALLINT NOT NULL DEFAULT 2, -- 类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源 sort SMALLINT NOT NULL DEFAULT 100, created_on BIGINT NOT NULL DEFAULT 0, diff --git a/scripts/paopao-sqlite3.sql b/scripts/paopao-sqlite3.sql index 746204b9..51c427de 100644 --- a/scripts/paopao-sqlite3.sql +++ b/scripts/paopao-sqlite3.sql @@ -63,7 +63,7 @@ CREATE TABLE "p_comment_content" ( "id" integer NOT NULL, "comment_id" integer NOT NULL, "user_id" integer NOT NULL, - "content" text(255) NOT NULL, + "content" text NOT NULL, "type" integer NOT NULL, "sort" integer NOT NULL, "created_on" integer NOT NULL, @@ -82,7 +82,7 @@ CREATE TABLE "p_comment_reply" ( "comment_id" integer NOT NULL, "user_id" integer NOT NULL, "at_user_id" integer NOT NULL, - "content" text(255) NOT NULL, + "content" text NOT NULL, "ip" text(64) NOT NULL, "ip_loc" text(64) NOT NULL, "thumbs_up_count" integer NOT NULL DEFAULT 0, -- 点赞数 @@ -237,7 +237,7 @@ CREATE TABLE "p_post_content" ( "id" integer NOT NULL, "post_id" integer NOT NULL, "user_id" integer NOT NULL, - "content" text(2000) NOT NULL, + "content" text NOT NULL, "type" integer NOT NULL, "sort" integer NOT NULL, "created_on" integer NOT NULL, diff --git a/web/.env b/web/.env index 25b277c7..720afc11 100644 --- a/web/.env +++ b/web/.env @@ -16,9 +16,9 @@ VITE_ALLOW_PHONE_BIND=true # 局部参数 VITE_DEFAULT_MSG_LOOP_INTERVAL=5000 # 拉取未读消息的间隔,单位:毫秒, 默认5000ms VITE_DEFAULT_TWEET_VISIBILITY=friend # 推文可见性,默认好友可见 -VITE_DEFAULT_TWEET_MAX_LENGTH=300 # 推文最大长度, 默认300字 -VITE_DEFAULT_COMMENT_MAX_LENGTH=200 # 评论最大长度, 默认200字 -VITE_DEFAULT_REPLY_MAX_LENGTH=100 # 评论最大长度, 默认100字 +VITE_DEFAULT_TWEET_MAX_LENGTH=400 # 推文最大长度, 默认400字 +VITE_DEFAULT_COMMENT_MAX_LENGTH=300 # 评论最大长度, 默认300字 +VITE_DEFAULT_REPLY_MAX_LENGTH=300 # 评论最大长度, 默认300字 VITE_RIGHT_FOLLOW_TOPIC_MAX_SIZE=6 # 右侧关注话题最大条目数, 默认6条 VITE_RIGHT_HOT_TOPIC_MAX_SIZE=12 # 右侧热门话题最大条目数, 默认12条 VITE_COPYRIGHT_TOP="2023 paopao.info" diff --git a/web/dist/assets/404-73601eaa.js b/web/dist/assets/404-3f4651e7.js similarity index 59% rename from web/dist/assets/404-73601eaa.js rename to web/dist/assets/404-3f4651e7.js index a24053d7..49a74f42 100644 --- a/web/dist/assets/404-73601eaa.js +++ b/web/dist/assets/404-3f4651e7.js @@ -1 +1 @@ -import{_ as s}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{u as a}from"./vue-router-8af5a3a6.js";import{F as i,e as c,a2 as u}from"./naive-ui-374a973f.js";import{d as l,c as d,U as t,a0 as o,o as f,e as x}from"./@vue-b8d06722.js";import{_ as g}from"./index-43cab287.js";import"./vuex-613b371d.js";import"./vooks-423a5f30.js";import"./evtd-b614532e.js";import"./@vicons-7ee3dafd.js";import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./@css-render-4f82e6dd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./axios-4a70c6fc.js";/* empty css */const v=l({__name:"404",setup(h){const e=a(),_=()=>{e.push({path:"/"})};return(k,w)=>{const n=s,p=c,r=u,m=i;return f(),d("div",null,[t(n,{title:"404"}),t(m,{class:"main-content-wrap wrap404",bordered:""},{default:o(()=>[t(r,{status:"404",title:"404 资源不存在",description:"再看看其他的吧"},{footer:o(()=>[t(p,{onClick:_},{default:o(()=>[x("回主页")]),_:1})]),_:1})]),_:1})])}}});const L=g(v,[["__scopeId","data-v-e62daa85"]]);export{L as default}; +import{_ as s}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{u as a}from"./vue-router-29e6667f.js";import{F as i,e as c,a2 as u}from"./naive-ui-d02aa0d7.js";import{d as l,c as d,U as t,a0 as o,o as f,e as x}from"./@vue-d002002f.js";import{_ as g}from"./index-5fa3c6e0.js";import"./vuex-4d2f7b35.js";import"./vooks-77bdadbd.js";import"./evtd-b614532e.js";import"./@vicons-4022100b.js";import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./@css-render-6b6cdab1.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./axios-4a70c6fc.js";/* empty css */const v=l({__name:"404",setup(h){const e=a(),_=()=>{e.push({path:"/"})};return(k,w)=>{const n=s,p=c,r=u,m=i;return f(),d("div",null,[t(n,{title:"404"}),t(m,{class:"main-content-wrap wrap404",bordered:""},{default:o(()=>[t(r,{status:"404",title:"404 资源不存在",description:"再看看其他的吧"},{footer:o(()=>[t(p,{onClick:_},{default:o(()=>[x("回主页")]),_:1})]),_:1})]),_:1})])}}});const L=g(v,[["__scopeId","data-v-e62daa85"]]);export{L as default}; diff --git a/web/dist/assets/@css-render-4f82e6dd.js b/web/dist/assets/@css-render-6b6cdab1.js similarity index 96% rename from web/dist/assets/@css-render-4f82e6dd.js rename to web/dist/assets/@css-render-6b6cdab1.js index eadc4844..71299e1a 100644 --- a/web/dist/assets/@css-render-4f82e6dd.js +++ b/web/dist/assets/@css-render-6b6cdab1.js @@ -1,3 +1,3 @@ -import{i as d}from"./@vue-b8d06722.js";function C(i){let r=".",s="__",m="--",f;if(i){let e=i.blockPrefix;e&&(r=e),e=i.elementPrefix,e&&(s=e),e=i.modifierPrefix,e&&(m=e)}const b={install(e){f=e.c;const l=e.context;l.bem={},l.bem.b=null,l.bem.els=null}};function y(e){let l,n;return{before(t){l=t.bem.b,n=t.bem.els,t.bem.els=null},after(t){t.bem.b=l,t.bem.els=n},$({context:t,props:u}){return e=typeof e=="string"?e:e({context:t,props:u}),t.bem.b=e,`${(u==null?void 0:u.bPrefix)||r}${t.bem.b}`}}}function v(e){let l;return{before(n){l=n.bem.els},after(n){n.bem.els=l},$({context:n,props:t}){return e=typeof e=="string"?e:e({context:n,props:t}),n.bem.els=e.split(",").map(u=>u.trim()),n.bem.els.map(u=>`${(t==null?void 0:t.bPrefix)||r}${n.bem.b}${s}${u}`).join(", ")}}}function P(e){return{$({context:l,props:n}){e=typeof e=="string"?e:e({context:l,props:n});const t=e.split(",").map(o=>o.trim());function u(o){return t.map(x=>`&${(n==null?void 0:n.bPrefix)||r}${l.bem.b}${o!==void 0?`${s}${o}`:""}${m}${x}`).join(", ")}const c=l.bem.els;return c!==null?u(c[0]):u()}}}function _(e){return{$({context:l,props:n}){e=typeof e=="string"?e:e({context:l,props:n});const t=l.bem.els;return`&:not(${(n==null?void 0:n.bPrefix)||r}${l.bem.b}${t!==null&&t.length>0?`${s}${t[0]}`:""}${m}${e})`}}}return Object.assign(b,{cB:(...e)=>f(y(e[0]),e[1],e[2]),cE:(...e)=>f(v(e[0]),e[1],e[2]),cM:(...e)=>f(P(e[0]),e[1],e[2]),cNotM:(...e)=>f(_(e[0]),e[1],e[2])}),b}const $=Symbol("@css-render/vue3-ssr");function M(i,r){return``}function S(i,r){const s=d($,null);if(s===null){console.error("[css-render/vue3-ssr]: no ssr context found.");return}const{styles:m,ids:f}=s;f.has(i)||m!==null&&(f.add(i),m.push(M(i,r)))}const j=typeof document<"u";function N(){if(j)return;const i=d($,null);if(i!==null)return{adapter:S,context:i}}export{C as p,N as u}; diff --git a/web/dist/assets/@vicons-7ee3dafd.js b/web/dist/assets/@vicons-4022100b.js similarity index 99% rename from web/dist/assets/@vicons-7ee3dafd.js rename to web/dist/assets/@vicons-4022100b.js index 83fbdb5c..7f5dfa69 100644 --- a/web/dist/assets/@vicons-7ee3dafd.js +++ b/web/dist/assets/@vicons-4022100b.js @@ -1 +1 @@ -import{d as n,o,c as e,a as t,b as i}from"./@vue-b8d06722.js";const c={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},h=t("path",{d:"M216.08 192v143.85a40.08 40.08 0 0 0 80.15 0l.13-188.55a67.94 67.94 0 1 0-135.87 0v189.82a95.51 95.51 0 1 0 191 0V159.74",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-miterlimit":"10","stroke-width":"32"},null,-1),d=[h],Zt=n({name:"AttachOutline",render:function(s,l){return o(),e("svg",c,d)}}),a={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},w=t("path",{d:"M400 480a16 16 0 0 1-10.63-4L256 357.41L122.63 476A16 16 0 0 1 96 464V96a64.07 64.07 0 0 1 64-64h192a64.07 64.07 0 0 1 64 64v368a16 16 0 0 1-16 16z",fill:"currentColor"},null,-1),u=[w],tn=n({name:"Bookmark",render:function(s,l){return o(),e("svg",a,u)}}),_={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},k=t("path",{d:"M352 48H160a48 48 0 0 0-48 48v368l144-128l144 128V96a48 48 0 0 0-48-48z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),x=[k],nn=n({name:"BookmarkOutline",render:function(s,l){return o(),e("svg",_,x)}}),p={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},m=t("path",{d:"M128 80V64a48.14 48.14 0 0 1 48-48h224a48.14 48.14 0 0 1 48 48v368l-80-64",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),g=t("path",{d:"M320 96H112a48.14 48.14 0 0 0-48 48v352l152-128l152 128V144a48.14 48.14 0 0 0-48-48z",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),v=[m,g],on=n({name:"BookmarksOutline",render:function(s,l){return o(),e("svg",p,v)}}),$={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},f=t("path",{d:"M408 64H104a56.16 56.16 0 0 0-56 56v192a56.16 56.16 0 0 0 56 56h40v80l93.72-78.14a8 8 0 0 1 5.13-1.86H408a56.16 56.16 0 0 0 56-56V120a56.16 56.16 0 0 0-56-56z",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),C=[f],en=n({name:"ChatboxOutline",render:function(s,l){return o(),e("svg",$,C)}}),M={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},z=t("path",{d:"M431 320.6c-1-3.6 1.2-8.6 3.3-12.2a33.68 33.68 0 0 1 2.1-3.1A162 162 0 0 0 464 215c.3-92.2-77.5-167-173.7-167c-83.9 0-153.9 57.1-170.3 132.9a160.7 160.7 0 0 0-3.7 34.2c0 92.3 74.8 169.1 171 169.1c15.3 0 35.9-4.6 47.2-7.7s22.5-7.2 25.4-8.3a26.44 26.44 0 0 1 9.3-1.7a26 26 0 0 1 10.1 2l56.7 20.1a13.52 13.52 0 0 0 3.9 1a8 8 0 0 0 8-8a12.85 12.85 0 0 0-.5-2.7z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-miterlimit":"10","stroke-width":"32"},null,-1),O=t("path",{d:"M66.46 232a146.23 146.23 0 0 0 6.39 152.67c2.31 3.49 3.61 6.19 3.21 8s-11.93 61.87-11.93 61.87a8 8 0 0 0 2.71 7.68A8.17 8.17 0 0 0 72 464a7.26 7.26 0 0 0 2.91-.6l56.21-22a15.7 15.7 0 0 1 12 .2c18.94 7.38 39.88 12 60.83 12A159.21 159.21 0 0 0 284 432.11",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-miterlimit":"10","stroke-width":"32"},null,-1),j=[z,O],rn=n({name:"ChatbubblesOutline",render:function(s,l){return o(),e("svg",M,j)}}),B={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},L=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M464 128L240 384l-96-96"},null,-1),H=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M144 384l-96-96"},null,-1),V=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 128L232 284"},null,-1),A=[L,H,V],sn=n({name:"CheckmarkDoneOutline",render:function(s,l){return o(),e("svg",B,A)}}),b={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},y=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M416 128L192 384l-96-96"},null,-1),S=[y],ln=n({name:"CheckmarkOutline",render:function(s,l){return o(),e("svg",b,S)}}),D={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},T=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 368L144 144"},null,-1),E=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 144L144 368"},null,-1),q=[T,E],cn=n({name:"CloseOutline",render:function(s,l){return o(),e("svg",D,q)}}),R={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},U=t("path",{d:"M320 336h76c55 0 100-21.21 100-75.6s-53-73.47-96-75.6C391.11 99.74 329 48 256 48c-69 0-113.44 45.79-128 91.2c-60 5.7-112 35.88-112 98.4S70 336 136 336h56",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),F=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M192 400.1l64 63.9l64-63.9"},null,-1),I=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M256 224v224.03"},null,-1),P=[U,F,I],hn=n({name:"CloudDownloadOutline",render:function(s,l){return o(),e("svg",R,P)}}),W={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},N=t("path",{d:"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192s192-86 192-192z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"},null,-1),G=t("path",{d:"M350.67 150.93l-117.2 46.88a64 64 0 0 0-35.66 35.66l-46.88 117.2a8 8 0 0 0 10.4 10.4l117.2-46.88a64 64 0 0 0 35.66-35.66l46.88-117.2a8 8 0 0 0-10.4-10.4zM256 280a24 24 0 1 1 24-24a24 24 0 0 1-24 24z",fill:"currentColor"},null,-1),J=[N,G],dn=n({name:"CompassOutline",render:function(s,l){return o(),e("svg",W,J)}}),K={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},Q=t("path",{d:"M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),X=t("circle",{cx:"256",cy:"256",r:"80",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"},null,-1),Y=[Q,X],an=n({name:"EyeOutline",render:function(s,l){return o(),e("svg",K,Y)}}),Z={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},t1=t("path",{d:"M256 448a32 32 0 0 1-18-5.57c-78.59-53.35-112.62-89.93-131.39-112.8c-40-48.75-59.15-98.8-58.61-153C48.63 114.52 98.46 64 159.08 64c44.08 0 74.61 24.83 92.39 45.51a6 6 0 0 0 9.06 0C278.31 88.81 308.84 64 352.92 64c60.62 0 110.45 50.52 111.08 112.64c.54 54.21-18.63 104.26-58.61 153c-18.77 22.87-52.8 59.45-131.39 112.8a32 32 0 0 1-18 5.56z",fill:"currentColor"},null,-1),n1=[t1],wn=n({name:"Heart",render:function(s,l){return o(),e("svg",Z,n1)}}),o1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},e1=t("path",{d:"M352.92 80C288 80 256 144 256 144s-32-64-96.92-64c-52.76 0-94.54 44.14-95.08 96.81c-1.1 109.33 86.73 187.08 183 252.42a16 16 0 0 0 18 0c96.26-65.34 184.09-143.09 183-252.42c-.54-52.67-42.32-96.81-95.08-96.81z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),r1=[e1],un=n({name:"HeartOutline",render:function(s,l){return o(),e("svg",o1,r1)}}),s1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},l1=t("path",{d:"M80 212v236a16 16 0 0 0 16 16h96V328a24 24 0 0 1 24-24h80a24 24 0 0 1 24 24v136h96a16 16 0 0 0 16-16V212",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),i1=t("path",{d:"M480 256L266.89 52c-5-5.28-16.69-5.34-21.78 0L32 256",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),c1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M400 179V64h-48v69"},null,-1),h1=[l1,i1,c1],_n=n({name:"HomeOutline",render:function(s,l){return o(),e("svg",s1,h1)}}),d1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},a1=t("rect",{x:"48",y:"80",width:"416",height:"352",rx:"48",ry:"48",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),w1=t("circle",{cx:"336",cy:"176",r:"32",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"},null,-1),u1=t("path",{d:"M304 335.79l-90.66-90.49a32 32 0 0 0-43.87-1.3L48 352",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),_1=t("path",{d:"M224 432l123.34-123.34a32 32 0 0 1 43.11-2L464 368",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),k1=[a1,w1,u1,_1],kn=n({name:"ImageOutline",render:function(s,l){return o(),e("svg",d1,k1)}}),x1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},p1=t("path",{d:"M321.89 171.42C233 114 141 155.22 56 65.22c-19.8-21-8.3 235.5 98.1 332.7c77.79 71 197.9 63.08 238.4-5.92s18.28-163.17-70.61-220.58z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),m1=t("path",{d:"M173 253c86 81 175 129 292 147",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),g1=[p1,m1],xn=n({name:"LeafOutline",render:function(s,l){return o(),e("svg",x1,g1)}}),v1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},$1=t("path",{d:"M208 352h-64a96 96 0 0 1 0-192h64",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"36"},null,-1),f1=t("path",{d:"M304 160h64a96 96 0 0 1 0 192h-64",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"36"},null,-1),C1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"36",d:"M163.29 256h187.42"},null,-1),M1=[$1,f1,C1],pn=n({name:"LinkOutline",render:function(s,l){return o(),e("svg",v1,M1)}}),z1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},O1=t("path",{d:"M304 336v40a40 40 0 0 1-40 40H104a40 40 0 0 1-40-40V136a40 40 0 0 1 40-40h152c22.09 0 48 17.91 48 40v40",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),j1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 336l80-80l-80-80"},null,-1),B1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M176 256h256"},null,-1),L1=[O1,j1,B1],mn=n({name:"LogOutOutline",render:function(s,l){return o(),e("svg",z1,L1)}}),H1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},V1=t("path",{d:"M102.41 32C62.38 32 32 64.12 32 103.78v304.45C32 447.86 64.38 480 104.41 480h303.2c40 0 72.39-32.14 72.39-71.77v-3.11c-1.35-.56-115.47-48.57-174.5-76.7c-39.82 48.57-91.18 78-144.5 78c-90.18 0-120.8-78.22-78.1-129.72c9.31-11.22 25.15-21.94 49.73-28c38.45-9.36 99.64 5.85 157 24.61a309.41 309.41 0 0 0 25.46-61.67H138.34V194h91.13v-31.83H119.09v-17.75h110.38V99s0-7.65 7.82-7.65h44.55v53H391v17.75H281.84V194h89.08a359.41 359.41 0 0 1-37.72 94.43c27 9.69 49.31 18.88 67.39 24.89c60.32 20 77.23 22.45 79.41 22.7V103.78C480 64.12 447.6 32 407.61 32h-305.2zM152 274.73q-5.81.06-11.67.63c-11.3 1.13-32.5 6.07-44.09 16.23c-34.74 30-13.94 84.93 56.37 84.93c40.87 0 81.71-25.9 113.79-67.37c-41.36-20-77-34.85-114.4-34.42z",fill:"currentColor"},null,-1),A1=[V1],gn=n({name:"LogoAlipay",render:function(s,l){return o(),e("svg",H1,A1)}}),b1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},y1=i('',6),S1=[y1],vn=n({name:"MegaphoneOutline",render:function(s,l){return o(),e("svg",b1,S1)}}),D1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},T1=t("path",{d:"M402 168c-2.93 40.67-33.1 72-66 72s-63.12-31.32-66-72c-3-42.31 26.37-72 66-72s69 30.46 66 72z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),E1=t("path",{d:"M336 304c-65.17 0-127.84 32.37-143.54 95.41c-2.08 8.34 3.15 16.59 11.72 16.59h263.65c8.57 0 13.77-8.25 11.72-16.59C463.85 335.36 401.18 304 336 304z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"},null,-1),q1=t("path",{d:"M200 185.94c-2.34 32.48-26.72 58.06-53 58.06s-50.7-25.57-53-58.06C91.61 152.15 115.34 128 147 128s55.39 24.77 53 57.94z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),R1=t("path",{d:"M206 306c-18.05-8.27-37.93-11.45-59-11.45c-52 0-102.1 25.85-114.65 76.2c-1.65 6.66 2.53 13.25 9.37 13.25H154",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-miterlimit":"10","stroke-width":"32"},null,-1),U1=[T1,E1,q1,R1],$n=n({name:"PeopleOutline",render:function(s,l){return o(),e("svg",D1,U1)}}),F1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},I1=t("path",{d:"M456.69 421.39L362.6 327.3a173.81 173.81 0 0 0 34.84-104.58C397.44 126.38 319.06 48 222.72 48S48 126.38 48 222.72s78.38 174.72 174.72 174.72A173.81 173.81 0 0 0 327.3 362.6l94.09 94.09a25 25 0 0 0 35.3-35.3zM97.92 222.72a124.8 124.8 0 1 1 124.8 124.8a124.95 124.95 0 0 1-124.8-124.8z",fill:"currentColor"},null,-1),P1=[I1],fn=n({name:"Search",render:function(s,l){return o(),e("svg",F1,P1)}}),W1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},N1=t("path",{d:"M262.29 192.31a64 64 0 1 0 57.4 57.4a64.13 64.13 0 0 0-57.4-57.4zM416.39 256a154.34 154.34 0 0 1-1.53 20.79l45.21 35.46a10.81 10.81 0 0 1 2.45 13.75l-42.77 74a10.81 10.81 0 0 1-13.14 4.59l-44.9-18.08a16.11 16.11 0 0 0-15.17 1.75A164.48 164.48 0 0 1 325 400.8a15.94 15.94 0 0 0-8.82 12.14l-6.73 47.89a11.08 11.08 0 0 1-10.68 9.17h-85.54a11.11 11.11 0 0 1-10.69-8.87l-6.72-47.82a16.07 16.07 0 0 0-9-12.22a155.3 155.3 0 0 1-21.46-12.57a16 16 0 0 0-15.11-1.71l-44.89 18.07a10.81 10.81 0 0 1-13.14-4.58l-42.77-74a10.8 10.8 0 0 1 2.45-13.75l38.21-30a16.05 16.05 0 0 0 6-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 0 0-6.07-13.94l-38.19-30A10.81 10.81 0 0 1 49.48 186l42.77-74a10.81 10.81 0 0 1 13.14-4.59l44.9 18.08a16.11 16.11 0 0 0 15.17-1.75A164.48 164.48 0 0 1 187 111.2a15.94 15.94 0 0 0 8.82-12.14l6.73-47.89A11.08 11.08 0 0 1 213.23 42h85.54a11.11 11.11 0 0 1 10.69 8.87l6.72 47.82a16.07 16.07 0 0 0 9 12.22a155.3 155.3 0 0 1 21.46 12.57a16 16 0 0 0 15.11 1.71l44.89-18.07a10.81 10.81 0 0 1 13.14 4.58l42.77 74a10.8 10.8 0 0 1-2.45 13.75l-38.21 30a16.05 16.05 0 0 0-6.05 14.08c.33 4.14.55 8.3.55 12.47z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),G1=[N1],Cn=n({name:"SettingsOutline",render:function(s,l){return o(),e("svg",W1,G1)}}),J1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},K1=t("path",{d:"M336 192h40a40 40 0 0 1 40 40v192a40 40 0 0 1-40 40H136a40 40 0 0 1-40-40V232a40 40 0 0 1 40-40h40",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),Q1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M336 128l-80-80l-80 80"},null,-1),X1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M256 321V48"},null,-1),Y1=[K1,Q1,X1],Mn=n({name:"ShareOutline",render:function(s,l){return o(),e("svg",J1,Y1)}}),Z1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},tt=i('',5),nt=[tt],zn=n({name:"ShareSocialOutline",render:function(s,l){return o(),e("svg",Z1,nt)}}),ot={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},et=t("path",{d:"M374.79 308.78L457.5 367a16 16 0 0 0 22.5-14.62V159.62A16 16 0 0 0 457.5 145l-82.71 58.22A16 16 0 0 0 368 216.3v79.4a16 16 0 0 0 6.79 13.08z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),rt=t("path",{d:"M268 384H84a52.15 52.15 0 0 1-52-52V180a52.15 52.15 0 0 1 52-52h184.48A51.68 51.68 0 0 1 320 179.52V332a52.15 52.15 0 0 1-52 52z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"},null,-1),st=[et,rt],On=n({name:"VideocamOutline",render:function(s,l){return o(),e("svg",ot,st)}}),lt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},it=t("rect",{x:"48",y:"144",width:"416",height:"288",rx:"48",ry:"48",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),ct=t("path",{d:"M411.36 144v-30A50 50 0 0 0 352 64.9L88.64 109.85A50 50 0 0 0 48 159v49",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),ht=t("path",{d:"M368 320a32 32 0 1 1 32-32a32 32 0 0 1-32 32z",fill:"currentColor"},null,-1),dt=[it,ct,ht],jn=n({name:"WalletOutline",render:function(s,l){return o(),e("svg",lt,dt)}}),at={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},wt=t("g",{fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[t("path",{d:"M9 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-3"}),t("path",{d:"M9 15h3l8.5-8.5a1.5 1.5 0 0 0-3-3L9 12v3"}),t("path",{d:"M16 5l3 3"})],-1),ut=[wt],Bn=n({name:"Edit",render:function(s,l){return o(),e("svg",at,ut)}}),_t={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},kt=i('',1),xt=[kt],Ln=n({name:"Hash",render:function(s,l){return o(),e("svg",_t,xt)}}),pt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},mt=i('',1),gt=[mt],Hn=n({name:"Trash",render:function(s,l){return o(),e("svg",pt,gt)}}),vt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},$t=t("path",{d:"M14.71 6.71a.996.996 0 0 0-1.41 0L8.71 11.3a.996.996 0 0 0 0 1.41l4.59 4.59a.996.996 0 1 0 1.41-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41z",fill:"currentColor"},null,-1),ft=[$t],Vn=n({name:"ChevronLeftRound",render:function(s,l){return o(),e("svg",vt,ft)}}),Ct={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Mt=t("path",{d:"M9.37 5.51A7.35 7.35 0 0 0 9.1 7.5c0 4.08 3.32 7.4 7.4 7.4c.68 0 1.35-.09 1.99-.27A7.014 7.014 0 0 1 12 19c-3.86 0-7-3.14-7-7c0-2.93 1.81-5.45 4.37-6.49zM12 3a9 9 0 1 0 9 9c0-.46-.04-.92-.1-1.36a5.389 5.389 0 0 1-4.4 2.26a5.403 5.403 0 0 1-3.14-9.8c-.44-.06-.9-.1-1.36-.1z",fill:"currentColor"},null,-1),zt=[Mt],An=n({name:"DarkModeOutlined",render:function(s,l){return o(),e("svg",Ct,zt)}}),Ot={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},jt=t("path",{d:"M2 17c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1zm0-5c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1zm0-5c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1z",fill:"currentColor"},null,-1),Bt=[jt],bn=n({name:"DehazeRound",render:function(s,l){return o(),e("svg",Ot,Bt)}}),Lt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Ht=t("path",{d:"M12 9c1.65 0 3 1.35 3 3s-1.35 3-3 3s-3-1.35-3-3s1.35-3 3-3m0-2c-2.76 0-5 2.24-5 5s2.24 5 5 5s5-2.24 5-5s-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58a.996.996 0 0 0-1.41 0a.996.996 0 0 0 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37a.996.996 0 0 0-1.41 0a.996.996 0 0 0 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0a.996.996 0 0 0 0-1.41l-1.06-1.06zm1.06-10.96a.996.996 0 0 0 0-1.41a.996.996 0 0 0-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36a.996.996 0 0 0 0-1.41a.996.996 0 0 0-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z",fill:"currentColor"},null,-1),Vt=[Ht],yn=n({name:"LightModeOutlined",render:function(s,l){return o(),e("svg",Lt,Vt)}}),At={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},bt=t("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2s2-.9 2-2s-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2s2-.9 2-2s-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2s2-.9 2-2s-.9-2-2-2z",fill:"currentColor"},null,-1),yt=[bt],Sn=n({name:"MoreHorizFilled",render:function(s,l){return o(),e("svg",At,yt)}}),St={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Dt=t("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2s-2 .9-2 2s.9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2s2-.9 2-2s-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2s2-.9 2-2s-.9-2-2-2z",fill:"currentColor"},null,-1),Tt=[Dt],Dn=n({name:"MoreVertOutlined",render:function(s,l){return o(),e("svg",St,Tt)}}),Et={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},qt=t("path",{d:"M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57l-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm0 12l-4.34 4.34L12 14H3v-2l3-7h9v10zm4-12h4v12h-4z",fill:"currentColor"},null,-1),Rt=[qt],Tn=n({name:"ThumbDownOutlined",render:function(s,l){return o(),e("svg",Et,Rt)}}),Ut={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Ft=t("path",{opacity:".3",d:"M3 12v2h9l-1.34 5.34L15 15V5H6z",fill:"currentColor"},null,-1),It=t("path",{d:"M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57l-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm0 12l-4.34 4.34L12 14H3v-2l3-7h9v10zm4-12h4v12h-4z",fill:"currentColor"},null,-1),Pt=[Ft,It],En=n({name:"ThumbDownTwotone",render:function(s,l){return o(),e("svg",Ut,Pt)}}),Wt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Nt=t("path",{d:"M9 21h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2c0-1.1-.9-2-2-2h-6.31l.95-4.57l.03-.32c0-.41-.17-.79-.44-1.06L14.17 1L7.58 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2zM9 9l4.34-4.34L12 10h9v2l-3 7H9V9zM1 9h4v12H1z",fill:"currentColor"},null,-1),Gt=[Nt],qn=n({name:"ThumbUpOutlined",render:function(s,l){return o(),e("svg",Wt,Gt)}}),Jt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Kt=t("path",{opacity:".3",d:"M21 12v-2h-9l1.34-5.34L9 9v10h9z",fill:"currentColor"},null,-1),Qt=t("path",{d:"M9 21h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2c0-1.1-.9-2-2-2h-6.31l.95-4.57l.03-.32c0-.41-.17-.79-.44-1.06L14.17 1L7.58 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2zM9 9l4.34-4.34L12 10h9v2l-3 7H9V9zM1 9h4v12H1z",fill:"currentColor"},null,-1),Xt=[Kt,Qt],Rn=n({name:"ThumbUpTwotone",render:function(s,l){return o(),e("svg",Jt,Xt)}});export{Zt as A,on as B,rn as C,bn as D,an as E,An as F,_n as H,kn as I,xn as L,vn as M,$n as P,fn as S,Hn as T,On as V,jn as W,Cn as a,Ln as b,mn as c,dn as d,qn as e,Rn as f,Tn as g,En as h,Sn as i,un as j,wn as k,en as l,nn as m,tn as n,zn as o,Dn as p,Mn as q,ln as r,cn as s,sn as t,pn as u,hn as v,gn as w,Bn as x,Vn as y,yn as z}; +import{d as n,o,c as e,a as t,b as i}from"./@vue-d002002f.js";const c={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},h=t("path",{d:"M216.08 192v143.85a40.08 40.08 0 0 0 80.15 0l.13-188.55a67.94 67.94 0 1 0-135.87 0v189.82a95.51 95.51 0 1 0 191 0V159.74",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-miterlimit":"10","stroke-width":"32"},null,-1),d=[h],Zt=n({name:"AttachOutline",render:function(s,l){return o(),e("svg",c,d)}}),a={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},w=t("path",{d:"M400 480a16 16 0 0 1-10.63-4L256 357.41L122.63 476A16 16 0 0 1 96 464V96a64.07 64.07 0 0 1 64-64h192a64.07 64.07 0 0 1 64 64v368a16 16 0 0 1-16 16z",fill:"currentColor"},null,-1),u=[w],tn=n({name:"Bookmark",render:function(s,l){return o(),e("svg",a,u)}}),_={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},k=t("path",{d:"M352 48H160a48 48 0 0 0-48 48v368l144-128l144 128V96a48 48 0 0 0-48-48z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),x=[k],nn=n({name:"BookmarkOutline",render:function(s,l){return o(),e("svg",_,x)}}),p={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},m=t("path",{d:"M128 80V64a48.14 48.14 0 0 1 48-48h224a48.14 48.14 0 0 1 48 48v368l-80-64",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),g=t("path",{d:"M320 96H112a48.14 48.14 0 0 0-48 48v352l152-128l152 128V144a48.14 48.14 0 0 0-48-48z",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),v=[m,g],on=n({name:"BookmarksOutline",render:function(s,l){return o(),e("svg",p,v)}}),$={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},f=t("path",{d:"M408 64H104a56.16 56.16 0 0 0-56 56v192a56.16 56.16 0 0 0 56 56h40v80l93.72-78.14a8 8 0 0 1 5.13-1.86H408a56.16 56.16 0 0 0 56-56V120a56.16 56.16 0 0 0-56-56z",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),C=[f],en=n({name:"ChatboxOutline",render:function(s,l){return o(),e("svg",$,C)}}),M={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},z=t("path",{d:"M431 320.6c-1-3.6 1.2-8.6 3.3-12.2a33.68 33.68 0 0 1 2.1-3.1A162 162 0 0 0 464 215c.3-92.2-77.5-167-173.7-167c-83.9 0-153.9 57.1-170.3 132.9a160.7 160.7 0 0 0-3.7 34.2c0 92.3 74.8 169.1 171 169.1c15.3 0 35.9-4.6 47.2-7.7s22.5-7.2 25.4-8.3a26.44 26.44 0 0 1 9.3-1.7a26 26 0 0 1 10.1 2l56.7 20.1a13.52 13.52 0 0 0 3.9 1a8 8 0 0 0 8-8a12.85 12.85 0 0 0-.5-2.7z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-miterlimit":"10","stroke-width":"32"},null,-1),O=t("path",{d:"M66.46 232a146.23 146.23 0 0 0 6.39 152.67c2.31 3.49 3.61 6.19 3.21 8s-11.93 61.87-11.93 61.87a8 8 0 0 0 2.71 7.68A8.17 8.17 0 0 0 72 464a7.26 7.26 0 0 0 2.91-.6l56.21-22a15.7 15.7 0 0 1 12 .2c18.94 7.38 39.88 12 60.83 12A159.21 159.21 0 0 0 284 432.11",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-miterlimit":"10","stroke-width":"32"},null,-1),j=[z,O],rn=n({name:"ChatbubblesOutline",render:function(s,l){return o(),e("svg",M,j)}}),B={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},L=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M464 128L240 384l-96-96"},null,-1),H=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M144 384l-96-96"},null,-1),V=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 128L232 284"},null,-1),A=[L,H,V],sn=n({name:"CheckmarkDoneOutline",render:function(s,l){return o(),e("svg",B,A)}}),b={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},y=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M416 128L192 384l-96-96"},null,-1),S=[y],ln=n({name:"CheckmarkOutline",render:function(s,l){return o(),e("svg",b,S)}}),D={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},T=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 368L144 144"},null,-1),E=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 144L144 368"},null,-1),q=[T,E],cn=n({name:"CloseOutline",render:function(s,l){return o(),e("svg",D,q)}}),R={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},U=t("path",{d:"M320 336h76c55 0 100-21.21 100-75.6s-53-73.47-96-75.6C391.11 99.74 329 48 256 48c-69 0-113.44 45.79-128 91.2c-60 5.7-112 35.88-112 98.4S70 336 136 336h56",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),F=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M192 400.1l64 63.9l64-63.9"},null,-1),I=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M256 224v224.03"},null,-1),P=[U,F,I],hn=n({name:"CloudDownloadOutline",render:function(s,l){return o(),e("svg",R,P)}}),W={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},N=t("path",{d:"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192s192-86 192-192z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"},null,-1),G=t("path",{d:"M350.67 150.93l-117.2 46.88a64 64 0 0 0-35.66 35.66l-46.88 117.2a8 8 0 0 0 10.4 10.4l117.2-46.88a64 64 0 0 0 35.66-35.66l46.88-117.2a8 8 0 0 0-10.4-10.4zM256 280a24 24 0 1 1 24-24a24 24 0 0 1-24 24z",fill:"currentColor"},null,-1),J=[N,G],dn=n({name:"CompassOutline",render:function(s,l){return o(),e("svg",W,J)}}),K={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},Q=t("path",{d:"M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),X=t("circle",{cx:"256",cy:"256",r:"80",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"},null,-1),Y=[Q,X],an=n({name:"EyeOutline",render:function(s,l){return o(),e("svg",K,Y)}}),Z={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},t1=t("path",{d:"M256 448a32 32 0 0 1-18-5.57c-78.59-53.35-112.62-89.93-131.39-112.8c-40-48.75-59.15-98.8-58.61-153C48.63 114.52 98.46 64 159.08 64c44.08 0 74.61 24.83 92.39 45.51a6 6 0 0 0 9.06 0C278.31 88.81 308.84 64 352.92 64c60.62 0 110.45 50.52 111.08 112.64c.54 54.21-18.63 104.26-58.61 153c-18.77 22.87-52.8 59.45-131.39 112.8a32 32 0 0 1-18 5.56z",fill:"currentColor"},null,-1),n1=[t1],wn=n({name:"Heart",render:function(s,l){return o(),e("svg",Z,n1)}}),o1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},e1=t("path",{d:"M352.92 80C288 80 256 144 256 144s-32-64-96.92-64c-52.76 0-94.54 44.14-95.08 96.81c-1.1 109.33 86.73 187.08 183 252.42a16 16 0 0 0 18 0c96.26-65.34 184.09-143.09 183-252.42c-.54-52.67-42.32-96.81-95.08-96.81z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),r1=[e1],un=n({name:"HeartOutline",render:function(s,l){return o(),e("svg",o1,r1)}}),s1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},l1=t("path",{d:"M80 212v236a16 16 0 0 0 16 16h96V328a24 24 0 0 1 24-24h80a24 24 0 0 1 24 24v136h96a16 16 0 0 0 16-16V212",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),i1=t("path",{d:"M480 256L266.89 52c-5-5.28-16.69-5.34-21.78 0L32 256",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),c1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M400 179V64h-48v69"},null,-1),h1=[l1,i1,c1],_n=n({name:"HomeOutline",render:function(s,l){return o(),e("svg",s1,h1)}}),d1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},a1=t("rect",{x:"48",y:"80",width:"416",height:"352",rx:"48",ry:"48",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),w1=t("circle",{cx:"336",cy:"176",r:"32",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"},null,-1),u1=t("path",{d:"M304 335.79l-90.66-90.49a32 32 0 0 0-43.87-1.3L48 352",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),_1=t("path",{d:"M224 432l123.34-123.34a32 32 0 0 1 43.11-2L464 368",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),k1=[a1,w1,u1,_1],kn=n({name:"ImageOutline",render:function(s,l){return o(),e("svg",d1,k1)}}),x1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},p1=t("path",{d:"M321.89 171.42C233 114 141 155.22 56 65.22c-19.8-21-8.3 235.5 98.1 332.7c77.79 71 197.9 63.08 238.4-5.92s18.28-163.17-70.61-220.58z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),m1=t("path",{d:"M173 253c86 81 175 129 292 147",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),g1=[p1,m1],xn=n({name:"LeafOutline",render:function(s,l){return o(),e("svg",x1,g1)}}),v1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},$1=t("path",{d:"M208 352h-64a96 96 0 0 1 0-192h64",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"36"},null,-1),f1=t("path",{d:"M304 160h64a96 96 0 0 1 0 192h-64",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"36"},null,-1),C1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"36",d:"M163.29 256h187.42"},null,-1),M1=[$1,f1,C1],pn=n({name:"LinkOutline",render:function(s,l){return o(),e("svg",v1,M1)}}),z1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},O1=t("path",{d:"M304 336v40a40 40 0 0 1-40 40H104a40 40 0 0 1-40-40V136a40 40 0 0 1 40-40h152c22.09 0 48 17.91 48 40v40",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),j1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 336l80-80l-80-80"},null,-1),B1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M176 256h256"},null,-1),L1=[O1,j1,B1],mn=n({name:"LogOutOutline",render:function(s,l){return o(),e("svg",z1,L1)}}),H1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},V1=t("path",{d:"M102.41 32C62.38 32 32 64.12 32 103.78v304.45C32 447.86 64.38 480 104.41 480h303.2c40 0 72.39-32.14 72.39-71.77v-3.11c-1.35-.56-115.47-48.57-174.5-76.7c-39.82 48.57-91.18 78-144.5 78c-90.18 0-120.8-78.22-78.1-129.72c9.31-11.22 25.15-21.94 49.73-28c38.45-9.36 99.64 5.85 157 24.61a309.41 309.41 0 0 0 25.46-61.67H138.34V194h91.13v-31.83H119.09v-17.75h110.38V99s0-7.65 7.82-7.65h44.55v53H391v17.75H281.84V194h89.08a359.41 359.41 0 0 1-37.72 94.43c27 9.69 49.31 18.88 67.39 24.89c60.32 20 77.23 22.45 79.41 22.7V103.78C480 64.12 447.6 32 407.61 32h-305.2zM152 274.73q-5.81.06-11.67.63c-11.3 1.13-32.5 6.07-44.09 16.23c-34.74 30-13.94 84.93 56.37 84.93c40.87 0 81.71-25.9 113.79-67.37c-41.36-20-77-34.85-114.4-34.42z",fill:"currentColor"},null,-1),A1=[V1],gn=n({name:"LogoAlipay",render:function(s,l){return o(),e("svg",H1,A1)}}),b1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},y1=i('',6),S1=[y1],vn=n({name:"MegaphoneOutline",render:function(s,l){return o(),e("svg",b1,S1)}}),D1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},T1=t("path",{d:"M402 168c-2.93 40.67-33.1 72-66 72s-63.12-31.32-66-72c-3-42.31 26.37-72 66-72s69 30.46 66 72z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),E1=t("path",{d:"M336 304c-65.17 0-127.84 32.37-143.54 95.41c-2.08 8.34 3.15 16.59 11.72 16.59h263.65c8.57 0 13.77-8.25 11.72-16.59C463.85 335.36 401.18 304 336 304z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"},null,-1),q1=t("path",{d:"M200 185.94c-2.34 32.48-26.72 58.06-53 58.06s-50.7-25.57-53-58.06C91.61 152.15 115.34 128 147 128s55.39 24.77 53 57.94z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),R1=t("path",{d:"M206 306c-18.05-8.27-37.93-11.45-59-11.45c-52 0-102.1 25.85-114.65 76.2c-1.65 6.66 2.53 13.25 9.37 13.25H154",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-miterlimit":"10","stroke-width":"32"},null,-1),U1=[T1,E1,q1,R1],$n=n({name:"PeopleOutline",render:function(s,l){return o(),e("svg",D1,U1)}}),F1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},I1=t("path",{d:"M456.69 421.39L362.6 327.3a173.81 173.81 0 0 0 34.84-104.58C397.44 126.38 319.06 48 222.72 48S48 126.38 48 222.72s78.38 174.72 174.72 174.72A173.81 173.81 0 0 0 327.3 362.6l94.09 94.09a25 25 0 0 0 35.3-35.3zM97.92 222.72a124.8 124.8 0 1 1 124.8 124.8a124.95 124.95 0 0 1-124.8-124.8z",fill:"currentColor"},null,-1),P1=[I1],fn=n({name:"Search",render:function(s,l){return o(),e("svg",F1,P1)}}),W1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},N1=t("path",{d:"M262.29 192.31a64 64 0 1 0 57.4 57.4a64.13 64.13 0 0 0-57.4-57.4zM416.39 256a154.34 154.34 0 0 1-1.53 20.79l45.21 35.46a10.81 10.81 0 0 1 2.45 13.75l-42.77 74a10.81 10.81 0 0 1-13.14 4.59l-44.9-18.08a16.11 16.11 0 0 0-15.17 1.75A164.48 164.48 0 0 1 325 400.8a15.94 15.94 0 0 0-8.82 12.14l-6.73 47.89a11.08 11.08 0 0 1-10.68 9.17h-85.54a11.11 11.11 0 0 1-10.69-8.87l-6.72-47.82a16.07 16.07 0 0 0-9-12.22a155.3 155.3 0 0 1-21.46-12.57a16 16 0 0 0-15.11-1.71l-44.89 18.07a10.81 10.81 0 0 1-13.14-4.58l-42.77-74a10.8 10.8 0 0 1 2.45-13.75l38.21-30a16.05 16.05 0 0 0 6-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 0 0-6.07-13.94l-38.19-30A10.81 10.81 0 0 1 49.48 186l42.77-74a10.81 10.81 0 0 1 13.14-4.59l44.9 18.08a16.11 16.11 0 0 0 15.17-1.75A164.48 164.48 0 0 1 187 111.2a15.94 15.94 0 0 0 8.82-12.14l6.73-47.89A11.08 11.08 0 0 1 213.23 42h85.54a11.11 11.11 0 0 1 10.69 8.87l6.72 47.82a16.07 16.07 0 0 0 9 12.22a155.3 155.3 0 0 1 21.46 12.57a16 16 0 0 0 15.11 1.71l44.89-18.07a10.81 10.81 0 0 1 13.14 4.58l42.77 74a10.8 10.8 0 0 1-2.45 13.75l-38.21 30a16.05 16.05 0 0 0-6.05 14.08c.33 4.14.55 8.3.55 12.47z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),G1=[N1],Cn=n({name:"SettingsOutline",render:function(s,l){return o(),e("svg",W1,G1)}}),J1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},K1=t("path",{d:"M336 192h40a40 40 0 0 1 40 40v192a40 40 0 0 1-40 40H136a40 40 0 0 1-40-40V232a40 40 0 0 1 40-40h40",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),Q1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M336 128l-80-80l-80 80"},null,-1),X1=t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M256 321V48"},null,-1),Y1=[K1,Q1,X1],Mn=n({name:"ShareOutline",render:function(s,l){return o(),e("svg",J1,Y1)}}),Z1={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},tt=i('',5),nt=[tt],zn=n({name:"ShareSocialOutline",render:function(s,l){return o(),e("svg",Z1,nt)}}),ot={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},et=t("path",{d:"M374.79 308.78L457.5 367a16 16 0 0 0 22.5-14.62V159.62A16 16 0 0 0 457.5 145l-82.71 58.22A16 16 0 0 0 368 216.3v79.4a16 16 0 0 0 6.79 13.08z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"},null,-1),rt=t("path",{d:"M268 384H84a52.15 52.15 0 0 1-52-52V180a52.15 52.15 0 0 1 52-52h184.48A51.68 51.68 0 0 1 320 179.52V332a52.15 52.15 0 0 1-52 52z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"},null,-1),st=[et,rt],On=n({name:"VideocamOutline",render:function(s,l){return o(),e("svg",ot,st)}}),lt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},it=t("rect",{x:"48",y:"144",width:"416",height:"288",rx:"48",ry:"48",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),ct=t("path",{d:"M411.36 144v-30A50 50 0 0 0 352 64.9L88.64 109.85A50 50 0 0 0 48 159v49",fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"32"},null,-1),ht=t("path",{d:"M368 320a32 32 0 1 1 32-32a32 32 0 0 1-32 32z",fill:"currentColor"},null,-1),dt=[it,ct,ht],jn=n({name:"WalletOutline",render:function(s,l){return o(),e("svg",lt,dt)}}),at={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},wt=t("g",{fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[t("path",{d:"M9 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-3"}),t("path",{d:"M9 15h3l8.5-8.5a1.5 1.5 0 0 0-3-3L9 12v3"}),t("path",{d:"M16 5l3 3"})],-1),ut=[wt],Bn=n({name:"Edit",render:function(s,l){return o(),e("svg",at,ut)}}),_t={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},kt=i('',1),xt=[kt],Ln=n({name:"Hash",render:function(s,l){return o(),e("svg",_t,xt)}}),pt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},mt=i('',1),gt=[mt],Hn=n({name:"Trash",render:function(s,l){return o(),e("svg",pt,gt)}}),vt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},$t=t("path",{d:"M14.71 6.71a.996.996 0 0 0-1.41 0L8.71 11.3a.996.996 0 0 0 0 1.41l4.59 4.59a.996.996 0 1 0 1.41-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41z",fill:"currentColor"},null,-1),ft=[$t],Vn=n({name:"ChevronLeftRound",render:function(s,l){return o(),e("svg",vt,ft)}}),Ct={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Mt=t("path",{d:"M9.37 5.51A7.35 7.35 0 0 0 9.1 7.5c0 4.08 3.32 7.4 7.4 7.4c.68 0 1.35-.09 1.99-.27A7.014 7.014 0 0 1 12 19c-3.86 0-7-3.14-7-7c0-2.93 1.81-5.45 4.37-6.49zM12 3a9 9 0 1 0 9 9c0-.46-.04-.92-.1-1.36a5.389 5.389 0 0 1-4.4 2.26a5.403 5.403 0 0 1-3.14-9.8c-.44-.06-.9-.1-1.36-.1z",fill:"currentColor"},null,-1),zt=[Mt],An=n({name:"DarkModeOutlined",render:function(s,l){return o(),e("svg",Ct,zt)}}),Ot={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},jt=t("path",{d:"M2 17c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1zm0-5c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1zm0-5c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1z",fill:"currentColor"},null,-1),Bt=[jt],bn=n({name:"DehazeRound",render:function(s,l){return o(),e("svg",Ot,Bt)}}),Lt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Ht=t("path",{d:"M12 9c1.65 0 3 1.35 3 3s-1.35 3-3 3s-3-1.35-3-3s1.35-3 3-3m0-2c-2.76 0-5 2.24-5 5s2.24 5 5 5s5-2.24 5-5s-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58a.996.996 0 0 0-1.41 0a.996.996 0 0 0 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37a.996.996 0 0 0-1.41 0a.996.996 0 0 0 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0a.996.996 0 0 0 0-1.41l-1.06-1.06zm1.06-10.96a.996.996 0 0 0 0-1.41a.996.996 0 0 0-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36a.996.996 0 0 0 0-1.41a.996.996 0 0 0-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z",fill:"currentColor"},null,-1),Vt=[Ht],yn=n({name:"LightModeOutlined",render:function(s,l){return o(),e("svg",Lt,Vt)}}),At={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},bt=t("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2s2-.9 2-2s-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2s2-.9 2-2s-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2s2-.9 2-2s-.9-2-2-2z",fill:"currentColor"},null,-1),yt=[bt],Sn=n({name:"MoreHorizFilled",render:function(s,l){return o(),e("svg",At,yt)}}),St={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Dt=t("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2s-2 .9-2 2s.9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2s2-.9 2-2s-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2s2-.9 2-2s-.9-2-2-2z",fill:"currentColor"},null,-1),Tt=[Dt],Dn=n({name:"MoreVertOutlined",render:function(s,l){return o(),e("svg",St,Tt)}}),Et={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},qt=t("path",{d:"M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57l-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm0 12l-4.34 4.34L12 14H3v-2l3-7h9v10zm4-12h4v12h-4z",fill:"currentColor"},null,-1),Rt=[qt],Tn=n({name:"ThumbDownOutlined",render:function(s,l){return o(),e("svg",Et,Rt)}}),Ut={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Ft=t("path",{opacity:".3",d:"M3 12v2h9l-1.34 5.34L15 15V5H6z",fill:"currentColor"},null,-1),It=t("path",{d:"M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57l-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm0 12l-4.34 4.34L12 14H3v-2l3-7h9v10zm4-12h4v12h-4z",fill:"currentColor"},null,-1),Pt=[Ft,It],En=n({name:"ThumbDownTwotone",render:function(s,l){return o(),e("svg",Ut,Pt)}}),Wt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Nt=t("path",{d:"M9 21h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2c0-1.1-.9-2-2-2h-6.31l.95-4.57l.03-.32c0-.41-.17-.79-.44-1.06L14.17 1L7.58 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2zM9 9l4.34-4.34L12 10h9v2l-3 7H9V9zM1 9h4v12H1z",fill:"currentColor"},null,-1),Gt=[Nt],qn=n({name:"ThumbUpOutlined",render:function(s,l){return o(),e("svg",Wt,Gt)}}),Jt={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Kt=t("path",{opacity:".3",d:"M21 12v-2h-9l1.34-5.34L9 9v10h9z",fill:"currentColor"},null,-1),Qt=t("path",{d:"M9 21h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2c0-1.1-.9-2-2-2h-6.31l.95-4.57l.03-.32c0-.41-.17-.79-.44-1.06L14.17 1L7.58 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2zM9 9l4.34-4.34L12 10h9v2l-3 7H9V9zM1 9h4v12H1z",fill:"currentColor"},null,-1),Xt=[Kt,Qt],Rn=n({name:"ThumbUpTwotone",render:function(s,l){return o(),e("svg",Jt,Xt)}});export{Zt as A,on as B,rn as C,bn as D,an as E,An as F,_n as H,kn as I,xn as L,vn as M,$n as P,fn as S,Hn as T,On as V,jn as W,Cn as a,Ln as b,mn as c,dn as d,qn as e,Rn as f,Tn as g,En as h,Sn as i,un as j,wn as k,en as l,nn as m,tn as n,zn as o,Dn as p,Mn as q,ln as r,cn as s,sn as t,pn as u,hn as v,gn as w,Bn as x,Vn as y,yn as z}; diff --git a/web/dist/assets/@vue-b8d06722.js b/web/dist/assets/@vue-b8d06722.js deleted file mode 100644 index 516463fb..00000000 --- a/web/dist/assets/@vue-b8d06722.js +++ /dev/null @@ -1 +0,0 @@ -function Un(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const Z={},it=[],we=()=>{},yo=()=>!1,vo=/^on[^a-z]/,nn=e=>vo.test(e),Kn=e=>e.startsWith("onUpdate:"),ne=Object.assign,kn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},xo=Object.prototype.hasOwnProperty,U=(e,t)=>xo.call(e,t),N=Array.isArray,lt=e=>Lt(e)==="[object Map]",ir=e=>Lt(e)==="[object Set]",Co=e=>Lt(e)==="[object RegExp]",L=e=>typeof e=="function",ee=e=>typeof e=="string",Vn=e=>typeof e=="symbol",Y=e=>e!==null&&typeof e=="object",lr=e=>Y(e)&&L(e.then)&&L(e.catch),cr=Object.prototype.toString,Lt=e=>cr.call(e),Eo=e=>Lt(e).slice(8,-1),fr=e=>Lt(e)==="[object Object]",Wn=e=>ee(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Wt=Un(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),sn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},wo=/-(\w)/g,Pe=sn(e=>e.replace(wo,(t,n)=>n?n.toUpperCase():"")),To=/\B([A-Z])/g,et=sn(e=>e.replace(To,"-$1").toLowerCase()),rn=sn(e=>e.charAt(0).toUpperCase()+e.slice(1)),_n=sn(e=>e?`on${rn(e)}`:""),Ot=(e,t)=>!Object.is(e,t),ct=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},An=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ao=e=>{const t=ee(e)?Number(e):NaN;return isNaN(t)?e:t};let xs;const On=()=>xs||(xs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function zn(e){if(N(e)){const t={};for(let n=0;n{if(n){const s=n.split(Io);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function qn(e){let t="";if(ee(e))t=e;else if(N(e))for(let n=0;nee(e)?e:e==null?"":N(e)||Y(e)&&(e.toString===cr||!L(e.toString))?JSON.stringify(e,ar,2):String(e),ar=(e,t)=>t&&t.__v_isRef?ar(e,t.value):lt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:ir(t)?{[`Set(${t.size})`]:[...t.values()]}:Y(t)&&!N(t)&&!fr(t)?String(t):t;let xe;class dr{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=xe,!t&&xe&&(this.index=(xe.scopes||(xe.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=xe;try{return xe=this,t()}finally{xe=n}}}on(){xe=this}off(){xe=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},hr=e=>(e.w&ke)>0,pr=e=>(e.n&ke)>0,Lo=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(d==="length"||d>=f)&&l.push(u)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":N(e)?Wn(n)&&l.push(i.get("length")):(l.push(i.get(Ze)),lt(e)&&l.push(i.get(Pn)));break;case"delete":N(e)||(l.push(i.get(Ze)),lt(e)&&l.push(i.get(Pn)));break;case"set":lt(e)&&l.push(i.get(Ze));break}if(l.length===1)l[0]&&Fn(l[0]);else{const f=[];for(const u of l)u&&f.push(...u);Fn(Jn(f))}}function Fn(e,t){const n=N(e)?e:[...e];for(const s of n)s.computed&&Es(s);for(const s of n)s.computed||Es(s)}function Es(e,t){(e!==Ce||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Ho(e,t){var n;return(n=Xt.get(e))==null?void 0:n.get(t)}const Bo=Un("__proto__,__v_isRef,__isVue"),_r=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Vn)),$o=Yn(),jo=Yn(!1,!0),Uo=Yn(!0),ws=Ko();function Ko(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=j(this);for(let o=0,i=this.length;o{e[t]=function(...n){gt();const s=j(this)[t].apply(this,n);return mt(),s}}),e}function ko(e){const t=j(this);return de(t,"has",e),t.hasOwnProperty(e)}function Yn(e=!1,t=!1){return function(s,r,o){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&o===(e?t?oi:Cr:t?xr:vr).get(s))return s;const i=N(s);if(!e){if(i&&U(ws,r))return Reflect.get(ws,r,o);if(r==="hasOwnProperty")return ko}const l=Reflect.get(s,r,o);return(Vn(r)?_r.has(r):Bo(r))||(e||de(s,"get",r),t)?l:ie(l)?i&&Wn(r)?l:l.value:Y(l)?e?Er(l):Gn(l):l}}const Vo=br(),Wo=br(!0);function br(e=!1){return function(n,s,r,o){let i=n[s];if(dt(i)&&ie(i)&&!ie(r))return!1;if(!e&&(!Zt(r)&&!dt(r)&&(i=j(i),r=j(r)),!N(n)&&ie(i)&&!ie(r)))return i.value=r,!0;const l=N(n)&&Wn(s)?Number(s)e,on=e=>Reflect.getPrototypeOf(e);function Bt(e,t,n=!1,s=!1){e=e.__v_raw;const r=j(e),o=j(t);n||(t!==o&&de(r,"get",t),de(r,"get",o));const{has:i}=on(r),l=s?Xn:n?ts:It;if(i.call(r,t))return l(e.get(t));if(i.call(r,o))return l(e.get(o));e!==r&&e.get(t)}function $t(e,t=!1){const n=this.__v_raw,s=j(n),r=j(e);return t||(e!==r&&de(s,"has",e),de(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function jt(e,t=!1){return e=e.__v_raw,!t&&de(j(e),"iterate",Ze),Reflect.get(e,"size",e)}function Ts(e){e=j(e);const t=j(this);return on(t).has.call(t,e)||(t.add(e),Ne(t,"add",e,e)),this}function As(e,t){t=j(t);const n=j(this),{has:s,get:r}=on(n);let o=s.call(n,e);o||(e=j(e),o=s.call(n,e));const i=r.call(n,e);return n.set(e,t),o?Ot(t,i)&&Ne(n,"set",e,t):Ne(n,"add",e,t),this}function Os(e){const t=j(this),{has:n,get:s}=on(t);let r=n.call(t,e);r||(e=j(e),r=n.call(t,e)),s&&s.call(t,e);const o=t.delete(e);return r&&Ne(t,"delete",e,void 0),o}function Is(){const e=j(this),t=e.size!==0,n=e.clear();return t&&Ne(e,"clear",void 0,void 0),n}function Ut(e,t){return function(s,r){const o=this,i=o.__v_raw,l=j(i),f=t?Xn:e?ts:It;return!e&&de(l,"iterate",Ze),i.forEach((u,d)=>s.call(r,f(u),f(d),o))}}function Kt(e,t,n){return function(...s){const r=this.__v_raw,o=j(r),i=lt(o),l=e==="entries"||e===Symbol.iterator&&i,f=e==="keys"&&i,u=r[e](...s),d=n?Xn:t?ts:It;return!t&&de(o,"iterate",f?Pn:Ze),{next(){const{value:p,done:g}=u.next();return g?{value:p,done:g}:{value:l?[d(p[0]),d(p[1])]:d(p),done:g}},[Symbol.iterator](){return this}}}}function De(e){return function(...t){return e==="delete"?!1:this}}function Xo(){const e={get(o){return Bt(this,o)},get size(){return jt(this)},has:$t,add:Ts,set:As,delete:Os,clear:Is,forEach:Ut(!1,!1)},t={get(o){return Bt(this,o,!1,!0)},get size(){return jt(this)},has:$t,add:Ts,set:As,delete:Os,clear:Is,forEach:Ut(!1,!0)},n={get(o){return Bt(this,o,!0)},get size(){return jt(this,!0)},has(o){return $t.call(this,o,!0)},add:De("add"),set:De("set"),delete:De("delete"),clear:De("clear"),forEach:Ut(!0,!1)},s={get(o){return Bt(this,o,!0,!0)},get size(){return jt(this,!0)},has(o){return $t.call(this,o,!0)},add:De("add"),set:De("set"),delete:De("delete"),clear:De("clear"),forEach:Ut(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=Kt(o,!1,!1),n[o]=Kt(o,!0,!1),t[o]=Kt(o,!1,!0),s[o]=Kt(o,!0,!0)}),[e,n,t,s]}const[Zo,Go,ei,ti]=Xo();function Zn(e,t){const n=t?e?ti:ei:e?Go:Zo;return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(U(n,r)&&r in s?n:s,r,o)}const ni={get:Zn(!1,!1)},si={get:Zn(!1,!0)},ri={get:Zn(!0,!1)},vr=new WeakMap,xr=new WeakMap,Cr=new WeakMap,oi=new WeakMap;function ii(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function li(e){return e.__v_skip||!Object.isExtensible(e)?0:ii(Eo(e))}function Gn(e){return dt(e)?e:es(e,!1,yr,ni,vr)}function ci(e){return es(e,!1,Yo,si,xr)}function Er(e){return es(e,!0,Qo,ri,Cr)}function es(e,t,n,s,r){if(!Y(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const i=li(e);if(i===0)return e;const l=new Proxy(e,i===2?s:n);return r.set(e,l),l}function ft(e){return dt(e)?ft(e.__v_raw):!!(e&&e.__v_isReactive)}function dt(e){return!!(e&&e.__v_isReadonly)}function Zt(e){return!!(e&&e.__v_isShallow)}function wr(e){return ft(e)||dt(e)}function j(e){const t=e&&e.__v_raw;return t?j(t):e}function Tr(e){return Yt(e,"__v_skip",!0),e}const It=e=>Y(e)?Gn(e):e,ts=e=>Y(e)?Er(e):e;function Ar(e){Ue&&Ce&&(e=j(e),mr(e.dep||(e.dep=Jn())))}function Or(e,t){e=j(e);const n=e.dep;n&&Fn(n)}function ie(e){return!!(e&&e.__v_isRef===!0)}function fi(e){return Ir(e,!1)}function hc(e){return Ir(e,!0)}function Ir(e,t){return ie(e)?e:new ui(e,t)}class ui{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:j(t),this._value=n?t:It(t)}get value(){return Ar(this),this._value}set value(t){const n=this.__v_isShallow||Zt(t)||dt(t);t=n?t:j(t),Ot(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:It(t),Or(this))}}function ai(e){return ie(e)?e.value:e}const di={get:(e,t,n)=>ai(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ie(r)&&!ie(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Pr(e){return ft(e)?e:new Proxy(e,di)}function pc(e){const t=N(e)?new Array(e.length):{};for(const n in e)t[n]=Fr(e,n);return t}class hi{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Ho(j(this._object),this._key)}}class pi{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function gc(e,t,n){return ie(e)?e:L(e)?new pi(e):Y(e)&&arguments.length>1?Fr(e,t,n):fi(e)}function Fr(e,t,n){const s=e[t];return ie(s)?s:new hi(e,t,n)}class gi{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new Qn(t,()=>{this._dirty||(this._dirty=!0,Or(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=j(this);return Ar(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function mi(e,t,n=!1){let s,r;const o=L(e);return o?(s=e,r=we):(s=e.get,r=e.set),new gi(s,r,o||!r,n)}function Ke(e,t,n,s){let r;try{r=s?e(...s):e()}catch(o){ln(o,t,n)}return r}function be(e,t,n,s){if(L(e)){const o=Ke(e,t,n,s);return o&&lr(o)&&o.catch(i=>{ln(i,t,n)}),o}const r=[];for(let o=0;o>>1;Ft(fe[s])Ie&&fe.splice(t,1)}function xi(e){N(e)?ut.push(...e):(!Se||!Se.includes(e,e.allowRecurse?Qe+1:Qe))&&ut.push(e),Sr()}function Ps(e,t=Pt?Ie+1:0){for(;tFt(n)-Ft(s)),Qe=0;Qee.id==null?1/0:e.id,Ci=(e,t)=>{const n=Ft(e)-Ft(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Rr(e){Mn=!1,Pt=!0,fe.sort(Ci);const t=we;try{for(Ie=0;Ieee(T)?T.trim():T)),p&&(r=n.map(An))}let l,f=s[l=_n(t)]||s[l=_n(Pe(t))];!f&&o&&(f=s[l=_n(et(t))]),f&&be(f,e,6,r);const u=s[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,be(u,e,6,r)}}function Lr(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},l=!1;if(!L(e)){const f=u=>{const d=Lr(u,t,!0);d&&(l=!0,ne(i,d))};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}return!o&&!l?(Y(e)&&s.set(e,null),null):(N(o)?o.forEach(f=>i[f]=null):ne(i,o),Y(e)&&s.set(e,i),i)}function cn(e,t){return!e||!nn(t)?!1:(t=t.slice(2).replace(/Once$/,""),U(e,t[0].toLowerCase()+t.slice(1))||U(e,et(t))||U(e,t))}let ce=null,fn=null;function Gt(e){const t=ce;return ce=e,fn=e&&e.type.__scopeId||null,t}function mc(e){fn=e}function _c(){fn=null}function wi(e,t=ce,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Ks(-1);const o=Gt(t);let i;try{i=e(...r)}finally{Gt(o),s._d&&Ks(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function bn(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:o,propsOptions:[i],slots:l,attrs:f,emit:u,render:d,renderCache:p,data:g,setupState:T,ctx:D,inheritAttrs:O}=e;let K,V;const w=Gt(e);try{if(n.shapeFlag&4){const v=r||s;K=Oe(d.call(v,v,p,o,T,g,D)),V=f}else{const v=t;K=Oe(v.length>1?v(o,{attrs:f,slots:l,emit:u}):v(o,null)),V=t.props?f:Ti(f)}}catch(v){At.length=0,ln(v,e,1),K=ue(ye)}let I=K;if(V&&O!==!1){const v=Object.keys(V),{shapeFlag:H}=I;v.length&&H&7&&(i&&v.some(Kn)&&(V=Ai(V,i)),I=Re(I,V))}return n.dirs&&(I=Re(I),I.dirs=I.dirs?I.dirs.concat(n.dirs):n.dirs),n.transition&&(I.transition=n.transition),K=I,Gt(w),K}const Ti=e=>{let t;for(const n in e)(n==="class"||n==="style"||nn(n))&&((t||(t={}))[n]=e[n]);return t},Ai=(e,t)=>{const n={};for(const s in e)(!Kn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Oi(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:l,patchFlag:f}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&f>=0){if(f&1024)return!0;if(f&16)return s?Fs(s,i,u):!!i;if(f&8){const d=t.dynamicProps;for(let p=0;pe.__isSuspense;function Pi(e,t){t&&t.pendingBranch?N(e)?t.effects.push(...e):t.effects.push(e):xi(e)}function bc(e,t){return rs(e,null,t)}const kt={};function zt(e,t,n){return rs(e,t,n)}function rs(e,t,{immediate:n,deep:s,flush:r,onTrack:o,onTrigger:i}=Z){var l;const f=Ro()===((l=oe)==null?void 0:l.scope)?oe:null;let u,d=!1,p=!1;if(ie(e)?(u=()=>e.value,d=Zt(e)):ft(e)?(u=()=>e,s=!0):N(e)?(p=!0,d=e.some(v=>ft(v)||Zt(v)),u=()=>e.map(v=>{if(ie(v))return v.value;if(ft(v))return Xe(v);if(L(v))return Ke(v,f,2)})):L(e)?t?u=()=>Ke(e,f,2):u=()=>{if(!(f&&f.isUnmounted))return g&&g(),be(e,f,3,[T])}:u=we,t&&s){const v=u;u=()=>Xe(v())}let g,T=v=>{g=w.onStop=()=>{Ke(v,f,4)}},D;if(Rt)if(T=we,t?n&&be(t,f,3,[u(),p?[]:void 0,T]):u(),r==="sync"){const v=Tl();D=v.__watcherHandles||(v.__watcherHandles=[])}else return we;let O=p?new Array(e.length).fill(kt):kt;const K=()=>{if(w.active)if(t){const v=w.run();(s||d||(p?v.some((H,q)=>Ot(H,O[q])):Ot(v,O)))&&(g&&g(),be(t,f,3,[v,O===kt?void 0:p&&O[0]===kt?[]:O,T]),O=v)}else w.run()};K.allowRecurse=!!t;let V;r==="sync"?V=K:r==="post"?V=()=>le(K,f&&f.suspense):(K.pre=!0,f&&(K.id=f.uid),V=()=>ss(K));const w=new Qn(u,V);t?n?K():O=w.run():r==="post"?le(w.run.bind(w),f&&f.suspense):w.run();const I=()=>{w.stop(),f&&f.scope&&kn(f.scope.effects,w)};return D&&D.push(I),I}function Fi(e,t,n){const s=this.proxy,r=ee(e)?e.includes(".")?Hr(s,e):()=>s[e]:e.bind(s,s);let o;L(t)?o=t:(o=t.handler,n=t);const i=oe;pt(this);const l=rs(r,o.bind(s),n);return i?pt(i):Ge(),l}function Hr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{Xe(n,t)});else if(fr(e))for(const n in e)Xe(e[n],t);return e}function yc(e,t){const n=ce;if(n===null)return e;const s=pn(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let o=0;o{e.isMounted=!0}),cs(()=>{e.isUnmounting=!0}),e}const me=[Function,Array],$r={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:me,onEnter:me,onAfterEnter:me,onEnterCancelled:me,onBeforeLeave:me,onLeave:me,onAfterLeave:me,onLeaveCancelled:me,onBeforeAppear:me,onAppear:me,onAfterAppear:me,onAppearCancelled:me},Mi={name:"BaseTransition",props:$r,setup(e,{slots:t}){const n=ps(),s=Br();let r;return()=>{const o=t.default&&os(t.default(),!0);if(!o||!o.length)return;let i=o[0];if(o.length>1){for(const O of o)if(O.type!==ye){i=O;break}}const l=j(e),{mode:f}=l;if(s.isLeaving)return yn(i);const u=Ms(i);if(!u)return yn(i);const d=Mt(u,l,s,n);ht(u,d);const p=n.subTree,g=p&&Ms(p);let T=!1;const{getTransitionKey:D}=u.type;if(D){const O=D();r===void 0?r=O:O!==r&&(r=O,T=!0)}if(g&&g.type!==ye&&(!je(u,g)||T)){const O=Mt(g,l,s,n);if(ht(g,O),f==="out-in")return s.isLeaving=!0,O.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&n.update()},yn(i);f==="in-out"&&u.type!==ye&&(O.delayLeave=(K,V,w)=>{const I=jr(s,g);I[String(g.key)]=g,K._leaveCb=()=>{V(),K._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=w})}return i}}},Si=Mi;function jr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Mt(e,t,n,s){const{appear:r,mode:o,persisted:i=!1,onBeforeEnter:l,onEnter:f,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:g,onAfterLeave:T,onLeaveCancelled:D,onBeforeAppear:O,onAppear:K,onAfterAppear:V,onAppearCancelled:w}=t,I=String(e.key),v=jr(n,e),H=(S,k)=>{S&&be(S,s,9,k)},q=(S,k)=>{const $=k[1];H(S,k),N(S)?S.every(X=>X.length<=1)&&$():S.length<=1&&$()},W={mode:o,persisted:i,beforeEnter(S){let k=l;if(!n.isMounted)if(r)k=O||l;else return;S._leaveCb&&S._leaveCb(!0);const $=v[I];$&&je(e,$)&&$.el._leaveCb&&$.el._leaveCb(),H(k,[S])},enter(S){let k=f,$=u,X=d;if(!n.isMounted)if(r)k=K||f,$=V||u,X=w||d;else return;let P=!1;const G=S._enterCb=he=>{P||(P=!0,he?H(X,[S]):H($,[S]),W.delayedLeave&&W.delayedLeave(),S._enterCb=void 0)};k?q(k,[S,G]):G()},leave(S,k){const $=String(e.key);if(S._enterCb&&S._enterCb(!0),n.isUnmounting)return k();H(p,[S]);let X=!1;const P=S._leaveCb=G=>{X||(X=!0,k(),G?H(D,[S]):H(T,[S]),S._leaveCb=void 0,v[$]===e&&delete v[$])};v[$]=e,g?q(g,[S,P]):P()},clone(S){return Mt(S,t,n,s)}};return W}function yn(e){if(un(e))return e=Re(e),e.children=null,e}function Ms(e){return un(e)?e.children?e.children[0]:void 0:e}function ht(e,t){e.shapeFlag&6&&e.component?ht(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function os(e,t=!1,n){let s=[],r=0;for(let o=0;o1)for(let o=0;one({name:e.name},t,{setup:e}))():e}const at=e=>!!e.type.__asyncLoader,un=e=>e.type.__isKeepAlive,Ni={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=ps(),s=n.ctx;if(!s.renderer)return()=>{const w=t.default&&t.default();return w&&w.length===1?w[0]:w};const r=new Map,o=new Set;let i=null;const l=n.suspense,{renderer:{p:f,m:u,um:d,o:{createElement:p}}}=s,g=p("div");s.activate=(w,I,v,H,q)=>{const W=w.component;u(w,I,v,0,l),f(W.vnode,w,I,v,W,l,H,w.slotScopeIds,q),le(()=>{W.isDeactivated=!1,W.a&&ct(W.a);const S=w.props&&w.props.onVnodeMounted;S&&_e(S,W.parent,w)},l)},s.deactivate=w=>{const I=w.component;u(w,g,null,1,l),le(()=>{I.da&&ct(I.da);const v=w.props&&w.props.onVnodeUnmounted;v&&_e(v,I.parent,w),I.isDeactivated=!0},l)};function T(w){vn(w),d(w,n,l,!0)}function D(w){r.forEach((I,v)=>{const H=Bn(I.type);H&&(!w||!w(H))&&O(v)})}function O(w){const I=r.get(w);!i||!je(I,i)?T(I):i&&vn(i),r.delete(w),o.delete(w)}zt(()=>[e.include,e.exclude],([w,I])=>{w&&D(v=>Ct(w,v)),I&&D(v=>!Ct(I,v))},{flush:"post",deep:!0});let K=null;const V=()=>{K!=null&&r.set(K,xn(n.subTree))};return is(V),ls(V),cs(()=>{r.forEach(w=>{const{subTree:I,suspense:v}=n,H=xn(I);if(w.type===H.type&&w.key===H.key){vn(H);const q=H.component.da;q&&le(q,v);return}T(w)})}),()=>{if(K=null,!t.default)return null;const w=t.default(),I=w[0];if(w.length>1)return i=null,w;if(!Nt(I)||!(I.shapeFlag&4)&&!(I.shapeFlag&128))return i=null,I;let v=xn(I);const H=v.type,q=Bn(at(v)?v.type.__asyncResolved||{}:H),{include:W,exclude:S,max:k}=e;if(W&&(!q||!Ct(W,q))||S&&q&&Ct(S,q))return i=v,I;const $=v.key==null?H:v.key,X=r.get($);return v.el&&(v=Re(v),I.shapeFlag&128&&(I.ssContent=v)),K=$,X?(v.el=X.el,v.component=X.component,v.transition&&ht(v,v.transition),v.shapeFlag|=512,o.delete($),o.add($)):(o.add($),k&&o.size>parseInt(k,10)&&O(o.values().next().value)),v.shapeFlag|=256,i=v,Dr(I.type)?I:v}}},xc=Ni;function Ct(e,t){return N(e)?e.some(n=>Ct(n,t)):ee(e)?e.split(",").includes(t):Co(e)?e.test(t):!1}function Ri(e,t){Ur(e,"a",t)}function Li(e,t){Ur(e,"da",t)}function Ur(e,t,n=oe){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(an(t,s,n),n){let r=n.parent;for(;r&&r.parent;)un(r.parent.vnode)&&Di(s,t,n,r),r=r.parent}}function Di(e,t,n,s){const r=an(t,e,s,!0);Kr(()=>{kn(s[t],r)},n)}function vn(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function xn(e){return e.shapeFlag&128?e.ssContent:e}function an(e,t,n=oe,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;gt(),pt(n);const l=be(t,n,e,i);return Ge(),mt(),l});return s?r.unshift(o):r.push(o),o}}const Le=e=>(t,n=oe)=>(!Rt||e==="sp")&&an(e,(...s)=>t(...s),n),Hi=Le("bm"),is=Le("m"),Bi=Le("bu"),ls=Le("u"),cs=Le("bum"),Kr=Le("um"),$i=Le("sp"),ji=Le("rtg"),Ui=Le("rtc");function Ki(e,t=oe){an("ec",e,t)}const fs="components";function Cc(e,t){return Vr(fs,e,!0,t)||e}const kr=Symbol.for("v-ndc");function Ec(e){return ee(e)?Vr(fs,e,!1)||e:e||kr}function Vr(e,t,n=!0,s=!1){const r=ce||oe;if(r){const o=r.type;if(e===fs){const l=Bn(o,!1);if(l&&(l===t||l===Pe(t)||l===rn(Pe(t))))return o}const i=Ss(r[e]||o[e],t)||Ss(r.appContext[e],t);return!i&&s?o:i}}function Ss(e,t){return e&&(e[t]||e[Pe(t)]||e[rn(Pe(t))])}function wc(e,t,n,s){let r;const o=n&&n[s];if(N(e)||ee(e)){r=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,o&&o[l]));else{const i=Object.keys(e);r=new Array(i.length);for(let l=0,f=i.length;l{const o=s.fn(...r);return o&&(o.key=s.key),o}:s.fn)}return e}function Ac(e,t,n={},s,r){if(ce.isCE||ce.parent&&at(ce.parent)&&ce.parent.isCE)return t!=="default"&&(n.name=t),ue("slot",n,s&&s());let o=e[t];o&&o._c&&(o._d=!1),eo();const i=o&&Wr(o(n)),l=no(ge,{key:n.key||i&&i.key||`_${t}`},i||(s?s():[]),i&&e._===1?64:-2);return!r&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function Wr(e){return e.some(t=>Nt(t)?!(t.type===ye||t.type===ge&&!Wr(t.children)):!0)?e:null}const Sn=e=>e?oo(e)?pn(e)||e.proxy:Sn(e.parent):null,wt=ne(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Sn(e.parent),$root:e=>Sn(e.root),$emit:e=>e.emit,$options:e=>us(e),$forceUpdate:e=>e.f||(e.f=()=>ss(e.update)),$nextTick:e=>e.n||(e.n=bi.bind(e.proxy)),$watch:e=>Fi.bind(e)}),Cn=(e,t)=>e!==Z&&!e.__isScriptSetup&&U(e,t),ki={get({_:e},t){const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:l,appContext:f}=e;let u;if(t[0]!=="$"){const T=i[t];if(T!==void 0)switch(T){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(Cn(s,t))return i[t]=1,s[t];if(r!==Z&&U(r,t))return i[t]=2,r[t];if((u=e.propsOptions[0])&&U(u,t))return i[t]=3,o[t];if(n!==Z&&U(n,t))return i[t]=4,n[t];Nn&&(i[t]=0)}}const d=wt[t];let p,g;if(d)return t==="$attrs"&&de(e,"get",t),d(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==Z&&U(n,t))return i[t]=4,n[t];if(g=f.config.globalProperties,U(g,t))return g[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return Cn(r,t)?(r[t]=n,!0):s!==Z&&U(s,t)?(s[t]=n,!0):U(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:o}},i){let l;return!!n[i]||e!==Z&&U(e,i)||Cn(t,i)||(l=o[0])&&U(l,i)||U(s,i)||U(wt,i)||U(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:U(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ns(e){return N(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Nn=!0;function Vi(e){const t=us(e),n=e.proxy,s=e.ctx;Nn=!1,t.beforeCreate&&Rs(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:l,provide:f,inject:u,created:d,beforeMount:p,mounted:g,beforeUpdate:T,updated:D,activated:O,deactivated:K,beforeDestroy:V,beforeUnmount:w,destroyed:I,unmounted:v,render:H,renderTracked:q,renderTriggered:W,errorCaptured:S,serverPrefetch:k,expose:$,inheritAttrs:X,components:P,directives:G,filters:he}=t;if(u&&Wi(u,s,null),i)for(const te in i){const J=i[te];L(J)&&(s[te]=J.bind(n))}if(r){const te=r.call(n,n);Y(te)&&(e.data=Gn(te))}if(Nn=!0,o)for(const te in o){const J=o[te],Ve=L(J)?J.bind(n,n):L(J.get)?J.get.bind(n,n):we,Dt=!L(J)&&L(J.set)?J.set.bind(n):we,We=Cl({get:Ve,set:Dt});Object.defineProperty(s,te,{enumerable:!0,configurable:!0,get:()=>We.value,set:Te=>We.value=Te})}if(l)for(const te in l)zr(l[te],s,n,te);if(f){const te=L(f)?f.call(n):f;Reflect.ownKeys(te).forEach(J=>{Xi(J,te[J])})}d&&Rs(d,e,"c");function re(te,J){N(J)?J.forEach(Ve=>te(Ve.bind(n))):J&&te(J.bind(n))}if(re(Hi,p),re(is,g),re(Bi,T),re(ls,D),re(Ri,O),re(Li,K),re(Ki,S),re(Ui,q),re(ji,W),re(cs,w),re(Kr,v),re($i,k),N($))if($.length){const te=e.exposed||(e.exposed={});$.forEach(J=>{Object.defineProperty(te,J,{get:()=>n[J],set:Ve=>n[J]=Ve})})}else e.exposed||(e.exposed={});H&&e.render===we&&(e.render=H),X!=null&&(e.inheritAttrs=X),P&&(e.components=P),G&&(e.directives=G)}function Wi(e,t,n=we){N(e)&&(e=Rn(e));for(const s in e){const r=e[s];let o;Y(r)?"default"in r?o=qt(r.from||s,r.default,!0):o=qt(r.from||s):o=qt(r),ie(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function Rs(e,t,n){be(N(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function zr(e,t,n,s){const r=s.includes(".")?Hr(n,s):()=>n[s];if(ee(e)){const o=t[e];L(o)&&zt(r,o)}else if(L(e))zt(r,e.bind(n));else if(Y(e))if(N(e))e.forEach(o=>zr(o,t,n,s));else{const o=L(e.handler)?e.handler.bind(n):t[e.handler];L(o)&&zt(r,o,e)}}function us(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let f;return l?f=l:!r.length&&!n&&!s?f=t:(f={},r.length&&r.forEach(u=>en(f,u,i,!0)),en(f,t,i)),Y(t)&&o.set(t,f),f}function en(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&en(e,o,n,!0),r&&r.forEach(i=>en(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=zi[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const zi={data:Ls,props:Ds,emits:Ds,methods:Et,computed:Et,beforeCreate:ae,created:ae,beforeMount:ae,mounted:ae,beforeUpdate:ae,updated:ae,beforeDestroy:ae,beforeUnmount:ae,destroyed:ae,unmounted:ae,activated:ae,deactivated:ae,errorCaptured:ae,serverPrefetch:ae,components:Et,directives:Et,watch:Ji,provide:Ls,inject:qi};function Ls(e,t){return t?e?function(){return ne(L(e)?e.call(this,this):e,L(t)?t.call(this,this):t)}:t:e}function qi(e,t){return Et(Rn(e),Rn(t))}function Rn(e){if(N(e)){const t={};for(let n=0;n1)return n&&L(t)?t.call(s&&s.proxy):t}}function Zi(e,t,n,s=!1){const r={},o={};Yt(o,hn,1),e.propsDefaults=Object.create(null),Jr(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:ci(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function Gi(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,l=j(r),[f]=e.propsOptions;let u=!1;if((s||i>0)&&!(i&16)){if(i&8){const d=e.vnode.dynamicProps;for(let p=0;p{f=!0;const[g,T]=Qr(p,t,!0);ne(i,g),T&&l.push(...T)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!o&&!f)return Y(e)&&s.set(e,it),it;if(N(o))for(let d=0;d-1,T[1]=O<0||D-1||U(T,"default"))&&l.push(p)}}}const u=[i,l];return Y(e)&&s.set(e,u),u}function Hs(e){return e[0]!=="$"}function Bs(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function $s(e,t){return Bs(e)===Bs(t)}function js(e,t){return N(t)?t.findIndex(n=>$s(n,e)):L(t)&&$s(t,e)?0:-1}const Yr=e=>e[0]==="_"||e==="$stable",as=e=>N(e)?e.map(Oe):[Oe(e)],el=(e,t,n)=>{if(t._n)return t;const s=wi((...r)=>as(t(...r)),n);return s._c=!1,s},Xr=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Yr(r))continue;const o=e[r];if(L(o))t[r]=el(r,o,s);else if(o!=null){const i=as(o);t[r]=()=>i}}},Zr=(e,t)=>{const n=as(t);e.slots.default=()=>n},tl=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=j(t),Yt(t,"_",n)):Xr(t,e.slots={})}else e.slots={},t&&Zr(e,t);Yt(e.slots,hn,1)},nl=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=Z;if(s.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(ne(r,t),!n&&l===1&&delete r._):(o=!t.$stable,Xr(t,r)),i=t}else t&&(Zr(e,t),i={default:1});if(o)for(const l in r)!Yr(l)&&!(l in i)&&delete r[l]};function Dn(e,t,n,s,r=!1){if(N(e)){e.forEach((g,T)=>Dn(g,t&&(N(t)?t[T]:t),n,s,r));return}if(at(s)&&!r)return;const o=s.shapeFlag&4?pn(s.component)||s.component.proxy:s.el,i=r?null:o,{i:l,r:f}=e,u=t&&t.r,d=l.refs===Z?l.refs={}:l.refs,p=l.setupState;if(u!=null&&u!==f&&(ee(u)?(d[u]=null,U(p,u)&&(p[u]=null)):ie(u)&&(u.value=null)),L(f))Ke(f,l,12,[i,d]);else{const g=ee(f),T=ie(f);if(g||T){const D=()=>{if(e.f){const O=g?U(p,f)?p[f]:d[f]:f.value;r?N(O)&&kn(O,o):N(O)?O.includes(o)||O.push(o):g?(d[f]=[o],U(p,f)&&(p[f]=d[f])):(f.value=[o],e.k&&(d[e.k]=f.value))}else g?(d[f]=i,U(p,f)&&(p[f]=i)):T&&(f.value=i,e.k&&(d[e.k]=i))};i?(D.id=-1,le(D,n)):D()}}}const le=Pi;function sl(e){return rl(e)}function rl(e,t){const n=On();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:l,createComment:f,setText:u,setElementText:d,parentNode:p,nextSibling:g,setScopeId:T=we,insertStaticContent:D}=e,O=(c,a,h,_=null,m=null,x=null,E=!1,y=null,C=!!a.dynamicChildren)=>{if(c===a)return;c&&!je(c,a)&&(_=Ht(c),Te(c,m,x,!0),c=null),a.patchFlag===-2&&(C=!1,a.dynamicChildren=null);const{type:b,ref:F,shapeFlag:A}=a;switch(b){case dn:K(c,a,h,_);break;case ye:V(c,a,h,_);break;case Jt:c==null&&w(a,h,_,E);break;case ge:P(c,a,h,_,m,x,E,y,C);break;default:A&1?H(c,a,h,_,m,x,E,y,C):A&6?G(c,a,h,_,m,x,E,y,C):(A&64||A&128)&&b.process(c,a,h,_,m,x,E,y,C,tt)}F!=null&&m&&Dn(F,c&&c.ref,x,a||c,!a)},K=(c,a,h,_)=>{if(c==null)s(a.el=l(a.children),h,_);else{const m=a.el=c.el;a.children!==c.children&&u(m,a.children)}},V=(c,a,h,_)=>{c==null?s(a.el=f(a.children||""),h,_):a.el=c.el},w=(c,a,h,_)=>{[c.el,c.anchor]=D(c.children,a,h,_,c.el,c.anchor)},I=({el:c,anchor:a},h,_)=>{let m;for(;c&&c!==a;)m=g(c),s(c,h,_),c=m;s(a,h,_)},v=({el:c,anchor:a})=>{let h;for(;c&&c!==a;)h=g(c),r(c),c=h;r(a)},H=(c,a,h,_,m,x,E,y,C)=>{E=E||a.type==="svg",c==null?q(a,h,_,m,x,E,y,C):k(c,a,m,x,E,y,C)},q=(c,a,h,_,m,x,E,y)=>{let C,b;const{type:F,props:A,shapeFlag:M,transition:R,dirs:B}=c;if(C=c.el=i(c.type,x,A&&A.is,A),M&8?d(C,c.children):M&16&&S(c.children,C,null,_,m,x&&F!=="foreignObject",E,y),B&&ze(c,null,_,"created"),W(C,c,c.scopeId,E,_),A){for(const z in A)z!=="value"&&!Wt(z)&&o(C,z,null,A[z],x,c.children,_,m,Fe);"value"in A&&o(C,"value",null,A.value),(b=A.onVnodeBeforeMount)&&_e(b,_,c)}B&&ze(c,null,_,"beforeMount");const Q=(!m||m&&!m.pendingBranch)&&R&&!R.persisted;Q&&R.beforeEnter(C),s(C,a,h),((b=A&&A.onVnodeMounted)||Q||B)&&le(()=>{b&&_e(b,_,c),Q&&R.enter(C),B&&ze(c,null,_,"mounted")},m)},W=(c,a,h,_,m)=>{if(h&&T(c,h),_)for(let x=0;x<_.length;x++)T(c,_[x]);if(m){let x=m.subTree;if(a===x){const E=m.vnode;W(c,E,E.scopeId,E.slotScopeIds,m.parent)}}},S=(c,a,h,_,m,x,E,y,C=0)=>{for(let b=C;b{const y=a.el=c.el;let{patchFlag:C,dynamicChildren:b,dirs:F}=a;C|=c.patchFlag&16;const A=c.props||Z,M=a.props||Z;let R;h&&qe(h,!1),(R=M.onVnodeBeforeUpdate)&&_e(R,h,a,c),F&&ze(a,c,h,"beforeUpdate"),h&&qe(h,!0);const B=m&&a.type!=="foreignObject";if(b?$(c.dynamicChildren,b,y,h,_,B,x):E||J(c,a,y,null,h,_,B,x,!1),C>0){if(C&16)X(y,a,A,M,h,_,m);else if(C&2&&A.class!==M.class&&o(y,"class",null,M.class,m),C&4&&o(y,"style",A.style,M.style,m),C&8){const Q=a.dynamicProps;for(let z=0;z{R&&_e(R,h,a,c),F&&ze(a,c,h,"updated")},_)},$=(c,a,h,_,m,x,E)=>{for(let y=0;y{if(h!==_){if(h!==Z)for(const y in h)!Wt(y)&&!(y in _)&&o(c,y,h[y],null,E,a.children,m,x,Fe);for(const y in _){if(Wt(y))continue;const C=_[y],b=h[y];C!==b&&y!=="value"&&o(c,y,b,C,E,a.children,m,x,Fe)}"value"in _&&o(c,"value",h.value,_.value)}},P=(c,a,h,_,m,x,E,y,C)=>{const b=a.el=c?c.el:l(""),F=a.anchor=c?c.anchor:l("");let{patchFlag:A,dynamicChildren:M,slotScopeIds:R}=a;R&&(y=y?y.concat(R):R),c==null?(s(b,h,_),s(F,h,_),S(a.children,h,F,m,x,E,y,C)):A>0&&A&64&&M&&c.dynamicChildren?($(c.dynamicChildren,M,h,m,x,E,y),(a.key!=null||m&&a===m.subTree)&&ds(c,a,!0)):J(c,a,h,F,m,x,E,y,C)},G=(c,a,h,_,m,x,E,y,C)=>{a.slotScopeIds=y,c==null?a.shapeFlag&512?m.ctx.activate(a,h,_,E,C):he(a,h,_,m,x,E,C):_t(c,a,C)},he=(c,a,h,_,m,x,E)=>{const y=c.component=ml(c,_,m);if(un(c)&&(y.ctx.renderer=tt),_l(y),y.asyncDep){if(m&&m.registerDep(y,re),!c.el){const C=y.subTree=ue(ye);V(null,C,a,h)}return}re(y,c,a,h,m,x,E)},_t=(c,a,h)=>{const _=a.component=c.component;if(Oi(c,a,h))if(_.asyncDep&&!_.asyncResolved){te(_,a,h);return}else _.next=a,vi(_.update),_.update();else a.el=c.el,_.vnode=a},re=(c,a,h,_,m,x,E)=>{const y=()=>{if(c.isMounted){let{next:F,bu:A,u:M,parent:R,vnode:B}=c,Q=F,z;qe(c,!1),F?(F.el=B.el,te(c,F,E)):F=B,A&&ct(A),(z=F.props&&F.props.onVnodeBeforeUpdate)&&_e(z,R,F,B),qe(c,!0);const se=bn(c),ve=c.subTree;c.subTree=se,O(ve,se,p(ve.el),Ht(ve),c,m,x),F.el=se.el,Q===null&&Ii(c,se.el),M&&le(M,m),(z=F.props&&F.props.onVnodeUpdated)&&le(()=>_e(z,R,F,B),m)}else{let F;const{el:A,props:M}=a,{bm:R,m:B,parent:Q}=c,z=at(a);if(qe(c,!1),R&&ct(R),!z&&(F=M&&M.onVnodeBeforeMount)&&_e(F,Q,a),qe(c,!0),A&&mn){const se=()=>{c.subTree=bn(c),mn(A,c.subTree,c,m,null)};z?a.type.__asyncLoader().then(()=>!c.isUnmounted&&se()):se()}else{const se=c.subTree=bn(c);O(null,se,h,_,c,m,x),a.el=se.el}if(B&&le(B,m),!z&&(F=M&&M.onVnodeMounted)){const se=a;le(()=>_e(F,Q,se),m)}(a.shapeFlag&256||Q&&at(Q.vnode)&&Q.vnode.shapeFlag&256)&&c.a&&le(c.a,m),c.isMounted=!0,a=h=_=null}},C=c.effect=new Qn(y,()=>ss(b),c.scope),b=c.update=()=>C.run();b.id=c.uid,qe(c,!0),b()},te=(c,a,h)=>{a.component=c;const _=c.vnode.props;c.vnode=a,c.next=null,Gi(c,a.props,_,h),nl(c,a.children,h),gt(),Ps(),mt()},J=(c,a,h,_,m,x,E,y,C=!1)=>{const b=c&&c.children,F=c?c.shapeFlag:0,A=a.children,{patchFlag:M,shapeFlag:R}=a;if(M>0){if(M&128){Dt(b,A,h,_,m,x,E,y,C);return}else if(M&256){Ve(b,A,h,_,m,x,E,y,C);return}}R&8?(F&16&&Fe(b,m,x),A!==b&&d(h,A)):F&16?R&16?Dt(b,A,h,_,m,x,E,y,C):Fe(b,m,x,!0):(F&8&&d(h,""),R&16&&S(A,h,_,m,x,E,y,C))},Ve=(c,a,h,_,m,x,E,y,C)=>{c=c||it,a=a||it;const b=c.length,F=a.length,A=Math.min(b,F);let M;for(M=0;MF?Fe(c,m,x,!0,!1,A):S(a,h,_,m,x,E,y,C,A)},Dt=(c,a,h,_,m,x,E,y,C)=>{let b=0;const F=a.length;let A=c.length-1,M=F-1;for(;b<=A&&b<=M;){const R=c[b],B=a[b]=C?$e(a[b]):Oe(a[b]);if(je(R,B))O(R,B,h,null,m,x,E,y,C);else break;b++}for(;b<=A&&b<=M;){const R=c[A],B=a[M]=C?$e(a[M]):Oe(a[M]);if(je(R,B))O(R,B,h,null,m,x,E,y,C);else break;A--,M--}if(b>A){if(b<=M){const R=M+1,B=RM)for(;b<=A;)Te(c[b],m,x,!0),b++;else{const R=b,B=b,Q=new Map;for(b=B;b<=M;b++){const pe=a[b]=C?$e(a[b]):Oe(a[b]);pe.key!=null&&Q.set(pe.key,b)}let z,se=0;const ve=M-B+1;let nt=!1,bs=0;const bt=new Array(ve);for(b=0;b=ve){Te(pe,m,x,!0);continue}let Ae;if(pe.key!=null)Ae=Q.get(pe.key);else for(z=B;z<=M;z++)if(bt[z-B]===0&&je(pe,a[z])){Ae=z;break}Ae===void 0?Te(pe,m,x,!0):(bt[Ae-B]=b+1,Ae>=bs?bs=Ae:nt=!0,O(pe,a[Ae],h,null,m,x,E,y,C),se++)}const ys=nt?ol(bt):it;for(z=ys.length-1,b=ve-1;b>=0;b--){const pe=B+b,Ae=a[pe],vs=pe+1{const{el:x,type:E,transition:y,children:C,shapeFlag:b}=c;if(b&6){We(c.component.subTree,a,h,_);return}if(b&128){c.suspense.move(a,h,_);return}if(b&64){E.move(c,a,h,tt);return}if(E===ge){s(x,a,h);for(let A=0;Ay.enter(x),m);else{const{leave:A,delayLeave:M,afterLeave:R}=y,B=()=>s(x,a,h),Q=()=>{A(x,()=>{B(),R&&R()})};M?M(x,B,Q):Q()}else s(x,a,h)},Te=(c,a,h,_=!1,m=!1)=>{const{type:x,props:E,ref:y,children:C,dynamicChildren:b,shapeFlag:F,patchFlag:A,dirs:M}=c;if(y!=null&&Dn(y,null,h,c,!0),F&256){a.ctx.deactivate(c);return}const R=F&1&&M,B=!at(c);let Q;if(B&&(Q=E&&E.onVnodeBeforeUnmount)&&_e(Q,a,c),F&6)bo(c.component,h,_);else{if(F&128){c.suspense.unmount(h,_);return}R&&ze(c,null,a,"beforeUnmount"),F&64?c.type.remove(c,a,h,m,tt,_):b&&(x!==ge||A>0&&A&64)?Fe(b,a,h,!1,!0):(x===ge&&A&384||!m&&F&16)&&Fe(C,a,h),_&&ms(c)}(B&&(Q=E&&E.onVnodeUnmounted)||R)&&le(()=>{Q&&_e(Q,a,c),R&&ze(c,null,a,"unmounted")},h)},ms=c=>{const{type:a,el:h,anchor:_,transition:m}=c;if(a===ge){_o(h,_);return}if(a===Jt){v(c);return}const x=()=>{r(h),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(c.shapeFlag&1&&m&&!m.persisted){const{leave:E,delayLeave:y}=m,C=()=>E(h,x);y?y(c.el,x,C):C()}else x()},_o=(c,a)=>{let h;for(;c!==a;)h=g(c),r(c),c=h;r(a)},bo=(c,a,h)=>{const{bum:_,scope:m,update:x,subTree:E,um:y}=c;_&&ct(_),m.stop(),x&&(x.active=!1,Te(E,c,a,h)),y&&le(y,a),le(()=>{c.isUnmounted=!0},a),a&&a.pendingBranch&&!a.isUnmounted&&c.asyncDep&&!c.asyncResolved&&c.suspenseId===a.pendingId&&(a.deps--,a.deps===0&&a.resolve())},Fe=(c,a,h,_=!1,m=!1,x=0)=>{for(let E=x;Ec.shapeFlag&6?Ht(c.component.subTree):c.shapeFlag&128?c.suspense.next():g(c.anchor||c.el),_s=(c,a,h)=>{c==null?a._vnode&&Te(a._vnode,null,null,!0):O(a._vnode||null,c,a,null,null,null,h),Ps(),Nr(),a._vnode=c},tt={p:O,um:Te,m:We,r:ms,mt:he,mc:S,pc:J,pbc:$,n:Ht,o:e};let gn,mn;return t&&([gn,mn]=t(tt)),{render:_s,hydrate:gn,createApp:Yi(_s,gn)}}function qe({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ds(e,t,n=!1){const s=e.children,r=t.children;if(N(s)&&N(r))for(let o=0;o>1,e[n[l]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}const il=e=>e.__isTeleport,Tt=e=>e&&(e.disabled||e.disabled===""),Us=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Hn=(e,t)=>{const n=e&&e.to;return ee(n)?t?t(n):null:n},ll={__isTeleport:!0,process(e,t,n,s,r,o,i,l,f,u){const{mc:d,pc:p,pbc:g,o:{insert:T,querySelector:D,createText:O,createComment:K}}=u,V=Tt(t.props);let{shapeFlag:w,children:I,dynamicChildren:v}=t;if(e==null){const H=t.el=O(""),q=t.anchor=O("");T(H,n,s),T(q,n,s);const W=t.target=Hn(t.props,D),S=t.targetAnchor=O("");W&&(T(S,W),i=i||Us(W));const k=($,X)=>{w&16&&d(I,$,X,r,o,i,l,f)};V?k(n,q):W&&k(W,S)}else{t.el=e.el;const H=t.anchor=e.anchor,q=t.target=e.target,W=t.targetAnchor=e.targetAnchor,S=Tt(e.props),k=S?n:q,$=S?H:W;if(i=i||Us(q),v?(g(e.dynamicChildren,v,k,r,o,i,l),ds(e,t,!0)):f||p(e,t,k,$,r,o,i,l,!1),V)S||Vt(t,n,H,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const X=t.target=Hn(t.props,D);X&&Vt(t,X,null,u,0)}else S&&Vt(t,q,W,u,1)}Gr(t)},remove(e,t,n,s,{um:r,o:{remove:o}},i){const{shapeFlag:l,children:f,anchor:u,targetAnchor:d,target:p,props:g}=e;if(p&&o(d),(i||!Tt(g))&&(o(u),l&16))for(let T=0;T0?Ee||it:null,fl(),St>0&&Ee&&Ee.push(e),e}function Ic(e,t,n,s,r,o){return to(ro(e,t,n,s,r,o,!0))}function no(e,t,n,s,r){return to(ue(e,t,n,s,r,!0))}function Nt(e){return e?e.__v_isVNode===!0:!1}function je(e,t){return e.type===t.type&&e.key===t.key}const hn="__vInternal",so=({key:e})=>e??null,Qt=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ee(e)||ie(e)||L(e)?{i:ce,r:e,k:t,f:!!n}:e:null);function ro(e,t=null,n=null,s=0,r=null,o=e===ge?0:1,i=!1,l=!1){const f={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&so(t),ref:t&&Qt(t),scopeId:fn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ce};return l?(hs(f,n),o&128&&e.normalize(f)):n&&(f.shapeFlag|=ee(n)?8:16),St>0&&!i&&Ee&&(f.patchFlag>0||o&6)&&f.patchFlag!==32&&Ee.push(f),f}const ue=ul;function ul(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===kr)&&(e=ye),Nt(e)){const l=Re(e,t,!0);return n&&hs(l,n),St>0&&!o&&Ee&&(l.shapeFlag&6?Ee[Ee.indexOf(e)]=l:Ee.push(l)),l.patchFlag|=-2,l}if(xl(e)&&(e=e.__vccOpts),t){t=al(t);let{class:l,style:f}=t;l&&!ee(l)&&(t.class=qn(l)),Y(f)&&(wr(f)&&!N(f)&&(f=ne({},f)),t.style=zn(f))}const i=ee(e)?1:Dr(e)?128:il(e)?64:Y(e)?4:L(e)?2:0;return ro(e,t,n,s,r,i,o,!0)}function al(e){return e?wr(e)||hn in e?ne({},e):e:null}function Re(e,t,n=!1){const{props:s,ref:r,patchFlag:o,children:i}=e,l=t?hl(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&so(l),ref:t&&t.ref?n&&r?N(r)?r.concat(Qt(t)):[r,Qt(t)]:Qt(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ge?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Re(e.ssContent),ssFallback:e.ssFallback&&Re(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function dl(e=" ",t=0){return ue(dn,null,e,t)}function Pc(e,t){const n=ue(Jt,null,e);return n.staticCount=t,n}function Fc(e="",t=!1){return t?(eo(),no(ye,null,e)):ue(ye,null,e)}function Oe(e){return e==null||typeof e=="boolean"?ue(ye):N(e)?ue(ge,null,e.slice()):typeof e=="object"?$e(e):ue(dn,null,String(e))}function $e(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Re(e)}function hs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(N(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),hs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(hn in t)?t._ctx=ce:r===3&&ce&&(ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else L(t)?(t={default:t,_ctx:ce},n=32):(t=String(t),s&64?(n=16,t=[dl(t)]):n=8);e.children=t,e.shapeFlag|=n}function hl(...e){const t={};for(let n=0;noe||ce;let gs,st,ks="__VUE_INSTANCE_SETTERS__";(st=On()[ks])||(st=On()[ks]=[]),st.push(e=>oe=e),gs=e=>{st.length>1?st.forEach(t=>t(e)):st[0](e)};const pt=e=>{gs(e),e.scope.on()},Ge=()=>{oe&&oe.scope.off(),gs(null)};function oo(e){return e.vnode.shapeFlag&4}let Rt=!1;function _l(e,t=!1){Rt=t;const{props:n,children:s}=e.vnode,r=oo(e);Zi(e,n,r,t),tl(e,s);const o=r?bl(e,t):void 0;return Rt=!1,o}function bl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Tr(new Proxy(e.ctx,ki));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?vl(e):null;pt(e),gt();const o=Ke(s,e,0,[e.props,r]);if(mt(),Ge(),lr(o)){if(o.then(Ge,Ge),t)return o.then(i=>{Vs(e,i,t)}).catch(i=>{ln(i,e,0)});e.asyncDep=o}else Vs(e,o,t)}else io(e,t)}function Vs(e,t,n){L(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Y(t)&&(e.setupState=Pr(t)),io(e,n)}let Ws;function io(e,t,n){const s=e.type;if(!e.render){if(!t&&Ws&&!s.render){const r=s.template||us(e).template;if(r){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:f}=s,u=ne(ne({isCustomElement:o,delimiters:l},i),f);s.render=Ws(r,u)}}e.render=s.render||we}pt(e),gt(),Vi(e),mt(),Ge()}function yl(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return de(e,"get","$attrs"),t[n]}}))}function vl(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return yl(e)},slots:e.slots,emit:e.emit,expose:t}}function pn(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Pr(Tr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in wt)return wt[n](e)},has(t,n){return n in t||n in wt}}))}function Bn(e,t=!0){return L(e)?e.displayName||e.name:e.name||t&&e.__name}function xl(e){return L(e)&&"__vccOpts"in e}const Cl=(e,t)=>mi(e,t,Rt);function El(e,t,n){const s=arguments.length;return s===2?Y(t)&&!N(t)?Nt(t)?ue(e,null,[t]):ue(e,t):ue(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Nt(n)&&(n=[n]),ue(e,t,n))}const wl=Symbol.for("v-scx"),Tl=()=>qt(wl),Al="3.3.1",Ol="http://www.w3.org/2000/svg",Ye=typeof document<"u"?document:null,zs=Ye&&Ye.createElement("template"),Il={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?Ye.createElementNS(Ol,e):Ye.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Ye.createTextNode(e),createComment:e=>Ye.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ye.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{zs.innerHTML=s?`${e}`:e;const l=zs.content;if(s){const f=l.firstChild;for(;f.firstChild;)l.appendChild(f.firstChild);l.removeChild(f)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Pl(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Fl(e,t,n){const s=e.style,r=ee(n);if(n&&!r){if(t&&!ee(t))for(const o in t)n[o]==null&&$n(s,o,"");for(const o in n)$n(s,o,n[o])}else{const o=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=o)}}const qs=/\s*!important$/;function $n(e,t,n){if(N(n))n.forEach(s=>$n(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Ml(e,t);qs.test(n)?e.setProperty(et(s),n.replace(qs,""),"important"):e[s]=n}}const Js=["Webkit","Moz","ms"],En={};function Ml(e,t){const n=En[t];if(n)return n;let s=Pe(t);if(s!=="filter"&&s in e)return En[t]=s;s=rn(s);for(let r=0;rwn||(Hl.then(()=>wn=0),wn=Date.now());function $l(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;be(jl(s,n.value),t,5,[s])};return n.value=e,n.attached=Bl(),n}function jl(e,t){if(N(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Xs=/^on[a-z]/,Ul=(e,t,n,s,r=!1,o,i,l,f)=>{t==="class"?Pl(e,s,r):t==="style"?Fl(e,n,s):nn(t)?Kn(t)||Ll(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Kl(e,t,s,r))?Nl(e,t,s,o,i,l,f):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Sl(e,t,s,r))};function Kl(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&Xs.test(t)&&L(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Xs.test(t)&&ee(n)?!1:t in e}const He="transition",yt="animation",lo=(e,{slots:t})=>El(Si,fo(e),t);lo.displayName="Transition";const co={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},kl=lo.props=ne({},$r,co),Je=(e,t=[])=>{N(e)?e.forEach(n=>n(...t)):e&&e(...t)},Zs=e=>e?N(e)?e.some(t=>t.length>1):e.length>1:!1;function fo(e){const t={};for(const P in e)P in co||(t[P]=e[P]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:f=o,appearActiveClass:u=i,appearToClass:d=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:T=`${n}-leave-to`}=e,D=Vl(r),O=D&&D[0],K=D&&D[1],{onBeforeEnter:V,onEnter:w,onEnterCancelled:I,onLeave:v,onLeaveCancelled:H,onBeforeAppear:q=V,onAppear:W=w,onAppearCancelled:S=I}=t,k=(P,G,he)=>{Be(P,G?d:l),Be(P,G?u:i),he&&he()},$=(P,G)=>{P._isLeaving=!1,Be(P,p),Be(P,T),Be(P,g),G&&G()},X=P=>(G,he)=>{const _t=P?W:w,re=()=>k(G,P,he);Je(_t,[G,re]),Gs(()=>{Be(G,P?f:o),Me(G,P?d:l),Zs(_t)||er(G,s,O,re)})};return ne(t,{onBeforeEnter(P){Je(V,[P]),Me(P,o),Me(P,i)},onBeforeAppear(P){Je(q,[P]),Me(P,f),Me(P,u)},onEnter:X(!1),onAppear:X(!0),onLeave(P,G){P._isLeaving=!0;const he=()=>$(P,G);Me(P,p),ao(),Me(P,g),Gs(()=>{P._isLeaving&&(Be(P,p),Me(P,T),Zs(v)||er(P,s,K,he))}),Je(v,[P,he])},onEnterCancelled(P){k(P,!1),Je(I,[P])},onAppearCancelled(P){k(P,!0),Je(S,[P])},onLeaveCancelled(P){$(P),Je(H,[P])}})}function Vl(e){if(e==null)return null;if(Y(e))return[Tn(e.enter),Tn(e.leave)];{const t=Tn(e);return[t,t]}}function Tn(e){return Ao(e)}function Me(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Be(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Gs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Wl=0;function er(e,t,n,s){const r=e._endId=++Wl,o=()=>{r===e._endId&&s()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:f}=uo(e,t);if(!i)return s();const u=i+"end";let d=0;const p=()=>{e.removeEventListener(u,g),o()},g=T=>{T.target===e&&++d>=f&&p()};setTimeout(()=>{d(n[D]||"").split(", "),r=s(`${He}Delay`),o=s(`${He}Duration`),i=tr(r,o),l=s(`${yt}Delay`),f=s(`${yt}Duration`),u=tr(l,f);let d=null,p=0,g=0;t===He?i>0&&(d=He,p=i,g=o.length):t===yt?u>0&&(d=yt,p=u,g=f.length):(p=Math.max(i,u),d=p>0?i>u?He:yt:null,g=d?d===He?o.length:f.length:0);const T=d===He&&/\b(transform|all)(,|$)/.test(s(`${He}Property`).toString());return{type:d,timeout:p,propCount:g,hasTransform:T}}function tr(e,t){for(;e.lengthnr(n)+nr(e[s])))}function nr(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function ao(){return document.body.offsetHeight}const ho=new WeakMap,po=new WeakMap,go={name:"TransitionGroup",props:ne({},kl,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ps(),s=Br();let r,o;return ls(()=>{if(!r.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!Yl(r[0].el,n.vnode.el,i))return;r.forEach(ql),r.forEach(Jl);const l=r.filter(Ql);ao(),l.forEach(f=>{const u=f.el,d=u.style;Me(u,i),d.transform=d.webkitTransform=d.transitionDuration="";const p=u._moveCb=g=>{g&&g.target!==u||(!g||/transform$/.test(g.propertyName))&&(u.removeEventListener("transitionend",p),u._moveCb=null,Be(u,i))};u.addEventListener("transitionend",p)})}),()=>{const i=j(e),l=fo(i);let f=i.tag||ge;r=o,o=t.default?os(t.default()):[];for(let u=0;udelete e.mode;go.props;const Mc=go;function ql(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function Jl(e){po.set(e,e.el.getBoundingClientRect())}function Ql(e){const t=ho.get(e),n=po.get(e),s=t.left-n.left,r=t.top-n.top;if(s||r){const o=e.el.style;return o.transform=o.webkitTransform=`translate(${s}px,${r}px)`,o.transitionDuration="0s",e}}function Yl(e,t,n){const s=e.cloneNode();e._vtc&&e._vtc.forEach(i=>{i.split(/\s+/).forEach(l=>l&&s.classList.remove(l))}),n.split(/\s+/).forEach(i=>i&&s.classList.add(i)),s.style.display="none";const r=t.nodeType===1?t:t.parentNode;r.appendChild(s);const{hasTransform:o}=uo(s);return r.removeChild(s),o}const sr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return N(t)?n=>ct(t,n):t};function Xl(e){e.target.composing=!0}function rr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Sc={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e._assign=sr(r);const o=s||r.props&&r.props.type==="number";ot(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=An(l)),e._assign(l)}),n&&ot(e,"change",()=>{e.value=e.value.trim()}),t||(ot(e,"compositionstart",Xl),ot(e,"compositionend",rr),ot(e,"change",rr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:s,number:r}},o){if(e._assign=sr(o),e.composing||document.activeElement===e&&e.type!=="range"&&(n||s&&e.value.trim()===t||(r||e.type==="number")&&An(e.value)===t))return;const i=t??"";e.value!==i&&(e.value=i)}},Zl=["ctrl","shift","alt","meta"],Gl={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Zl.some(n=>e[`${n}Key`]&&!t.includes(n))},Nc=(e,t)=>(n,...s)=>{for(let r=0;rn=>{if(!("key"in n))return;const s=et(n.key);if(t.some(r=>r===s||ec[r]===s))return e(n)},Lc={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):vt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),vt(e,!0),s.enter(e)):s.leave(e,()=>{vt(e,!1)}):vt(e,t))},beforeUnmount(e,{value:t}){vt(e,t)}};function vt(e,t){e.style.display=t?e._vod:"none"}const tc=ne({patchProp:Ul},Il);let or;function nc(){return or||(or=sl(tc))}const Dc=(...e)=>{const t=nc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=sc(s);if(!r)return;const o=t._component;!L(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.innerHTML="";const i=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t};function sc(e){return ee(e)?document.querySelector(e):e}function rc(){return mo().__VUE_DEVTOOLS_GLOBAL_HOOK__}function mo(){return typeof navigator<"u"&&typeof window<"u"?window:typeof global<"u"?global:{}}const oc=typeof Proxy=="function",ic="devtools-plugin:setup",lc="plugin:settings:set";let rt,jn;function cc(){var e;return rt!==void 0||(typeof window<"u"&&window.performance?(rt=!0,jn=window.performance):typeof global<"u"&&(!((e=global.perf_hooks)===null||e===void 0)&&e.performance)?(rt=!0,jn=global.perf_hooks.performance):rt=!1),rt}function fc(){return cc()?jn.now():Date.now()}class uc{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const s={};if(t.settings)for(const i in t.settings){const l=t.settings[i];s[i]=l.defaultValue}const r=`__vue-devtools-plugin-settings__${t.id}`;let o=Object.assign({},s);try{const i=localStorage.getItem(r),l=JSON.parse(i);Object.assign(o,l)}catch{}this.fallbacks={getSettings(){return o},setSettings(i){try{localStorage.setItem(r,JSON.stringify(i))}catch{}o=i},now(){return fc()}},n&&n.on(lc,(i,l)=>{i===this.plugin.id&&this.fallbacks.setSettings(l)}),this.proxiedOn=new Proxy({},{get:(i,l)=>this.target?this.target.on[l]:(...f)=>{this.onQueue.push({method:l,args:f})}}),this.proxiedTarget=new Proxy({},{get:(i,l)=>this.target?this.target[l]:l==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(l)?(...f)=>(this.targetQueue.push({method:l,args:f,resolve:()=>{}}),this.fallbacks[l](...f)):(...f)=>new Promise(u=>{this.targetQueue.push({method:l,args:f,resolve:u})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function Hc(e,t){const n=e,s=mo(),r=rc(),o=oc&&n.enableEarlyProxy;if(r&&(s.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!o))r.emit(ic,e,t);else{const i=o?new uc(n,r):null;(s.__VUE_DEVTOOLS_PLUGINS__=s.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:i}),i&&t(i.proxiedTarget)}}export{Hc as $,Re as A,Tr as B,ye as C,Gn as D,wr as E,ge as F,j as G,Kr as H,zn as I,Oc as J,qn as K,ac as L,Sc as M,Fc as N,Rc as O,no as P,Ec as Q,pc as R,Ac as S,lo as T,ue as U,mc as V,_c as W,Er as X,hc as Y,ai as Z,dc as _,ro as a,wi as a0,Nc as a1,Cc as a2,wc as a3,xc as a4,Dc as a5,Tc as a6,Pc as b,Ic as c,vc as d,dl as e,Nt as f,ps as g,cs as h,qt as i,is as j,Hi as k,Ri as l,Li as m,Cl as n,eo as o,Xi as p,bc as q,fi as r,El as s,Mc as t,gc as u,Lc as v,zt as w,hl as x,bi as y,yc as z}; diff --git a/web/dist/assets/@vue-d002002f.js b/web/dist/assets/@vue-d002002f.js new file mode 100644 index 00000000..af82715e --- /dev/null +++ b/web/dist/assets/@vue-d002002f.js @@ -0,0 +1 @@ +function Un(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const Z={},it=[],Te=()=>{},yo=()=>!1,vo=/^on[^a-z]/,nn=e=>vo.test(e),Kn=e=>e.startsWith("onUpdate:"),ne=Object.assign,kn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},xo=Object.prototype.hasOwnProperty,U=(e,t)=>xo.call(e,t),N=Array.isArray,lt=e=>Lt(e)==="[object Map]",ir=e=>Lt(e)==="[object Set]",Co=e=>Lt(e)==="[object RegExp]",L=e=>typeof e=="function",ee=e=>typeof e=="string",Vn=e=>typeof e=="symbol",Y=e=>e!==null&&typeof e=="object",lr=e=>Y(e)&&L(e.then)&&L(e.catch),cr=Object.prototype.toString,Lt=e=>cr.call(e),Eo=e=>Lt(e).slice(8,-1),fr=e=>Lt(e)==="[object Object]",Wn=e=>ee(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Wt=Un(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),sn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},To=/-(\w)/g,Pe=sn(e=>e.replace(To,(t,n)=>n?n.toUpperCase():"")),wo=/\B([A-Z])/g,et=sn(e=>e.replace(wo,"-$1").toLowerCase()),rn=sn(e=>e.charAt(0).toUpperCase()+e.slice(1)),_n=sn(e=>e?`on${rn(e)}`:""),Ot=(e,t)=>!Object.is(e,t),ct=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},An=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ao=e=>{const t=ee(e)?Number(e):NaN;return isNaN(t)?e:t};let xs;const On=()=>xs||(xs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function zn(e){if(N(e)){const t={};for(let n=0;n{if(n){const s=n.split(Io);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function qn(e){let t="";if(ee(e))t=e;else if(N(e))for(let n=0;nee(e)?e:e==null?"":N(e)||Y(e)&&(e.toString===cr||!L(e.toString))?JSON.stringify(e,ar,2):String(e),ar=(e,t)=>t&&t.__v_isRef?ar(e,t.value):lt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:ir(t)?{[`Set(${t.size})`]:[...t.values()]}:Y(t)&&!N(t)&&!fr(t)?String(t):t;let xe;class dr{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=xe,!t&&xe&&(this.index=(xe.scopes||(xe.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=xe;try{return xe=this,t()}finally{xe=n}}}on(){xe=this}off(){xe=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},hr=e=>(e.w&ke)>0,pr=e=>(e.n&ke)>0,Lo=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(d==="length"||d>=f)&&l.push(u)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":N(e)?Wn(n)&&l.push(i.get("length")):(l.push(i.get(Ze)),lt(e)&&l.push(i.get(Pn)));break;case"delete":N(e)||(l.push(i.get(Ze)),lt(e)&&l.push(i.get(Pn)));break;case"set":lt(e)&&l.push(i.get(Ze));break}if(l.length===1)l[0]&&Fn(l[0]);else{const f=[];for(const u of l)u&&f.push(...u);Fn(Jn(f))}}function Fn(e,t){const n=N(e)?e:[...e];for(const s of n)s.computed&&Es(s);for(const s of n)s.computed||Es(s)}function Es(e,t){(e!==Ce||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Ho(e,t){var n;return(n=Xt.get(e))==null?void 0:n.get(t)}const Bo=Un("__proto__,__v_isRef,__isVue"),_r=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Vn)),$o=Yn(),jo=Yn(!1,!0),Uo=Yn(!0),Ts=Ko();function Ko(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=j(this);for(let o=0,i=this.length;o{e[t]=function(...n){gt();const s=j(this)[t].apply(this,n);return mt(),s}}),e}function ko(e){const t=j(this);return de(t,"has",e),t.hasOwnProperty(e)}function Yn(e=!1,t=!1){return function(s,r,o){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&o===(e?t?oi:Cr:t?xr:vr).get(s))return s;const i=N(s);if(!e){if(i&&U(Ts,r))return Reflect.get(Ts,r,o);if(r==="hasOwnProperty")return ko}const l=Reflect.get(s,r,o);return(Vn(r)?_r.has(r):Bo(r))||(e||de(s,"get",r),t)?l:ie(l)?i&&Wn(r)?l:l.value:Y(l)?e?Er(l):Gn(l):l}}const Vo=br(),Wo=br(!0);function br(e=!1){return function(n,s,r,o){let i=n[s];if(dt(i)&&ie(i)&&!ie(r))return!1;if(!e&&(!Zt(r)&&!dt(r)&&(i=j(i),r=j(r)),!N(n)&&ie(i)&&!ie(r)))return i.value=r,!0;const l=N(n)&&Wn(s)?Number(s)e,on=e=>Reflect.getPrototypeOf(e);function Bt(e,t,n=!1,s=!1){e=e.__v_raw;const r=j(e),o=j(t);n||(t!==o&&de(r,"get",t),de(r,"get",o));const{has:i}=on(r),l=s?Xn:n?ts:It;if(i.call(r,t))return l(e.get(t));if(i.call(r,o))return l(e.get(o));e!==r&&e.get(t)}function $t(e,t=!1){const n=this.__v_raw,s=j(n),r=j(e);return t||(e!==r&&de(s,"has",e),de(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function jt(e,t=!1){return e=e.__v_raw,!t&&de(j(e),"iterate",Ze),Reflect.get(e,"size",e)}function ws(e){e=j(e);const t=j(this);return on(t).has.call(t,e)||(t.add(e),Ne(t,"add",e,e)),this}function As(e,t){t=j(t);const n=j(this),{has:s,get:r}=on(n);let o=s.call(n,e);o||(e=j(e),o=s.call(n,e));const i=r.call(n,e);return n.set(e,t),o?Ot(t,i)&&Ne(n,"set",e,t):Ne(n,"add",e,t),this}function Os(e){const t=j(this),{has:n,get:s}=on(t);let r=n.call(t,e);r||(e=j(e),r=n.call(t,e)),s&&s.call(t,e);const o=t.delete(e);return r&&Ne(t,"delete",e,void 0),o}function Is(){const e=j(this),t=e.size!==0,n=e.clear();return t&&Ne(e,"clear",void 0,void 0),n}function Ut(e,t){return function(s,r){const o=this,i=o.__v_raw,l=j(i),f=t?Xn:e?ts:It;return!e&&de(l,"iterate",Ze),i.forEach((u,d)=>s.call(r,f(u),f(d),o))}}function Kt(e,t,n){return function(...s){const r=this.__v_raw,o=j(r),i=lt(o),l=e==="entries"||e===Symbol.iterator&&i,f=e==="keys"&&i,u=r[e](...s),d=n?Xn:t?ts:It;return!t&&de(o,"iterate",f?Pn:Ze),{next(){const{value:p,done:g}=u.next();return g?{value:p,done:g}:{value:l?[d(p[0]),d(p[1])]:d(p),done:g}},[Symbol.iterator](){return this}}}}function De(e){return function(...t){return e==="delete"?!1:this}}function Xo(){const e={get(o){return Bt(this,o)},get size(){return jt(this)},has:$t,add:ws,set:As,delete:Os,clear:Is,forEach:Ut(!1,!1)},t={get(o){return Bt(this,o,!1,!0)},get size(){return jt(this)},has:$t,add:ws,set:As,delete:Os,clear:Is,forEach:Ut(!1,!0)},n={get(o){return Bt(this,o,!0)},get size(){return jt(this,!0)},has(o){return $t.call(this,o,!0)},add:De("add"),set:De("set"),delete:De("delete"),clear:De("clear"),forEach:Ut(!0,!1)},s={get(o){return Bt(this,o,!0,!0)},get size(){return jt(this,!0)},has(o){return $t.call(this,o,!0)},add:De("add"),set:De("set"),delete:De("delete"),clear:De("clear"),forEach:Ut(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=Kt(o,!1,!1),n[o]=Kt(o,!0,!1),t[o]=Kt(o,!1,!0),s[o]=Kt(o,!0,!0)}),[e,n,t,s]}const[Zo,Go,ei,ti]=Xo();function Zn(e,t){const n=t?e?ti:ei:e?Go:Zo;return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(U(n,r)&&r in s?n:s,r,o)}const ni={get:Zn(!1,!1)},si={get:Zn(!1,!0)},ri={get:Zn(!0,!1)},vr=new WeakMap,xr=new WeakMap,Cr=new WeakMap,oi=new WeakMap;function ii(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function li(e){return e.__v_skip||!Object.isExtensible(e)?0:ii(Eo(e))}function Gn(e){return dt(e)?e:es(e,!1,yr,ni,vr)}function ci(e){return es(e,!1,Yo,si,xr)}function Er(e){return es(e,!0,Qo,ri,Cr)}function es(e,t,n,s,r){if(!Y(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const i=li(e);if(i===0)return e;const l=new Proxy(e,i===2?s:n);return r.set(e,l),l}function ft(e){return dt(e)?ft(e.__v_raw):!!(e&&e.__v_isReactive)}function dt(e){return!!(e&&e.__v_isReadonly)}function Zt(e){return!!(e&&e.__v_isShallow)}function Tr(e){return ft(e)||dt(e)}function j(e){const t=e&&e.__v_raw;return t?j(t):e}function wr(e){return Yt(e,"__v_skip",!0),e}const It=e=>Y(e)?Gn(e):e,ts=e=>Y(e)?Er(e):e;function Ar(e){Ue&&Ce&&(e=j(e),mr(e.dep||(e.dep=Jn())))}function Or(e,t){e=j(e);const n=e.dep;n&&Fn(n)}function ie(e){return!!(e&&e.__v_isRef===!0)}function fi(e){return Ir(e,!1)}function hc(e){return Ir(e,!0)}function Ir(e,t){return ie(e)?e:new ui(e,t)}class ui{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:j(t),this._value=n?t:It(t)}get value(){return Ar(this),this._value}set value(t){const n=this.__v_isShallow||Zt(t)||dt(t);t=n?t:j(t),Ot(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:It(t),Or(this))}}function ai(e){return ie(e)?e.value:e}const di={get:(e,t,n)=>ai(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ie(r)&&!ie(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Pr(e){return ft(e)?e:new Proxy(e,di)}function pc(e){const t=N(e)?new Array(e.length):{};for(const n in e)t[n]=Fr(e,n);return t}class hi{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Ho(j(this._object),this._key)}}class pi{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function gc(e,t,n){return ie(e)?e:L(e)?new pi(e):Y(e)&&arguments.length>1?Fr(e,t,n):fi(e)}function Fr(e,t,n){const s=e[t];return ie(s)?s:new hi(e,t,n)}class gi{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new Qn(t,()=>{this._dirty||(this._dirty=!0,Or(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=j(this);return Ar(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function mi(e,t,n=!1){let s,r;const o=L(e);return o?(s=e,r=Te):(s=e.get,r=e.set),new gi(s,r,o||!r,n)}function Ke(e,t,n,s){let r;try{r=s?e(...s):e()}catch(o){ln(o,t,n)}return r}function be(e,t,n,s){if(L(e)){const o=Ke(e,t,n,s);return o&&lr(o)&&o.catch(i=>{ln(i,t,n)}),o}const r=[];for(let o=0;o>>1;Ft(fe[s])Ie&&fe.splice(t,1)}function xi(e){N(e)?ut.push(...e):(!Se||!Se.includes(e,e.allowRecurse?Qe+1:Qe))&&ut.push(e),Sr()}function Ps(e,t=Pt?Ie+1:0){for(;tFt(n)-Ft(s)),Qe=0;Qee.id==null?1/0:e.id,Ci=(e,t)=>{const n=Ft(e)-Ft(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Rr(e){Mn=!1,Pt=!0,fe.sort(Ci);const t=Te;try{for(Ie=0;Ieee(w)?w.trim():w)),p&&(r=n.map(An))}let l,f=s[l=_n(t)]||s[l=_n(Pe(t))];!f&&o&&(f=s[l=_n(et(t))]),f&&be(f,e,6,r);const u=s[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,be(u,e,6,r)}}function Lr(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},l=!1;if(!L(e)){const f=u=>{const d=Lr(u,t,!0);d&&(l=!0,ne(i,d))};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}return!o&&!l?(Y(e)&&s.set(e,null),null):(N(o)?o.forEach(f=>i[f]=null):ne(i,o),Y(e)&&s.set(e,i),i)}function cn(e,t){return!e||!nn(t)?!1:(t=t.slice(2).replace(/Once$/,""),U(e,t[0].toLowerCase()+t.slice(1))||U(e,et(t))||U(e,t))}let ce=null,fn=null;function Gt(e){const t=ce;return ce=e,fn=e&&e.type.__scopeId||null,t}function mc(e){fn=e}function _c(){fn=null}function Ti(e,t=ce,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Ks(-1);const o=Gt(t);let i;try{i=e(...r)}finally{Gt(o),s._d&&Ks(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function bn(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:o,propsOptions:[i],slots:l,attrs:f,emit:u,render:d,renderCache:p,data:g,setupState:w,ctx:D,inheritAttrs:O}=e;let K,V;const T=Gt(e);try{if(n.shapeFlag&4){const v=r||s;K=Oe(d.call(v,v,p,o,w,g,D)),V=f}else{const v=t;K=Oe(v.length>1?v(o,{attrs:f,slots:l,emit:u}):v(o,null)),V=t.props?f:wi(f)}}catch(v){At.length=0,ln(v,e,1),K=ue(ye)}let I=K;if(V&&O!==!1){const v=Object.keys(V),{shapeFlag:H}=I;v.length&&H&7&&(i&&v.some(Kn)&&(V=Ai(V,i)),I=Re(I,V))}return n.dirs&&(I=Re(I),I.dirs=I.dirs?I.dirs.concat(n.dirs):n.dirs),n.transition&&(I.transition=n.transition),K=I,Gt(T),K}const wi=e=>{let t;for(const n in e)(n==="class"||n==="style"||nn(n))&&((t||(t={}))[n]=e[n]);return t},Ai=(e,t)=>{const n={};for(const s in e)(!Kn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Oi(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:l,patchFlag:f}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&f>=0){if(f&1024)return!0;if(f&16)return s?Fs(s,i,u):!!i;if(f&8){const d=t.dynamicProps;for(let p=0;pe.__isSuspense;function Pi(e,t){t&&t.pendingBranch?N(e)?t.effects.push(...e):t.effects.push(e):xi(e)}function bc(e,t){return rs(e,null,t)}const kt={};function zt(e,t,n){return rs(e,t,n)}function rs(e,t,{immediate:n,deep:s,flush:r,onTrack:o,onTrigger:i}=Z){var l;const f=Ro()===((l=oe)==null?void 0:l.scope)?oe:null;let u,d=!1,p=!1;if(ie(e)?(u=()=>e.value,d=Zt(e)):ft(e)?(u=()=>e,s=!0):N(e)?(p=!0,d=e.some(v=>ft(v)||Zt(v)),u=()=>e.map(v=>{if(ie(v))return v.value;if(ft(v))return Xe(v);if(L(v))return Ke(v,f,2)})):L(e)?t?u=()=>Ke(e,f,2):u=()=>{if(!(f&&f.isUnmounted))return g&&g(),be(e,f,3,[w])}:u=Te,t&&s){const v=u;u=()=>Xe(v())}let g,w=v=>{g=T.onStop=()=>{Ke(v,f,4)}},D;if(Rt)if(w=Te,t?n&&be(t,f,3,[u(),p?[]:void 0,w]):u(),r==="sync"){const v=wl();D=v.__watcherHandles||(v.__watcherHandles=[])}else return Te;let O=p?new Array(e.length).fill(kt):kt;const K=()=>{if(T.active)if(t){const v=T.run();(s||d||(p?v.some((H,q)=>Ot(H,O[q])):Ot(v,O)))&&(g&&g(),be(t,f,3,[v,O===kt?void 0:p&&O[0]===kt?[]:O,w]),O=v)}else T.run()};K.allowRecurse=!!t;let V;r==="sync"?V=K:r==="post"?V=()=>le(K,f&&f.suspense):(K.pre=!0,f&&(K.id=f.uid),V=()=>ss(K));const T=new Qn(u,V);t?n?K():O=T.run():r==="post"?le(T.run.bind(T),f&&f.suspense):T.run();const I=()=>{T.stop(),f&&f.scope&&kn(f.scope.effects,T)};return D&&D.push(I),I}function Fi(e,t,n){const s=this.proxy,r=ee(e)?e.includes(".")?Hr(s,e):()=>s[e]:e.bind(s,s);let o;L(t)?o=t:(o=t.handler,n=t);const i=oe;pt(this);const l=rs(r,o.bind(s),n);return i?pt(i):Ge(),l}function Hr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{Xe(n,t)});else if(fr(e))for(const n in e)Xe(e[n],t);return e}function yc(e,t){const n=ce;if(n===null)return e;const s=pn(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let o=0;o{e.isMounted=!0}),cs(()=>{e.isUnmounting=!0}),e}const me=[Function,Array],$r={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:me,onEnter:me,onAfterEnter:me,onEnterCancelled:me,onBeforeLeave:me,onLeave:me,onAfterLeave:me,onLeaveCancelled:me,onBeforeAppear:me,onAppear:me,onAfterAppear:me,onAppearCancelled:me},Mi={name:"BaseTransition",props:$r,setup(e,{slots:t}){const n=ps(),s=Br();let r;return()=>{const o=t.default&&os(t.default(),!0);if(!o||!o.length)return;let i=o[0];if(o.length>1){for(const O of o)if(O.type!==ye){i=O;break}}const l=j(e),{mode:f}=l;if(s.isLeaving)return yn(i);const u=Ms(i);if(!u)return yn(i);const d=Mt(u,l,s,n);ht(u,d);const p=n.subTree,g=p&&Ms(p);let w=!1;const{getTransitionKey:D}=u.type;if(D){const O=D();r===void 0?r=O:O!==r&&(r=O,w=!0)}if(g&&g.type!==ye&&(!je(u,g)||w)){const O=Mt(g,l,s,n);if(ht(g,O),f==="out-in")return s.isLeaving=!0,O.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&n.update()},yn(i);f==="in-out"&&u.type!==ye&&(O.delayLeave=(K,V,T)=>{const I=jr(s,g);I[String(g.key)]=g,K._leaveCb=()=>{V(),K._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=T})}return i}}},Si=Mi;function jr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Mt(e,t,n,s){const{appear:r,mode:o,persisted:i=!1,onBeforeEnter:l,onEnter:f,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:g,onAfterLeave:w,onLeaveCancelled:D,onBeforeAppear:O,onAppear:K,onAfterAppear:V,onAppearCancelled:T}=t,I=String(e.key),v=jr(n,e),H=(S,k)=>{S&&be(S,s,9,k)},q=(S,k)=>{const $=k[1];H(S,k),N(S)?S.every(X=>X.length<=1)&&$():S.length<=1&&$()},W={mode:o,persisted:i,beforeEnter(S){let k=l;if(!n.isMounted)if(r)k=O||l;else return;S._leaveCb&&S._leaveCb(!0);const $=v[I];$&&je(e,$)&&$.el._leaveCb&&$.el._leaveCb(),H(k,[S])},enter(S){let k=f,$=u,X=d;if(!n.isMounted)if(r)k=K||f,$=V||u,X=T||d;else return;let P=!1;const G=S._enterCb=he=>{P||(P=!0,he?H(X,[S]):H($,[S]),W.delayedLeave&&W.delayedLeave(),S._enterCb=void 0)};k?q(k,[S,G]):G()},leave(S,k){const $=String(e.key);if(S._enterCb&&S._enterCb(!0),n.isUnmounting)return k();H(p,[S]);let X=!1;const P=S._leaveCb=G=>{X||(X=!0,k(),G?H(D,[S]):H(w,[S]),S._leaveCb=void 0,v[$]===e&&delete v[$])};v[$]=e,g?q(g,[S,P]):P()},clone(S){return Mt(S,t,n,s)}};return W}function yn(e){if(un(e))return e=Re(e),e.children=null,e}function Ms(e){return un(e)?e.children?e.children[0]:void 0:e}function ht(e,t){e.shapeFlag&6&&e.component?ht(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function os(e,t=!1,n){let s=[],r=0;for(let o=0;o1)for(let o=0;one({name:e.name},t,{setup:e}))():e}const at=e=>!!e.type.__asyncLoader,un=e=>e.type.__isKeepAlive,Ni={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=ps(),s=n.ctx;if(!s.renderer)return()=>{const T=t.default&&t.default();return T&&T.length===1?T[0]:T};const r=new Map,o=new Set;let i=null;const l=n.suspense,{renderer:{p:f,m:u,um:d,o:{createElement:p}}}=s,g=p("div");s.activate=(T,I,v,H,q)=>{const W=T.component;u(T,I,v,0,l),f(W.vnode,T,I,v,W,l,H,T.slotScopeIds,q),le(()=>{W.isDeactivated=!1,W.a&&ct(W.a);const S=T.props&&T.props.onVnodeMounted;S&&_e(S,W.parent,T)},l)},s.deactivate=T=>{const I=T.component;u(T,g,null,1,l),le(()=>{I.da&&ct(I.da);const v=T.props&&T.props.onVnodeUnmounted;v&&_e(v,I.parent,T),I.isDeactivated=!0},l)};function w(T){vn(T),d(T,n,l,!0)}function D(T){r.forEach((I,v)=>{const H=Bn(I.type);H&&(!T||!T(H))&&O(v)})}function O(T){const I=r.get(T);!i||!je(I,i)?w(I):i&&vn(i),r.delete(T),o.delete(T)}zt(()=>[e.include,e.exclude],([T,I])=>{T&&D(v=>Ct(T,v)),I&&D(v=>!Ct(I,v))},{flush:"post",deep:!0});let K=null;const V=()=>{K!=null&&r.set(K,xn(n.subTree))};return is(V),ls(V),cs(()=>{r.forEach(T=>{const{subTree:I,suspense:v}=n,H=xn(I);if(T.type===H.type&&T.key===H.key){vn(H);const q=H.component.da;q&&le(q,v);return}w(T)})}),()=>{if(K=null,!t.default)return null;const T=t.default(),I=T[0];if(T.length>1)return i=null,T;if(!Nt(I)||!(I.shapeFlag&4)&&!(I.shapeFlag&128))return i=null,I;let v=xn(I);const H=v.type,q=Bn(at(v)?v.type.__asyncResolved||{}:H),{include:W,exclude:S,max:k}=e;if(W&&(!q||!Ct(W,q))||S&&q&&Ct(S,q))return i=v,I;const $=v.key==null?H:v.key,X=r.get($);return v.el&&(v=Re(v),I.shapeFlag&128&&(I.ssContent=v)),K=$,X?(v.el=X.el,v.component=X.component,v.transition&&ht(v,v.transition),v.shapeFlag|=512,o.delete($),o.add($)):(o.add($),k&&o.size>parseInt(k,10)&&O(o.values().next().value)),v.shapeFlag|=256,i=v,Dr(I.type)?I:v}}},xc=Ni;function Ct(e,t){return N(e)?e.some(n=>Ct(n,t)):ee(e)?e.split(",").includes(t):Co(e)?e.test(t):!1}function Ri(e,t){Ur(e,"a",t)}function Li(e,t){Ur(e,"da",t)}function Ur(e,t,n=oe){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(an(t,s,n),n){let r=n.parent;for(;r&&r.parent;)un(r.parent.vnode)&&Di(s,t,n,r),r=r.parent}}function Di(e,t,n,s){const r=an(t,e,s,!0);Kr(()=>{kn(s[t],r)},n)}function vn(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function xn(e){return e.shapeFlag&128?e.ssContent:e}function an(e,t,n=oe,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;gt(),pt(n);const l=be(t,n,e,i);return Ge(),mt(),l});return s?r.unshift(o):r.push(o),o}}const Le=e=>(t,n=oe)=>(!Rt||e==="sp")&&an(e,(...s)=>t(...s),n),Hi=Le("bm"),is=Le("m"),Bi=Le("bu"),ls=Le("u"),cs=Le("bum"),Kr=Le("um"),$i=Le("sp"),ji=Le("rtg"),Ui=Le("rtc");function Ki(e,t=oe){an("ec",e,t)}const fs="components";function Cc(e,t){return Vr(fs,e,!0,t)||e}const kr=Symbol.for("v-ndc");function Ec(e){return ee(e)?Vr(fs,e,!1)||e:e||kr}function Vr(e,t,n=!0,s=!1){const r=ce||oe;if(r){const o=r.type;if(e===fs){const l=Bn(o,!1);if(l&&(l===t||l===Pe(t)||l===rn(Pe(t))))return o}const i=Ss(r[e]||o[e],t)||Ss(r.appContext[e],t);return!i&&s?o:i}}function Ss(e,t){return e&&(e[t]||e[Pe(t)]||e[rn(Pe(t))])}function Tc(e,t,n,s){let r;const o=n&&n[s];if(N(e)||ee(e)){r=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,o&&o[l]));else{const i=Object.keys(e);r=new Array(i.length);for(let l=0,f=i.length;l{const o=s.fn(...r);return o&&(o.key=s.key),o}:s.fn)}return e}function Ac(e,t,n={},s,r){if(ce.isCE||ce.parent&&at(ce.parent)&&ce.parent.isCE)return t!=="default"&&(n.name=t),ue("slot",n,s&&s());let o=e[t];o&&o._c&&(o._d=!1),eo();const i=o&&Wr(o(n)),l=no(ge,{key:n.key||i&&i.key||`_${t}`},i||(s?s():[]),i&&e._===1?64:-2);return!r&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function Wr(e){return e.some(t=>Nt(t)?!(t.type===ye||t.type===ge&&!Wr(t.children)):!0)?e:null}const Sn=e=>e?oo(e)?pn(e)||e.proxy:Sn(e.parent):null,Tt=ne(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Sn(e.parent),$root:e=>Sn(e.root),$emit:e=>e.emit,$options:e=>us(e),$forceUpdate:e=>e.f||(e.f=()=>ss(e.update)),$nextTick:e=>e.n||(e.n=bi.bind(e.proxy)),$watch:e=>Fi.bind(e)}),Cn=(e,t)=>e!==Z&&!e.__isScriptSetup&&U(e,t),ki={get({_:e},t){const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:l,appContext:f}=e;let u;if(t[0]!=="$"){const w=i[t];if(w!==void 0)switch(w){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(Cn(s,t))return i[t]=1,s[t];if(r!==Z&&U(r,t))return i[t]=2,r[t];if((u=e.propsOptions[0])&&U(u,t))return i[t]=3,o[t];if(n!==Z&&U(n,t))return i[t]=4,n[t];Nn&&(i[t]=0)}}const d=Tt[t];let p,g;if(d)return t==="$attrs"&&de(e,"get",t),d(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==Z&&U(n,t))return i[t]=4,n[t];if(g=f.config.globalProperties,U(g,t))return g[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return Cn(r,t)?(r[t]=n,!0):s!==Z&&U(s,t)?(s[t]=n,!0):U(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:o}},i){let l;return!!n[i]||e!==Z&&U(e,i)||Cn(t,i)||(l=o[0])&&U(l,i)||U(s,i)||U(Tt,i)||U(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:U(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ns(e){return N(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Nn=!0;function Vi(e){const t=us(e),n=e.proxy,s=e.ctx;Nn=!1,t.beforeCreate&&Rs(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:l,provide:f,inject:u,created:d,beforeMount:p,mounted:g,beforeUpdate:w,updated:D,activated:O,deactivated:K,beforeDestroy:V,beforeUnmount:T,destroyed:I,unmounted:v,render:H,renderTracked:q,renderTriggered:W,errorCaptured:S,serverPrefetch:k,expose:$,inheritAttrs:X,components:P,directives:G,filters:he}=t;if(u&&Wi(u,s,null),i)for(const te in i){const J=i[te];L(J)&&(s[te]=J.bind(n))}if(r){const te=r.call(n,n);Y(te)&&(e.data=Gn(te))}if(Nn=!0,o)for(const te in o){const J=o[te],Ve=L(J)?J.bind(n,n):L(J.get)?J.get.bind(n,n):Te,Dt=!L(J)&&L(J.set)?J.set.bind(n):Te,We=Cl({get:Ve,set:Dt});Object.defineProperty(s,te,{enumerable:!0,configurable:!0,get:()=>We.value,set:we=>We.value=we})}if(l)for(const te in l)zr(l[te],s,n,te);if(f){const te=L(f)?f.call(n):f;Reflect.ownKeys(te).forEach(J=>{Xi(J,te[J])})}d&&Rs(d,e,"c");function re(te,J){N(J)?J.forEach(Ve=>te(Ve.bind(n))):J&&te(J.bind(n))}if(re(Hi,p),re(is,g),re(Bi,w),re(ls,D),re(Ri,O),re(Li,K),re(Ki,S),re(Ui,q),re(ji,W),re(cs,T),re(Kr,v),re($i,k),N($))if($.length){const te=e.exposed||(e.exposed={});$.forEach(J=>{Object.defineProperty(te,J,{get:()=>n[J],set:Ve=>n[J]=Ve})})}else e.exposed||(e.exposed={});H&&e.render===Te&&(e.render=H),X!=null&&(e.inheritAttrs=X),P&&(e.components=P),G&&(e.directives=G)}function Wi(e,t,n=Te){N(e)&&(e=Rn(e));for(const s in e){const r=e[s];let o;Y(r)?"default"in r?o=qt(r.from||s,r.default,!0):o=qt(r.from||s):o=qt(r),ie(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function Rs(e,t,n){be(N(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function zr(e,t,n,s){const r=s.includes(".")?Hr(n,s):()=>n[s];if(ee(e)){const o=t[e];L(o)&&zt(r,o)}else if(L(e))zt(r,e.bind(n));else if(Y(e))if(N(e))e.forEach(o=>zr(o,t,n,s));else{const o=L(e.handler)?e.handler.bind(n):t[e.handler];L(o)&&zt(r,o,e)}}function us(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let f;return l?f=l:!r.length&&!n&&!s?f=t:(f={},r.length&&r.forEach(u=>en(f,u,i,!0)),en(f,t,i)),Y(t)&&o.set(t,f),f}function en(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&en(e,o,n,!0),r&&r.forEach(i=>en(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=zi[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const zi={data:Ls,props:Ds,emits:Ds,methods:Et,computed:Et,beforeCreate:ae,created:ae,beforeMount:ae,mounted:ae,beforeUpdate:ae,updated:ae,beforeDestroy:ae,beforeUnmount:ae,destroyed:ae,unmounted:ae,activated:ae,deactivated:ae,errorCaptured:ae,serverPrefetch:ae,components:Et,directives:Et,watch:Ji,provide:Ls,inject:qi};function Ls(e,t){return t?e?function(){return ne(L(e)?e.call(this,this):e,L(t)?t.call(this,this):t)}:t:e}function qi(e,t){return Et(Rn(e),Rn(t))}function Rn(e){if(N(e)){const t={};for(let n=0;n1)return n&&L(t)?t.call(s&&s.proxy):t}}function Zi(e,t,n,s=!1){const r={},o={};Yt(o,hn,1),e.propsDefaults=Object.create(null),Jr(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:ci(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function Gi(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,l=j(r),[f]=e.propsOptions;let u=!1;if((s||i>0)&&!(i&16)){if(i&8){const d=e.vnode.dynamicProps;for(let p=0;p{f=!0;const[g,w]=Qr(p,t,!0);ne(i,g),w&&l.push(...w)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!o&&!f)return Y(e)&&s.set(e,it),it;if(N(o))for(let d=0;d-1,w[1]=O<0||D-1||U(w,"default"))&&l.push(p)}}}const u=[i,l];return Y(e)&&s.set(e,u),u}function Hs(e){return e[0]!=="$"}function Bs(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function $s(e,t){return Bs(e)===Bs(t)}function js(e,t){return N(t)?t.findIndex(n=>$s(n,e)):L(t)&&$s(t,e)?0:-1}const Yr=e=>e[0]==="_"||e==="$stable",as=e=>N(e)?e.map(Oe):[Oe(e)],el=(e,t,n)=>{if(t._n)return t;const s=Ti((...r)=>as(t(...r)),n);return s._c=!1,s},Xr=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Yr(r))continue;const o=e[r];if(L(o))t[r]=el(r,o,s);else if(o!=null){const i=as(o);t[r]=()=>i}}},Zr=(e,t)=>{const n=as(t);e.slots.default=()=>n},tl=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=j(t),Yt(t,"_",n)):Xr(t,e.slots={})}else e.slots={},t&&Zr(e,t);Yt(e.slots,hn,1)},nl=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=Z;if(s.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(ne(r,t),!n&&l===1&&delete r._):(o=!t.$stable,Xr(t,r)),i=t}else t&&(Zr(e,t),i={default:1});if(o)for(const l in r)!Yr(l)&&!(l in i)&&delete r[l]};function Dn(e,t,n,s,r=!1){if(N(e)){e.forEach((g,w)=>Dn(g,t&&(N(t)?t[w]:t),n,s,r));return}if(at(s)&&!r)return;const o=s.shapeFlag&4?pn(s.component)||s.component.proxy:s.el,i=r?null:o,{i:l,r:f}=e,u=t&&t.r,d=l.refs===Z?l.refs={}:l.refs,p=l.setupState;if(u!=null&&u!==f&&(ee(u)?(d[u]=null,U(p,u)&&(p[u]=null)):ie(u)&&(u.value=null)),L(f))Ke(f,l,12,[i,d]);else{const g=ee(f),w=ie(f);if(g||w){const D=()=>{if(e.f){const O=g?U(p,f)?p[f]:d[f]:f.value;r?N(O)&&kn(O,o):N(O)?O.includes(o)||O.push(o):g?(d[f]=[o],U(p,f)&&(p[f]=d[f])):(f.value=[o],e.k&&(d[e.k]=f.value))}else g?(d[f]=i,U(p,f)&&(p[f]=i)):w&&(f.value=i,e.k&&(d[e.k]=i))};i?(D.id=-1,le(D,n)):D()}}}const le=Pi;function sl(e){return rl(e)}function rl(e,t){const n=On();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:l,createComment:f,setText:u,setElementText:d,parentNode:p,nextSibling:g,setScopeId:w=Te,insertStaticContent:D}=e,O=(c,a,h,_=null,m=null,x=null,E=!1,y=null,C=!!a.dynamicChildren)=>{if(c===a)return;c&&!je(c,a)&&(_=Ht(c),we(c,m,x,!0),c=null),a.patchFlag===-2&&(C=!1,a.dynamicChildren=null);const{type:b,ref:F,shapeFlag:A}=a;switch(b){case dn:K(c,a,h,_);break;case ye:V(c,a,h,_);break;case Jt:c==null&&T(a,h,_,E);break;case ge:P(c,a,h,_,m,x,E,y,C);break;default:A&1?H(c,a,h,_,m,x,E,y,C):A&6?G(c,a,h,_,m,x,E,y,C):(A&64||A&128)&&b.process(c,a,h,_,m,x,E,y,C,tt)}F!=null&&m&&Dn(F,c&&c.ref,x,a||c,!a)},K=(c,a,h,_)=>{if(c==null)s(a.el=l(a.children),h,_);else{const m=a.el=c.el;a.children!==c.children&&u(m,a.children)}},V=(c,a,h,_)=>{c==null?s(a.el=f(a.children||""),h,_):a.el=c.el},T=(c,a,h,_)=>{[c.el,c.anchor]=D(c.children,a,h,_,c.el,c.anchor)},I=({el:c,anchor:a},h,_)=>{let m;for(;c&&c!==a;)m=g(c),s(c,h,_),c=m;s(a,h,_)},v=({el:c,anchor:a})=>{let h;for(;c&&c!==a;)h=g(c),r(c),c=h;r(a)},H=(c,a,h,_,m,x,E,y,C)=>{E=E||a.type==="svg",c==null?q(a,h,_,m,x,E,y,C):k(c,a,m,x,E,y,C)},q=(c,a,h,_,m,x,E,y)=>{let C,b;const{type:F,props:A,shapeFlag:M,transition:R,dirs:B}=c;if(C=c.el=i(c.type,x,A&&A.is,A),M&8?d(C,c.children):M&16&&S(c.children,C,null,_,m,x&&F!=="foreignObject",E,y),B&&ze(c,null,_,"created"),W(C,c,c.scopeId,E,_),A){for(const z in A)z!=="value"&&!Wt(z)&&o(C,z,null,A[z],x,c.children,_,m,Fe);"value"in A&&o(C,"value",null,A.value),(b=A.onVnodeBeforeMount)&&_e(b,_,c)}B&&ze(c,null,_,"beforeMount");const Q=(!m||m&&!m.pendingBranch)&&R&&!R.persisted;Q&&R.beforeEnter(C),s(C,a,h),((b=A&&A.onVnodeMounted)||Q||B)&&le(()=>{b&&_e(b,_,c),Q&&R.enter(C),B&&ze(c,null,_,"mounted")},m)},W=(c,a,h,_,m)=>{if(h&&w(c,h),_)for(let x=0;x<_.length;x++)w(c,_[x]);if(m){let x=m.subTree;if(a===x){const E=m.vnode;W(c,E,E.scopeId,E.slotScopeIds,m.parent)}}},S=(c,a,h,_,m,x,E,y,C=0)=>{for(let b=C;b{const y=a.el=c.el;let{patchFlag:C,dynamicChildren:b,dirs:F}=a;C|=c.patchFlag&16;const A=c.props||Z,M=a.props||Z;let R;h&&qe(h,!1),(R=M.onVnodeBeforeUpdate)&&_e(R,h,a,c),F&&ze(a,c,h,"beforeUpdate"),h&&qe(h,!0);const B=m&&a.type!=="foreignObject";if(b?$(c.dynamicChildren,b,y,h,_,B,x):E||J(c,a,y,null,h,_,B,x,!1),C>0){if(C&16)X(y,a,A,M,h,_,m);else if(C&2&&A.class!==M.class&&o(y,"class",null,M.class,m),C&4&&o(y,"style",A.style,M.style,m),C&8){const Q=a.dynamicProps;for(let z=0;z{R&&_e(R,h,a,c),F&&ze(a,c,h,"updated")},_)},$=(c,a,h,_,m,x,E)=>{for(let y=0;y{if(h!==_){if(h!==Z)for(const y in h)!Wt(y)&&!(y in _)&&o(c,y,h[y],null,E,a.children,m,x,Fe);for(const y in _){if(Wt(y))continue;const C=_[y],b=h[y];C!==b&&y!=="value"&&o(c,y,b,C,E,a.children,m,x,Fe)}"value"in _&&o(c,"value",h.value,_.value)}},P=(c,a,h,_,m,x,E,y,C)=>{const b=a.el=c?c.el:l(""),F=a.anchor=c?c.anchor:l("");let{patchFlag:A,dynamicChildren:M,slotScopeIds:R}=a;R&&(y=y?y.concat(R):R),c==null?(s(b,h,_),s(F,h,_),S(a.children,h,F,m,x,E,y,C)):A>0&&A&64&&M&&c.dynamicChildren?($(c.dynamicChildren,M,h,m,x,E,y),(a.key!=null||m&&a===m.subTree)&&ds(c,a,!0)):J(c,a,h,F,m,x,E,y,C)},G=(c,a,h,_,m,x,E,y,C)=>{a.slotScopeIds=y,c==null?a.shapeFlag&512?m.ctx.activate(a,h,_,E,C):he(a,h,_,m,x,E,C):_t(c,a,C)},he=(c,a,h,_,m,x,E)=>{const y=c.component=ml(c,_,m);if(un(c)&&(y.ctx.renderer=tt),_l(y),y.asyncDep){if(m&&m.registerDep(y,re),!c.el){const C=y.subTree=ue(ye);V(null,C,a,h)}return}re(y,c,a,h,m,x,E)},_t=(c,a,h)=>{const _=a.component=c.component;if(Oi(c,a,h))if(_.asyncDep&&!_.asyncResolved){te(_,a,h);return}else _.next=a,vi(_.update),_.update();else a.el=c.el,_.vnode=a},re=(c,a,h,_,m,x,E)=>{const y=()=>{if(c.isMounted){let{next:F,bu:A,u:M,parent:R,vnode:B}=c,Q=F,z;qe(c,!1),F?(F.el=B.el,te(c,F,E)):F=B,A&&ct(A),(z=F.props&&F.props.onVnodeBeforeUpdate)&&_e(z,R,F,B),qe(c,!0);const se=bn(c),ve=c.subTree;c.subTree=se,O(ve,se,p(ve.el),Ht(ve),c,m,x),F.el=se.el,Q===null&&Ii(c,se.el),M&&le(M,m),(z=F.props&&F.props.onVnodeUpdated)&&le(()=>_e(z,R,F,B),m)}else{let F;const{el:A,props:M}=a,{bm:R,m:B,parent:Q}=c,z=at(a);if(qe(c,!1),R&&ct(R),!z&&(F=M&&M.onVnodeBeforeMount)&&_e(F,Q,a),qe(c,!0),A&&mn){const se=()=>{c.subTree=bn(c),mn(A,c.subTree,c,m,null)};z?a.type.__asyncLoader().then(()=>!c.isUnmounted&&se()):se()}else{const se=c.subTree=bn(c);O(null,se,h,_,c,m,x),a.el=se.el}if(B&&le(B,m),!z&&(F=M&&M.onVnodeMounted)){const se=a;le(()=>_e(F,Q,se),m)}(a.shapeFlag&256||Q&&at(Q.vnode)&&Q.vnode.shapeFlag&256)&&c.a&&le(c.a,m),c.isMounted=!0,a=h=_=null}},C=c.effect=new Qn(y,()=>ss(b),c.scope),b=c.update=()=>C.run();b.id=c.uid,qe(c,!0),b()},te=(c,a,h)=>{a.component=c;const _=c.vnode.props;c.vnode=a,c.next=null,Gi(c,a.props,_,h),nl(c,a.children,h),gt(),Ps(),mt()},J=(c,a,h,_,m,x,E,y,C=!1)=>{const b=c&&c.children,F=c?c.shapeFlag:0,A=a.children,{patchFlag:M,shapeFlag:R}=a;if(M>0){if(M&128){Dt(b,A,h,_,m,x,E,y,C);return}else if(M&256){Ve(b,A,h,_,m,x,E,y,C);return}}R&8?(F&16&&Fe(b,m,x),A!==b&&d(h,A)):F&16?R&16?Dt(b,A,h,_,m,x,E,y,C):Fe(b,m,x,!0):(F&8&&d(h,""),R&16&&S(A,h,_,m,x,E,y,C))},Ve=(c,a,h,_,m,x,E,y,C)=>{c=c||it,a=a||it;const b=c.length,F=a.length,A=Math.min(b,F);let M;for(M=0;MF?Fe(c,m,x,!0,!1,A):S(a,h,_,m,x,E,y,C,A)},Dt=(c,a,h,_,m,x,E,y,C)=>{let b=0;const F=a.length;let A=c.length-1,M=F-1;for(;b<=A&&b<=M;){const R=c[b],B=a[b]=C?$e(a[b]):Oe(a[b]);if(je(R,B))O(R,B,h,null,m,x,E,y,C);else break;b++}for(;b<=A&&b<=M;){const R=c[A],B=a[M]=C?$e(a[M]):Oe(a[M]);if(je(R,B))O(R,B,h,null,m,x,E,y,C);else break;A--,M--}if(b>A){if(b<=M){const R=M+1,B=RM)for(;b<=A;)we(c[b],m,x,!0),b++;else{const R=b,B=b,Q=new Map;for(b=B;b<=M;b++){const pe=a[b]=C?$e(a[b]):Oe(a[b]);pe.key!=null&&Q.set(pe.key,b)}let z,se=0;const ve=M-B+1;let nt=!1,bs=0;const bt=new Array(ve);for(b=0;b=ve){we(pe,m,x,!0);continue}let Ae;if(pe.key!=null)Ae=Q.get(pe.key);else for(z=B;z<=M;z++)if(bt[z-B]===0&&je(pe,a[z])){Ae=z;break}Ae===void 0?we(pe,m,x,!0):(bt[Ae-B]=b+1,Ae>=bs?bs=Ae:nt=!0,O(pe,a[Ae],h,null,m,x,E,y,C),se++)}const ys=nt?ol(bt):it;for(z=ys.length-1,b=ve-1;b>=0;b--){const pe=B+b,Ae=a[pe],vs=pe+1{const{el:x,type:E,transition:y,children:C,shapeFlag:b}=c;if(b&6){We(c.component.subTree,a,h,_);return}if(b&128){c.suspense.move(a,h,_);return}if(b&64){E.move(c,a,h,tt);return}if(E===ge){s(x,a,h);for(let A=0;Ay.enter(x),m);else{const{leave:A,delayLeave:M,afterLeave:R}=y,B=()=>s(x,a,h),Q=()=>{A(x,()=>{B(),R&&R()})};M?M(x,B,Q):Q()}else s(x,a,h)},we=(c,a,h,_=!1,m=!1)=>{const{type:x,props:E,ref:y,children:C,dynamicChildren:b,shapeFlag:F,patchFlag:A,dirs:M}=c;if(y!=null&&Dn(y,null,h,c,!0),F&256){a.ctx.deactivate(c);return}const R=F&1&&M,B=!at(c);let Q;if(B&&(Q=E&&E.onVnodeBeforeUnmount)&&_e(Q,a,c),F&6)bo(c.component,h,_);else{if(F&128){c.suspense.unmount(h,_);return}R&&ze(c,null,a,"beforeUnmount"),F&64?c.type.remove(c,a,h,m,tt,_):b&&(x!==ge||A>0&&A&64)?Fe(b,a,h,!1,!0):(x===ge&&A&384||!m&&F&16)&&Fe(C,a,h),_&&ms(c)}(B&&(Q=E&&E.onVnodeUnmounted)||R)&&le(()=>{Q&&_e(Q,a,c),R&&ze(c,null,a,"unmounted")},h)},ms=c=>{const{type:a,el:h,anchor:_,transition:m}=c;if(a===ge){_o(h,_);return}if(a===Jt){v(c);return}const x=()=>{r(h),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(c.shapeFlag&1&&m&&!m.persisted){const{leave:E,delayLeave:y}=m,C=()=>E(h,x);y?y(c.el,x,C):C()}else x()},_o=(c,a)=>{let h;for(;c!==a;)h=g(c),r(c),c=h;r(a)},bo=(c,a,h)=>{const{bum:_,scope:m,update:x,subTree:E,um:y}=c;_&&ct(_),m.stop(),x&&(x.active=!1,we(E,c,a,h)),y&&le(y,a),le(()=>{c.isUnmounted=!0},a),a&&a.pendingBranch&&!a.isUnmounted&&c.asyncDep&&!c.asyncResolved&&c.suspenseId===a.pendingId&&(a.deps--,a.deps===0&&a.resolve())},Fe=(c,a,h,_=!1,m=!1,x=0)=>{for(let E=x;Ec.shapeFlag&6?Ht(c.component.subTree):c.shapeFlag&128?c.suspense.next():g(c.anchor||c.el),_s=(c,a,h)=>{c==null?a._vnode&&we(a._vnode,null,null,!0):O(a._vnode||null,c,a,null,null,null,h),Ps(),Nr(),a._vnode=c},tt={p:O,um:we,m:We,r:ms,mt:he,mc:S,pc:J,pbc:$,n:Ht,o:e};let gn,mn;return t&&([gn,mn]=t(tt)),{render:_s,hydrate:gn,createApp:Yi(_s,gn)}}function qe({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ds(e,t,n=!1){const s=e.children,r=t.children;if(N(s)&&N(r))for(let o=0;o>1,e[n[l]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}const il=e=>e.__isTeleport,wt=e=>e&&(e.disabled||e.disabled===""),Us=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Hn=(e,t)=>{const n=e&&e.to;return ee(n)?t?t(n):null:n},ll={__isTeleport:!0,process(e,t,n,s,r,o,i,l,f,u){const{mc:d,pc:p,pbc:g,o:{insert:w,querySelector:D,createText:O,createComment:K}}=u,V=wt(t.props);let{shapeFlag:T,children:I,dynamicChildren:v}=t;if(e==null){const H=t.el=O(""),q=t.anchor=O("");w(H,n,s),w(q,n,s);const W=t.target=Hn(t.props,D),S=t.targetAnchor=O("");W&&(w(S,W),i=i||Us(W));const k=($,X)=>{T&16&&d(I,$,X,r,o,i,l,f)};V?k(n,q):W&&k(W,S)}else{t.el=e.el;const H=t.anchor=e.anchor,q=t.target=e.target,W=t.targetAnchor=e.targetAnchor,S=wt(e.props),k=S?n:q,$=S?H:W;if(i=i||Us(q),v?(g(e.dynamicChildren,v,k,r,o,i,l),ds(e,t,!0)):f||p(e,t,k,$,r,o,i,l,!1),V)S||Vt(t,n,H,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const X=t.target=Hn(t.props,D);X&&Vt(t,X,null,u,0)}else S&&Vt(t,q,W,u,1)}Gr(t)},remove(e,t,n,s,{um:r,o:{remove:o}},i){const{shapeFlag:l,children:f,anchor:u,targetAnchor:d,target:p,props:g}=e;if(p&&o(d),(i||!wt(g))&&(o(u),l&16))for(let w=0;w0?Ee||it:null,fl(),St>0&&Ee&&Ee.push(e),e}function Ic(e,t,n,s,r,o){return to(ro(e,t,n,s,r,o,!0))}function no(e,t,n,s,r){return to(ue(e,t,n,s,r,!0))}function Nt(e){return e?e.__v_isVNode===!0:!1}function je(e,t){return e.type===t.type&&e.key===t.key}const hn="__vInternal",so=({key:e})=>e??null,Qt=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ee(e)||ie(e)||L(e)?{i:ce,r:e,k:t,f:!!n}:e:null);function ro(e,t=null,n=null,s=0,r=null,o=e===ge?0:1,i=!1,l=!1){const f={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&so(t),ref:t&&Qt(t),scopeId:fn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ce};return l?(hs(f,n),o&128&&e.normalize(f)):n&&(f.shapeFlag|=ee(n)?8:16),St>0&&!i&&Ee&&(f.patchFlag>0||o&6)&&f.patchFlag!==32&&Ee.push(f),f}const ue=ul;function ul(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===kr)&&(e=ye),Nt(e)){const l=Re(e,t,!0);return n&&hs(l,n),St>0&&!o&&Ee&&(l.shapeFlag&6?Ee[Ee.indexOf(e)]=l:Ee.push(l)),l.patchFlag|=-2,l}if(xl(e)&&(e=e.__vccOpts),t){t=al(t);let{class:l,style:f}=t;l&&!ee(l)&&(t.class=qn(l)),Y(f)&&(Tr(f)&&!N(f)&&(f=ne({},f)),t.style=zn(f))}const i=ee(e)?1:Dr(e)?128:il(e)?64:Y(e)?4:L(e)?2:0;return ro(e,t,n,s,r,i,o,!0)}function al(e){return e?Tr(e)||hn in e?ne({},e):e:null}function Re(e,t,n=!1){const{props:s,ref:r,patchFlag:o,children:i}=e,l=t?hl(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&so(l),ref:t&&t.ref?n&&r?N(r)?r.concat(Qt(t)):[r,Qt(t)]:Qt(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ge?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Re(e.ssContent),ssFallback:e.ssFallback&&Re(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function dl(e=" ",t=0){return ue(dn,null,e,t)}function Pc(e,t){const n=ue(Jt,null,e);return n.staticCount=t,n}function Fc(e="",t=!1){return t?(eo(),no(ye,null,e)):ue(ye,null,e)}function Oe(e){return e==null||typeof e=="boolean"?ue(ye):N(e)?ue(ge,null,e.slice()):typeof e=="object"?$e(e):ue(dn,null,String(e))}function $e(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Re(e)}function hs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(N(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),hs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(hn in t)?t._ctx=ce:r===3&&ce&&(ce.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else L(t)?(t={default:t,_ctx:ce},n=32):(t=String(t),s&64?(n=16,t=[dl(t)]):n=8);e.children=t,e.shapeFlag|=n}function hl(...e){const t={};for(let n=0;noe||ce;let gs,st,ks="__VUE_INSTANCE_SETTERS__";(st=On()[ks])||(st=On()[ks]=[]),st.push(e=>oe=e),gs=e=>{st.length>1?st.forEach(t=>t(e)):st[0](e)};const pt=e=>{gs(e),e.scope.on()},Ge=()=>{oe&&oe.scope.off(),gs(null)};function oo(e){return e.vnode.shapeFlag&4}let Rt=!1;function _l(e,t=!1){Rt=t;const{props:n,children:s}=e.vnode,r=oo(e);Zi(e,n,r,t),tl(e,s);const o=r?bl(e,t):void 0;return Rt=!1,o}function bl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=wr(new Proxy(e.ctx,ki));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?vl(e):null;pt(e),gt();const o=Ke(s,e,0,[e.props,r]);if(mt(),Ge(),lr(o)){if(o.then(Ge,Ge),t)return o.then(i=>{Vs(e,i,t)}).catch(i=>{ln(i,e,0)});e.asyncDep=o}else Vs(e,o,t)}else io(e,t)}function Vs(e,t,n){L(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Y(t)&&(e.setupState=Pr(t)),io(e,n)}let Ws;function io(e,t,n){const s=e.type;if(!e.render){if(!t&&Ws&&!s.render){const r=s.template||us(e).template;if(r){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:f}=s,u=ne(ne({isCustomElement:o,delimiters:l},i),f);s.render=Ws(r,u)}}e.render=s.render||Te}pt(e),gt(),Vi(e),mt(),Ge()}function yl(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return de(e,"get","$attrs"),t[n]}}))}function vl(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return yl(e)},slots:e.slots,emit:e.emit,expose:t}}function pn(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Pr(wr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Tt)return Tt[n](e)},has(t,n){return n in t||n in Tt}}))}function Bn(e,t=!0){return L(e)?e.displayName||e.name:e.name||t&&e.__name}function xl(e){return L(e)&&"__vccOpts"in e}const Cl=(e,t)=>mi(e,t,Rt);function El(e,t,n){const s=arguments.length;return s===2?Y(t)&&!N(t)?Nt(t)?ue(e,null,[t]):ue(e,t):ue(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Nt(n)&&(n=[n]),ue(e,t,n))}const Tl=Symbol.for("v-scx"),wl=()=>qt(Tl),Al="3.3.4",Ol="http://www.w3.org/2000/svg",Ye=typeof document<"u"?document:null,zs=Ye&&Ye.createElement("template"),Il={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?Ye.createElementNS(Ol,e):Ye.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Ye.createTextNode(e),createComment:e=>Ye.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ye.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{zs.innerHTML=s?`${e}`:e;const l=zs.content;if(s){const f=l.firstChild;for(;f.firstChild;)l.appendChild(f.firstChild);l.removeChild(f)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Pl(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Fl(e,t,n){const s=e.style,r=ee(n);if(n&&!r){if(t&&!ee(t))for(const o in t)n[o]==null&&$n(s,o,"");for(const o in n)$n(s,o,n[o])}else{const o=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=o)}}const qs=/\s*!important$/;function $n(e,t,n){if(N(n))n.forEach(s=>$n(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Ml(e,t);qs.test(n)?e.setProperty(et(s),n.replace(qs,""),"important"):e[s]=n}}const Js=["Webkit","Moz","ms"],En={};function Ml(e,t){const n=En[t];if(n)return n;let s=Pe(t);if(s!=="filter"&&s in e)return En[t]=s;s=rn(s);for(let r=0;rTn||(Hl.then(()=>Tn=0),Tn=Date.now());function $l(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;be(jl(s,n.value),t,5,[s])};return n.value=e,n.attached=Bl(),n}function jl(e,t){if(N(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Xs=/^on[a-z]/,Ul=(e,t,n,s,r=!1,o,i,l,f)=>{t==="class"?Pl(e,s,r):t==="style"?Fl(e,n,s):nn(t)?Kn(t)||Ll(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Kl(e,t,s,r))?Nl(e,t,s,o,i,l,f):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Sl(e,t,s,r))};function Kl(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&Xs.test(t)&&L(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Xs.test(t)&&ee(n)?!1:t in e}const He="transition",yt="animation",lo=(e,{slots:t})=>El(Si,fo(e),t);lo.displayName="Transition";const co={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},kl=lo.props=ne({},$r,co),Je=(e,t=[])=>{N(e)?e.forEach(n=>n(...t)):e&&e(...t)},Zs=e=>e?N(e)?e.some(t=>t.length>1):e.length>1:!1;function fo(e){const t={};for(const P in e)P in co||(t[P]=e[P]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:f=o,appearActiveClass:u=i,appearToClass:d=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:w=`${n}-leave-to`}=e,D=Vl(r),O=D&&D[0],K=D&&D[1],{onBeforeEnter:V,onEnter:T,onEnterCancelled:I,onLeave:v,onLeaveCancelled:H,onBeforeAppear:q=V,onAppear:W=T,onAppearCancelled:S=I}=t,k=(P,G,he)=>{Be(P,G?d:l),Be(P,G?u:i),he&&he()},$=(P,G)=>{P._isLeaving=!1,Be(P,p),Be(P,w),Be(P,g),G&&G()},X=P=>(G,he)=>{const _t=P?W:T,re=()=>k(G,P,he);Je(_t,[G,re]),Gs(()=>{Be(G,P?f:o),Me(G,P?d:l),Zs(_t)||er(G,s,O,re)})};return ne(t,{onBeforeEnter(P){Je(V,[P]),Me(P,o),Me(P,i)},onBeforeAppear(P){Je(q,[P]),Me(P,f),Me(P,u)},onEnter:X(!1),onAppear:X(!0),onLeave(P,G){P._isLeaving=!0;const he=()=>$(P,G);Me(P,p),ao(),Me(P,g),Gs(()=>{P._isLeaving&&(Be(P,p),Me(P,w),Zs(v)||er(P,s,K,he))}),Je(v,[P,he])},onEnterCancelled(P){k(P,!1),Je(I,[P])},onAppearCancelled(P){k(P,!0),Je(S,[P])},onLeaveCancelled(P){$(P),Je(H,[P])}})}function Vl(e){if(e==null)return null;if(Y(e))return[wn(e.enter),wn(e.leave)];{const t=wn(e);return[t,t]}}function wn(e){return Ao(e)}function Me(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Be(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Gs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Wl=0;function er(e,t,n,s){const r=e._endId=++Wl,o=()=>{r===e._endId&&s()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:f}=uo(e,t);if(!i)return s();const u=i+"end";let d=0;const p=()=>{e.removeEventListener(u,g),o()},g=w=>{w.target===e&&++d>=f&&p()};setTimeout(()=>{d(n[D]||"").split(", "),r=s(`${He}Delay`),o=s(`${He}Duration`),i=tr(r,o),l=s(`${yt}Delay`),f=s(`${yt}Duration`),u=tr(l,f);let d=null,p=0,g=0;t===He?i>0&&(d=He,p=i,g=o.length):t===yt?u>0&&(d=yt,p=u,g=f.length):(p=Math.max(i,u),d=p>0?i>u?He:yt:null,g=d?d===He?o.length:f.length:0);const w=d===He&&/\b(transform|all)(,|$)/.test(s(`${He}Property`).toString());return{type:d,timeout:p,propCount:g,hasTransform:w}}function tr(e,t){for(;e.lengthnr(n)+nr(e[s])))}function nr(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function ao(){return document.body.offsetHeight}const ho=new WeakMap,po=new WeakMap,go={name:"TransitionGroup",props:ne({},kl,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ps(),s=Br();let r,o;return ls(()=>{if(!r.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!Yl(r[0].el,n.vnode.el,i))return;r.forEach(ql),r.forEach(Jl);const l=r.filter(Ql);ao(),l.forEach(f=>{const u=f.el,d=u.style;Me(u,i),d.transform=d.webkitTransform=d.transitionDuration="";const p=u._moveCb=g=>{g&&g.target!==u||(!g||/transform$/.test(g.propertyName))&&(u.removeEventListener("transitionend",p),u._moveCb=null,Be(u,i))};u.addEventListener("transitionend",p)})}),()=>{const i=j(e),l=fo(i);let f=i.tag||ge;r=o,o=t.default?os(t.default()):[];for(let u=0;udelete e.mode;go.props;const Mc=go;function ql(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function Jl(e){po.set(e,e.el.getBoundingClientRect())}function Ql(e){const t=ho.get(e),n=po.get(e),s=t.left-n.left,r=t.top-n.top;if(s||r){const o=e.el.style;return o.transform=o.webkitTransform=`translate(${s}px,${r}px)`,o.transitionDuration="0s",e}}function Yl(e,t,n){const s=e.cloneNode();e._vtc&&e._vtc.forEach(i=>{i.split(/\s+/).forEach(l=>l&&s.classList.remove(l))}),n.split(/\s+/).forEach(i=>i&&s.classList.add(i)),s.style.display="none";const r=t.nodeType===1?t:t.parentNode;r.appendChild(s);const{hasTransform:o}=uo(s);return r.removeChild(s),o}const sr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return N(t)?n=>ct(t,n):t};function Xl(e){e.target.composing=!0}function rr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Sc={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e._assign=sr(r);const o=s||r.props&&r.props.type==="number";ot(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=An(l)),e._assign(l)}),n&&ot(e,"change",()=>{e.value=e.value.trim()}),t||(ot(e,"compositionstart",Xl),ot(e,"compositionend",rr),ot(e,"change",rr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:s,number:r}},o){if(e._assign=sr(o),e.composing||document.activeElement===e&&e.type!=="range"&&(n||s&&e.value.trim()===t||(r||e.type==="number")&&An(e.value)===t))return;const i=t??"";e.value!==i&&(e.value=i)}},Zl=["ctrl","shift","alt","meta"],Gl={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Zl.some(n=>e[`${n}Key`]&&!t.includes(n))},Nc=(e,t)=>(n,...s)=>{for(let r=0;rn=>{if(!("key"in n))return;const s=et(n.key);if(t.some(r=>r===s||ec[r]===s))return e(n)},Lc={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):vt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),vt(e,!0),s.enter(e)):s.leave(e,()=>{vt(e,!1)}):vt(e,t))},beforeUnmount(e,{value:t}){vt(e,t)}};function vt(e,t){e.style.display=t?e._vod:"none"}const tc=ne({patchProp:Ul},Il);let or;function nc(){return or||(or=sl(tc))}const Dc=(...e)=>{const t=nc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=sc(s);if(!r)return;const o=t._component;!L(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.innerHTML="";const i=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t};function sc(e){return ee(e)?document.querySelector(e):e}function rc(){return mo().__VUE_DEVTOOLS_GLOBAL_HOOK__}function mo(){return typeof navigator<"u"&&typeof window<"u"?window:typeof global<"u"?global:{}}const oc=typeof Proxy=="function",ic="devtools-plugin:setup",lc="plugin:settings:set";let rt,jn;function cc(){var e;return rt!==void 0||(typeof window<"u"&&window.performance?(rt=!0,jn=window.performance):typeof global<"u"&&(!((e=global.perf_hooks)===null||e===void 0)&&e.performance)?(rt=!0,jn=global.perf_hooks.performance):rt=!1),rt}function fc(){return cc()?jn.now():Date.now()}class uc{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const s={};if(t.settings)for(const i in t.settings){const l=t.settings[i];s[i]=l.defaultValue}const r=`__vue-devtools-plugin-settings__${t.id}`;let o=Object.assign({},s);try{const i=localStorage.getItem(r),l=JSON.parse(i);Object.assign(o,l)}catch{}this.fallbacks={getSettings(){return o},setSettings(i){try{localStorage.setItem(r,JSON.stringify(i))}catch{}o=i},now(){return fc()}},n&&n.on(lc,(i,l)=>{i===this.plugin.id&&this.fallbacks.setSettings(l)}),this.proxiedOn=new Proxy({},{get:(i,l)=>this.target?this.target.on[l]:(...f)=>{this.onQueue.push({method:l,args:f})}}),this.proxiedTarget=new Proxy({},{get:(i,l)=>this.target?this.target[l]:l==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(l)?(...f)=>(this.targetQueue.push({method:l,args:f,resolve:()=>{}}),this.fallbacks[l](...f)):(...f)=>new Promise(u=>{this.targetQueue.push({method:l,args:f,resolve:u})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function Hc(e,t){const n=e,s=mo(),r=rc(),o=oc&&n.enableEarlyProxy;if(r&&(s.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!o))r.emit(ic,e,t);else{const i=o?new uc(n,r):null;(s.__VUE_DEVTOOLS_PLUGINS__=s.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:i}),i&&t(i.proxiedTarget)}}export{Hc as $,Re as A,wr as B,ye as C,Gn as D,Tr as E,ge as F,j as G,Kr as H,zn as I,Oc as J,qn as K,ac as L,Sc as M,Fc as N,Rc as O,no as P,Ec as Q,pc as R,Ac as S,lo as T,ue as U,mc as V,_c as W,Er as X,hc as Y,ai as Z,dc as _,ro as a,Ti as a0,Nc as a1,Cc as a2,Tc as a3,xc as a4,Dc as a5,wc as a6,Pc as b,Ic as c,vc as d,dl as e,Nt as f,ps as g,cs as h,qt as i,is as j,Hi as k,Ri as l,Li as m,Cl as n,eo as o,Xi as p,bc as q,fi as r,El as s,Mc as t,gc as u,Lc as v,zt as w,hl as x,bi as y,yc as z}; diff --git a/web/dist/assets/Anouncement-c1b36ed4.js b/web/dist/assets/Anouncement-f2146181.js similarity index 73% rename from web/dist/assets/Anouncement-c1b36ed4.js rename to web/dist/assets/Anouncement-f2146181.js index a6da5f4a..3af2ec5e 100644 --- a/web/dist/assets/Anouncement-c1b36ed4.js +++ b/web/dist/assets/Anouncement-f2146181.js @@ -1 +1 @@ -import{_ as C}from"./post-skeleton-3fdfd3d1.js";import{_ as F}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{u as z}from"./vuex-613b371d.js";import{b as A}from"./vue-router-8af5a3a6.js";import{a as P}from"./formatTime-000dbebb.js";import{d as R,r as n,j as S,c as o,U as a,a0 as p,o as e,Z as u,N as l,F as V,a3 as I,P as L,a as s,L as _,K as U}from"./@vue-b8d06722.js";import{F as j,G as q,I as D,H as E}from"./naive-ui-374a973f.js";import{_ as G}from"./index-43cab287.js";import"./vooks-423a5f30.js";import"./evtd-b614532e.js";import"./@vicons-7ee3dafd.js";import"./moment-b7869f98.js";import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./@css-render-4f82e6dd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./axios-4a70c6fc.js";/* empty css */const H={key:0,class:"pagination-wrap"},K={key:0,class:"skeleton-wrap"},M={key:1},O={key:0,class:"empty-wrap"},T={class:"bill-line"},Z=R({__name:"Anouncement",setup($){const d=z(),g=A(),v=n(!1),r=n([]),i=n(+g.query.p||1),f=n(20),c=n(0),h=m=>{i.value=m};return S(()=>{}),(m,J)=>{const y=F,k=q,x=C,w=D,N=E,B=j;return e(),o("div",null,[a(y,{title:"公告"}),a(B,{class:"main-content-wrap",bordered:""},{footer:p(()=>[c.value>1?(e(),o("div",H,[a(k,{page:i.value,"onUpdate:page":h,"page-slot":u(d).state.collapsedRight?5:8,"page-count":c.value},null,8,["page","page-slot","page-count"])])):l("",!0)]),default:p(()=>[v.value?(e(),o("div",K,[a(x,{num:f.value},null,8,["num"])])):(e(),o("div",M,[r.value.length===0?(e(),o("div",O,[a(w,{size:"large",description:"暂无数据"})])):l("",!0),(e(!0),o(V,null,I(r.value,t=>(e(),L(N,{key:t.id},{default:p(()=>[s("div",T,[s("div",null,"NO."+_(t.id),1),s("div",null,_(t.reason),1),s("div",{class:U({income:t.change_amount>=0,out:t.change_amount<0})},_((t.change_amount>0?"+":"")+(t.change_amount/100).toFixed(2)),3),s("div",null,_(u(P)(t.created_on)),1)])]),_:2},1024))),128))]))]),_:1})])}}});const kt=G(Z,[["__scopeId","data-v-d4d04859"]]);export{kt as default}; +import{_ as C}from"./post-skeleton-49f18127.js";import{_ as F}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{u as z}from"./vuex-4d2f7b35.js";import{b as A}from"./vue-router-29e6667f.js";import{a as P}from"./formatTime-000dbebb.js";import{d as R,r as n,j as S,c as o,U as a,a0 as p,o as e,Z as u,N as l,F as V,a3 as I,P as L,a as s,L as _,K as U}from"./@vue-d002002f.js";import{F as j,G as q,I as D,H as E}from"./naive-ui-d02aa0d7.js";import{_ as G}from"./index-5fa3c6e0.js";import"./vooks-77bdadbd.js";import"./evtd-b614532e.js";import"./@vicons-4022100b.js";import"./moment-b7869f98.js";import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./@css-render-6b6cdab1.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./axios-4a70c6fc.js";/* empty css */const H={key:0,class:"pagination-wrap"},K={key:0,class:"skeleton-wrap"},M={key:1},O={key:0,class:"empty-wrap"},T={class:"bill-line"},Z=R({__name:"Anouncement",setup($){const d=z(),g=A(),v=n(!1),r=n([]),i=n(+g.query.p||1),f=n(20),c=n(0),h=m=>{i.value=m};return S(()=>{}),(m,J)=>{const y=F,k=q,x=C,w=D,N=E,B=j;return e(),o("div",null,[a(y,{title:"公告"}),a(B,{class:"main-content-wrap",bordered:""},{footer:p(()=>[c.value>1?(e(),o("div",H,[a(k,{page:i.value,"onUpdate:page":h,"page-slot":u(d).state.collapsedRight?5:8,"page-count":c.value},null,8,["page","page-slot","page-count"])])):l("",!0)]),default:p(()=>[v.value?(e(),o("div",K,[a(x,{num:f.value},null,8,["num"])])):(e(),o("div",M,[r.value.length===0?(e(),o("div",O,[a(w,{size:"large",description:"暂无数据"})])):l("",!0),(e(!0),o(V,null,I(r.value,t=>(e(),L(N,{key:t.id},{default:p(()=>[s("div",T,[s("div",null,"NO."+_(t.id),1),s("div",null,_(t.reason),1),s("div",{class:U({income:t.change_amount>=0,out:t.change_amount<0})},_((t.change_amount>0?"+":"")+(t.change_amount/100).toFixed(2)),3),s("div",null,_(u(P)(t.created_on)),1)])]),_:2},1024))),128))]))]),_:1})])}}});const kt=G(Z,[["__scopeId","data-v-d4d04859"]]);export{kt as default}; diff --git a/web/dist/assets/Collection-653778e5.js b/web/dist/assets/Collection-f0c6a1aa.js similarity index 75% rename from web/dist/assets/Collection-653778e5.js rename to web/dist/assets/Collection-f0c6a1aa.js index d261859d..12ad5769 100644 --- a/web/dist/assets/Collection-653778e5.js +++ b/web/dist/assets/Collection-f0c6a1aa.js @@ -1 +1 @@ -import{_ as M,a as N}from"./post-item.vue_vue_type_style_index_0_lang-f7f6062b.js";import{_ as S}from"./post-skeleton-3fdfd3d1.js";import{_ as $}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{u as I}from"./vuex-613b371d.js";import{b as R}from"./vue-router-8af5a3a6.js";import{K as U,_ as V}from"./index-43cab287.js";import{d as j,r as s,j as q,c as o,U as e,a0 as c,Z as g,N as v,o as t,F as f,a3 as h,P as k}from"./@vue-b8d06722.js";import{F as E,G,I as H,H as K}from"./naive-ui-374a973f.js";import"./content-bfe7958f.js";import"./@vicons-7ee3dafd.js";import"./paopao-video-player-b4739fc7.js";import"./formatTime-000dbebb.js";import"./moment-b7869f98.js";import"./copy-to-clipboard-1dd3075d.js";import"./toggle-selection-93f4ad84.js";import"./vooks-423a5f30.js";import"./evtd-b614532e.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./@css-render-4f82e6dd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";const L={key:0,class:"skeleton-wrap"},T={key:1},Z={key:0,class:"empty-wrap"},A={key:1},D={key:2},J={key:0,class:"pagination-wrap"},O=j({__name:"Collection",setup(Q){const m=I(),y=R(),_=s(!1),i=s([]),p=s(+y.query.p||1),l=s(20),r=s(0),u=()=>{_.value=!0,U({page:p.value,page_size:l.value}).then(n=>{_.value=!1,i.value=n.list,r.value=Math.ceil(n.pager.total_rows/l.value),window.scrollTo(0,0)}).catch(n=>{_.value=!1})},w=n=>{p.value=n,u()};return q(()=>{u()}),(n,W)=>{const C=$,b=S,x=H,P=M,d=K,z=N,B=E,F=G;return t(),o("div",null,[e(C,{title:"收藏"}),e(B,{class:"main-content-wrap",bordered:""},{default:c(()=>[_.value?(t(),o("div",L,[e(b,{num:l.value},null,8,["num"])])):(t(),o("div",T,[i.value.length===0?(t(),o("div",Z,[e(x,{size:"large",description:"暂无数据"})])):v("",!0),g(m).state.desktopModelShow?(t(),o("div",A,[(t(!0),o(f,null,h(i.value,a=>(t(),k(d,{key:a.id},{default:c(()=>[e(P,{post:a},null,8,["post"])]),_:2},1024))),128))])):(t(),o("div",D,[(t(!0),o(f,null,h(i.value,a=>(t(),k(d,{key:a.id},{default:c(()=>[e(z,{post:a},null,8,["post"])]),_:2},1024))),128))]))]))]),_:1}),r.value>0?(t(),o("div",J,[e(F,{page:p.value,"onUpdate:page":w,"page-slot":g(m).state.collapsedRight?5:8,"page-count":r.value},null,8,["page","page-slot","page-count"])])):v("",!0)])}}});const Ft=V(O,[["__scopeId","data-v-a5302c9b"]]);export{Ft as default}; +import{_ as M,a as N}from"./post-item.vue_vue_type_style_index_0_lang-bc760886.js";import{_ as S}from"./post-skeleton-49f18127.js";import{_ as $}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{u as I}from"./vuex-4d2f7b35.js";import{b as R}from"./vue-router-29e6667f.js";import{K as U,_ as V}from"./index-5fa3c6e0.js";import{d as j,r as s,j as q,c as o,U as e,a0 as c,Z as g,N as v,o as t,F as f,a3 as h,P as k}from"./@vue-d002002f.js";import{F as E,G,I as H,H as K}from"./naive-ui-d02aa0d7.js";import"./content-1ad34d0c.js";import"./@vicons-4022100b.js";import"./paopao-video-player-d47e9bf6.js";import"./formatTime-000dbebb.js";import"./moment-b7869f98.js";import"./copy-to-clipboard-1dd3075d.js";import"./toggle-selection-93f4ad84.js";import"./vooks-77bdadbd.js";import"./evtd-b614532e.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./@css-render-6b6cdab1.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";const L={key:0,class:"skeleton-wrap"},T={key:1},Z={key:0,class:"empty-wrap"},A={key:1},D={key:2},J={key:0,class:"pagination-wrap"},O=j({__name:"Collection",setup(Q){const m=I(),y=R(),_=s(!1),i=s([]),p=s(+y.query.p||1),l=s(20),r=s(0),u=()=>{_.value=!0,U({page:p.value,page_size:l.value}).then(n=>{_.value=!1,i.value=n.list,r.value=Math.ceil(n.pager.total_rows/l.value),window.scrollTo(0,0)}).catch(n=>{_.value=!1})},w=n=>{p.value=n,u()};return q(()=>{u()}),(n,W)=>{const C=$,b=S,x=H,P=M,d=K,z=N,B=E,F=G;return t(),o("div",null,[e(C,{title:"收藏"}),e(B,{class:"main-content-wrap",bordered:""},{default:c(()=>[_.value?(t(),o("div",L,[e(b,{num:l.value},null,8,["num"])])):(t(),o("div",T,[i.value.length===0?(t(),o("div",Z,[e(x,{size:"large",description:"暂无数据"})])):v("",!0),g(m).state.desktopModelShow?(t(),o("div",A,[(t(!0),o(f,null,h(i.value,a=>(t(),k(d,{key:a.id},{default:c(()=>[e(P,{post:a},null,8,["post"])]),_:2},1024))),128))])):(t(),o("div",D,[(t(!0),o(f,null,h(i.value,a=>(t(),k(d,{key:a.id},{default:c(()=>[e(z,{post:a},null,8,["post"])]),_:2},1024))),128))]))]))]),_:1}),r.value>0?(t(),o("div",J,[e(F,{page:p.value,"onUpdate:page":w,"page-slot":g(m).state.collapsedRight?5:8,"page-count":r.value},null,8,["page","page-slot","page-count"])])):v("",!0)])}}});const Ft=V(O,[["__scopeId","data-v-a5302c9b"]]);export{Ft as default}; diff --git a/web/dist/assets/Contacts-c762cdd3.js b/web/dist/assets/Contacts-ba6816c8.js similarity index 76% rename from web/dist/assets/Contacts-c762cdd3.js rename to web/dist/assets/Contacts-ba6816c8.js index ba362b3d..8073b2db 100644 --- a/web/dist/assets/Contacts-c762cdd3.js +++ b/web/dist/assets/Contacts-ba6816c8.js @@ -1 +1 @@ -import{u as F,b as R}from"./vue-router-8af5a3a6.js";import{d as k,o as e,c as n,a as s,U as a,L as d,r as c,j as S,a0 as f,Z as V,N as h,F as y,a3 as q,P as x}from"./@vue-b8d06722.js";import{o as D,F as L,G as M,I as T,H as j}from"./naive-ui-374a973f.js";import{_ as b,N as E}from"./index-43cab287.js";import{_ as G}from"./post-skeleton-3fdfd3d1.js";import{_ as H}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{u as Z}from"./vuex-613b371d.js";import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./evtd-b614532e.js";import"./@css-render-4f82e6dd.js";import"./vooks-423a5f30.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./axios-4a70c6fc.js";import"./@vicons-7ee3dafd.js";/* empty css */const A={class:"avatar"},J={class:"base-info"},K={class:"username"},O={class:"uid"},Q=k({__name:"contact-item",props:{contact:{}},setup(C){const l=F(),u=t=>{l.push({name:"user",query:{username:t}})};return(t,o)=>{const _=D;return e(),n("div",{class:"contact-item",onClick:o[0]||(o[0]=r=>u(t.contact.username))},[s("div",A,[a(_,{size:"large",src:t.contact.avatar},null,8,["src"])]),s("div",J,[s("div",K,[s("strong",null,d(t.contact.nickname),1),s("span",null," @"+d(t.contact.username),1)]),s("div",O,"UID. "+d(t.contact.user_id),1)])])}}});const W=b(Q,[["__scopeId","data-v-08ee9b2e"]]),X={key:0,class:"skeleton-wrap"},Y={key:1},tt={key:0,class:"empty-wrap"},et={key:0,class:"pagination-wrap"},ot=k({__name:"Contacts",setup(C){const l=Z(),u=R(),t=c(!1),o=c([]),_=c(+u.query.p||1),r=c(20),m=c(0),w=i=>{_.value=i,v()};S(()=>{v()});const v=(i=!1)=>{o.value.length===0&&(t.value=!0),E({page:_.value,page_size:r.value}).then(p=>{t.value=!1,o.value=p.list,m.value=Math.ceil(p.pager.total_rows/r.value),i&&setTimeout(()=>{window.scrollTo(0,99999)},50)}).catch(p=>{t.value=!1})};return(i,p)=>{const $=H,I=G,N=T,z=W,B=j,P=L,U=M;return e(),n(y,null,[s("div",null,[a($,{title:"好友"}),a(P,{class:"main-content-wrap",bordered:""},{default:f(()=>[t.value?(e(),n("div",X,[a(I,{num:r.value},null,8,["num"])])):(e(),n("div",Y,[o.value.length===0?(e(),n("div",tt,[a(N,{size:"large",description:"暂无数据"})])):h("",!0),(e(!0),n(y,null,q(o.value,g=>(e(),x(B,{key:g.user_id},{default:f(()=>[a(z,{contact:g},null,8,["contact"])]),_:2},1024))),128))]))]),_:1})]),m.value>0?(e(),n("div",et,[a(U,{page:_.value,"onUpdate:page":w,"page-slot":V(l).state.collapsedRight?5:8,"page-count":m.value},null,8,["page","page-slot","page-count"])])):h("",!0)],64)}}});const Nt=b(ot,[["__scopeId","data-v-3b2bf978"]]);export{Nt as default}; +import{u as F,b as R}from"./vue-router-29e6667f.js";import{d as k,o as e,c as n,a as s,U as a,L as d,r as c,j as S,a0 as f,Z as V,N as h,F as y,a3 as q,P as x}from"./@vue-d002002f.js";import{o as D,F as L,G as M,I as T,H as j}from"./naive-ui-d02aa0d7.js";import{_ as b,N as E}from"./index-5fa3c6e0.js";import{_ as G}from"./post-skeleton-49f18127.js";import{_ as H}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{u as Z}from"./vuex-4d2f7b35.js";import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./evtd-b614532e.js";import"./@css-render-6b6cdab1.js";import"./vooks-77bdadbd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./axios-4a70c6fc.js";import"./@vicons-4022100b.js";/* empty css */const A={class:"avatar"},J={class:"base-info"},K={class:"username"},O={class:"uid"},Q=k({__name:"contact-item",props:{contact:{}},setup(C){const l=F(),u=t=>{l.push({name:"user",query:{username:t}})};return(t,o)=>{const _=D;return e(),n("div",{class:"contact-item",onClick:o[0]||(o[0]=r=>u(t.contact.username))},[s("div",A,[a(_,{size:"large",src:t.contact.avatar},null,8,["src"])]),s("div",J,[s("div",K,[s("strong",null,d(t.contact.nickname),1),s("span",null," @"+d(t.contact.username),1)]),s("div",O,"UID. "+d(t.contact.user_id),1)])])}}});const W=b(Q,[["__scopeId","data-v-08ee9b2e"]]),X={key:0,class:"skeleton-wrap"},Y={key:1},tt={key:0,class:"empty-wrap"},et={key:0,class:"pagination-wrap"},ot=k({__name:"Contacts",setup(C){const l=Z(),u=R(),t=c(!1),o=c([]),_=c(+u.query.p||1),r=c(20),m=c(0),w=i=>{_.value=i,v()};S(()=>{v()});const v=(i=!1)=>{o.value.length===0&&(t.value=!0),E({page:_.value,page_size:r.value}).then(p=>{t.value=!1,o.value=p.list,m.value=Math.ceil(p.pager.total_rows/r.value),i&&setTimeout(()=>{window.scrollTo(0,99999)},50)}).catch(p=>{t.value=!1})};return(i,p)=>{const $=H,I=G,N=T,z=W,B=j,P=L,U=M;return e(),n(y,null,[s("div",null,[a($,{title:"好友"}),a(P,{class:"main-content-wrap",bordered:""},{default:f(()=>[t.value?(e(),n("div",X,[a(I,{num:r.value},null,8,["num"])])):(e(),n("div",Y,[o.value.length===0?(e(),n("div",tt,[a(N,{size:"large",description:"暂无数据"})])):h("",!0),(e(!0),n(y,null,q(o.value,g=>(e(),x(B,{key:g.user_id},{default:f(()=>[a(z,{contact:g},null,8,["contact"])]),_:2},1024))),128))]))]),_:1})]),m.value>0?(e(),n("div",et,[a(U,{page:_.value,"onUpdate:page":w,"page-slot":V(l).state.collapsedRight?5:8,"page-count":m.value},null,8,["page","page-slot","page-count"])])):h("",!0)],64)}}});const Nt=b(ot,[["__scopeId","data-v-3b2bf978"]]);export{Nt as default}; diff --git a/web/dist/assets/Home-20128b51.js b/web/dist/assets/Home-20128b51.js new file mode 100644 index 00000000..3d81c18f --- /dev/null +++ b/web/dist/assets/Home-20128b51.js @@ -0,0 +1 @@ +import{_ as Te,a as qe}from"./post-item.vue_vue_type_style_index_0_lang-bc760886.js";import{_ as xe}from"./post-skeleton-49f18127.js";import{d as Y,r as i,j as ee,o as c,c as v,Z as $,a as x,U as a,a0 as s,P as S,N as T,a1 as Q,e as L,L as X,F as K,a3 as Z,n as Ie,w as Ue}from"./@vue-d002002f.js";import{u as te}from"./vuex-4d2f7b35.js";import{l as W}from"./lodash-94eb5868.js";import{g as ze,a as Re,c as Ae,b as Ee,_ as Pe}from"./index-5fa3c6e0.js";import{p as Le}from"./content-1ad34d0c.js";import{V as U,P as V}from"./IEnum-a180d93e.js";import{I as Se,V as Ne,A as Ve,d as Fe,E as Be}from"./@vicons-4022100b.js";import{o as Me,v as Oe,j as je,e as De,w as He,x as Ge,y as Ke,z as Ze,A as Je,B as Qe,C as Xe,a as We,D as Ye,E as et,F as tt,G as at,H as ot,I as nt}from"./naive-ui-d02aa0d7.js";import{_ as st}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{b as lt,u as it}from"./vue-router-29e6667f.js";import"./formatTime-000dbebb.js";import"./moment-b7869f98.js";import"./copy-to-clipboard-1dd3075d.js";import"./toggle-selection-93f4ad84.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./evtd-b614532e.js";import"./@css-render-6b6cdab1.js";import"./vooks-77bdadbd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./paopao-video-player-d47e9bf6.js";const rt=F=>{const q=new FileReader,r=_=>["application/zip","application/x-zip","application/octet-stream","application/x-zip-compressed"].includes(_),I=()=>{const _=new Uint8Array(q.result).subarray(0,4);let d="";for(let p=0;p<_.length;p++)d+=_[p].toString(16);switch(d){case"504b0304":case"504b0506":case"504b0708":return r("application/zip");case"504b030414":return r("application/x-zip-compressed");case"504b0508":return r("application/x-zip");case"504b5370":return r("application/octet-stream");default:return!1}};return new Promise((_,d)=>{q.onloadend=()=>{const p=F.type;_(p===""||p==="application/octet-stream"?I():r(p))},q.readAsArrayBuffer(F.slice(0,4))})},ut={key:0,class:"compose-wrap"},ct={class:"compose-line"},pt={class:"compose-user"},_t={class:"compose-line compose-options"},dt={class:"attachment"},mt={class:"submit-wrap"},vt={class:"attachment-list-wrap"},gt={key:0,class:"attachment-price-wrap"},ft=x("span",null," 附件价格¥",-1),yt={key:0,class:"eye-wrap"},ht={key:1,class:"link-wrap"},wt={key:1,class:"compose-wrap"},bt=x("div",{class:"login-wrap"},[x("span",{class:"login-banner"}," 登录后,精彩更多")],-1),kt={key:0,class:"login-only-wrap"},Ct={key:1,class:"login-wrap"},$t=Y({__name:"compose",emits:["post-success"],setup(F,{emit:q}){const r=te(),I=i([]),_=i(!1),d=i(!1),p=i(!1),b=i(!1),w=i(""),z=i([]),E=i(),N=i(0),f=i("public/image"),u=i([]),h=i([]),k=i([]),y=i([]),C=i(U.FRIEND),R=i(U.FRIEND),M=[{value:U.PUBLIC,label:"公开"},{value:U.PRIVATE,label:"私密"},{value:U.FRIEND,label:"好友可见"}],P=+"400",B=i("true".toLowerCase()==="true"),O=i("true".toLowerCase()==="true"),j=i("true".toLowerCase()==="true"),A=i("false".toLowerCase()==="true"),ae=i("true".toLowerCase()==="true"),oe="https://iibiubiu.com/v1/attachment",J=i(),ne=()=>{p.value=!p.value,p.value&&b.value&&(b.value=!1)},se=()=>{b.value=!b.value,b.value&&p.value&&(p.value=!1)},le=W.debounce(t=>{ze({k:t}).then(e=>{let n=[];e.suggest.map(o=>{n.push({label:o,value:o})}),I.value=n,_.value=!1}).catch(e=>{_.value=!1})},200),ie=W.debounce(t=>{Re({k:t}).then(e=>{let n=[];e.suggest.map(o=>{n.push({label:o,value:o})}),I.value=n,_.value=!1}).catch(e=>{_.value=!1})},200),re=(t,e)=>{_.value||(_.value=!0,e==="@"?le(t):ie(t))},ue=t=>{t.length>P?w.value=t.substring(0,P):w.value=t},D=t=>{f.value=t},ce=t=>{for(let l=0;l30&&(t[l].name=n.substring(0,18)+"..."+n.substring(n.length-9)+"."+o)}u.value=t},pe=async t=>{var e,n,o,l,g;return f.value==="public/image"&&!["image/png","image/jpg","image/jpeg","image/gif"].includes((e=t.file.file)==null?void 0:e.type)?(window.$message.warning("图片仅允许 png/jpg/gif 格式"),!1):f.value==="image"&&((n=t.file.file)==null?void 0:n.size)>10485760?(window.$message.warning("图片大小不能超过10MB"),!1):f.value==="public/video"&&!["video/mp4","video/quicktime"].includes((o=t.file.file)==null?void 0:o.type)?(window.$message.warning("视频仅允许 mp4/mov 格式"),!1):f.value==="public/video"&&((l=t.file.file)==null?void 0:l.size)>104857600?(window.$message.warning("视频大小不能超过100MB"),!1):f.value==="attachment"&&!await rt(t.file.file)?(window.$message.warning("附件仅允许 zip 格式"),!1):f.value==="attachment"&&((g=t.file.file)==null?void 0:g.size)>104857600?(window.$message.warning("附件大小不能超过100MB"),!1):!0},_e=({file:t,event:e})=>{var n;try{let o=JSON.parse((n=e.target)==null?void 0:n.response);o.code===0&&(f.value==="public/image"&&h.value.push({id:t.id,content:o.data.content}),f.value==="public/video"&&k.value.push({id:t.id,content:o.data.content}),f.value==="attachment"&&y.value.push({id:t.id,content:o.data.content}))}catch{window.$message.error("上传失败")}},de=({file:t,event:e})=>{var n;try{let o=JSON.parse((n=e.target)==null?void 0:n.response);if(o.code!==0){let l=o.msg||"上传失败";o.details&&o.details.length>0&&o.details.map(g=>{l+=":"+g}),window.$message.error(l)}}catch{window.$message.error("上传失败")}},me=({file:t})=>{let e=h.value.findIndex(n=>n.id===t.id);e>-1&&h.value.splice(e,1),e=k.value.findIndex(n=>n.id===t.id),e>-1&&k.value.splice(e,1),e=y.value.findIndex(n=>n.id===t.id),e>-1&&y.value.splice(e,1)},ve=()=>{if(w.value.trim().length===0){window.$message.warning("请输入内容哦");return}let{tags:t,users:e}=Le(w.value);const n=[];let o=100;n.push({content:w.value,type:V.TEXT,sort:o}),h.value.map(l=>{o++,n.push({content:l.content,type:V.IMAGEURL,sort:o})}),k.value.map(l=>{o++,n.push({content:l.content,type:V.VIDEOURL,sort:o})}),y.value.map(l=>{o++,n.push({content:l.content,type:V.ATTACHMENT,sort:o})}),z.value.length>0&&z.value.map(l=>{o++,n.push({content:l,type:V.LINKURL,sort:o})}),d.value=!0,Ae({contents:n,tags:Array.from(new Set(t)),users:Array.from(new Set(e)),attachment_price:+N.value*100,visibility:C.value}).then(l=>{var g;window.$message.success("发布成功"),d.value=!1,q("post-success",l),p.value=!1,b.value=!1,(g=E.value)==null||g.clear(),u.value=[],w.value="",z.value=[],h.value=[],k.value=[],y.value=[],C.value=R.value}).catch(l=>{d.value=!1})},H=t=>{r.commit("triggerAuth",!0),r.commit("triggerAuthKey",t)};return ee(()=>{"friend".toLowerCase()==="friend"?R.value=U.FRIEND:"friend".toLowerCase()==="public"?R.value=U.PUBLIC:R.value=U.PRIVATE,C.value=R.value,J.value="Bearer "+localStorage.getItem("PAOPAO_TOKEN")}),(t,e)=>{const n=Me,o=Oe,l=je,g=De,G=He,ge=Ge,fe=Ke,ye=Ze,he=Je,we=Qe,be=Xe,ke=We,Ce=Ye,$e=et;return c(),v("div",null,[$(r).state.userInfo.id>0?(c(),v("div",ut,[x("div",ct,[x("div",pt,[a(n,{round:"",size:30,src:$(r).state.userInfo.avatar},null,8,["src"])]),a(o,{type:"textarea",size:"large",autosize:"",bordered:!1,loading:_.value,value:w.value,prefix:["@","#"],options:I.value,onSearch:re,"onUpdate:value":ue,placeholder:"说说您的新鲜事..."},null,8,["loading","value","options"])]),a(we,{ref_key:"uploadRef",ref:E,abstract:"","list-type":"image",multiple:!0,max:9,action:oe,headers:{Authorization:J.value},data:{type:f.value},"file-list":u.value,onBeforeUpload:pe,onFinish:_e,onError:de,onRemove:me,"onUpdate:fileList":ce},{default:s(()=>[x("div",_t,[x("div",dt,[a(G,{abstract:""},{default:s(({handleClick:m})=>[a(g,{disabled:u.value.length>0&&f.value==="public/video"||u.value.length===9,onClick:()=>{D("public/image"),m()},quaternary:"",circle:"",type:"primary"},{icon:s(()=>[a(l,{size:"20",color:"var(--primary-color)"},{default:s(()=>[a($(Se))]),_:1})]),_:2},1032,["disabled","onClick"])]),_:1}),O.value?(c(),S(G,{key:0,abstract:""},{default:s(({handleClick:m})=>[a(g,{disabled:u.value.length>0&&f.value!=="public/video"||u.value.length===9,onClick:()=>{D("public/video"),m()},quaternary:"",circle:"",type:"primary"},{icon:s(()=>[a(l,{size:"20",color:"var(--primary-color)"},{default:s(()=>[a($(Ne))]),_:1})]),_:2},1032,["disabled","onClick"])]),_:1})):T("",!0),j.value?(c(),S(G,{key:1,abstract:""},{default:s(({handleClick:m})=>[a(g,{disabled:u.value.length>0&&f.value==="public/video"||u.value.length===9,onClick:()=>{D("attachment"),m()},quaternary:"",circle:"",type:"primary"},{icon:s(()=>[a(l,{size:"20",color:"var(--primary-color)"},{default:s(()=>[a($(Ve))]),_:1})]),_:2},1032,["disabled","onClick"])]),_:1})):T("",!0),a(g,{quaternary:"",circle:"",type:"primary",onClick:Q(ne,["stop"])},{icon:s(()=>[a(l,{size:"20",color:"var(--primary-color)"},{default:s(()=>[a($(Fe))]),_:1})]),_:1},8,["onClick"]),ae.value?(c(),S(g,{key:2,quaternary:"",circle:"",type:"primary",onClick:Q(se,["stop"])},{icon:s(()=>[a(l,{size:"20",color:"var(--primary-color)"},{default:s(()=>[a($(Be))]),_:1})]),_:1},8,["onClick"])):T("",!0)]),x("div",mt,[a(fe,{trigger:"hover",placement:"bottom"},{trigger:s(()=>[a(ge,{class:"text-statistic",type:"circle","show-indicator":!1,status:"success","stroke-width":10,percentage:w.value.length/$(P)*100},null,8,["percentage"])]),default:s(()=>[L(" "+X(w.value.length)+" / "+X($(P)),1)]),_:1}),a(g,{loading:d.value,onClick:ve,type:"primary",secondary:"",round:""},{default:s(()=>[L(" 发布 ")]),_:1},8,["loading"])])]),x("div",vt,[a(ye),y.value.length>0?(c(),v("div",gt,[A.value?(c(),S(he,{key:0,value:N.value,"onUpdate:value":e[0]||(e[0]=m=>N.value=m),min:0,max:1e5,placeholder:"请输入附件价格,0为免费附件"},{prefix:s(()=>[ft]),_:1},8,["value"])):T("",!0)])):T("",!0)])]),_:1},8,["headers","data","file-list"]),b.value?(c(),v("div",yt,[a(Ce,{value:C.value,"onUpdate:value":e[1]||(e[1]=m=>C.value=m),name:"radiogroup"},{default:s(()=>[a(ke,null,{default:s(()=>[(c(),v(K,null,Z(M,m=>a(be,{key:m.value,value:m.value,label:m.label},null,8,["value","label"])),64))]),_:1})]),_:1},8,["value"])])):T("",!0),p.value?(c(),v("div",ht,[a($e,{value:z.value,"onUpdate:value":e[2]||(e[2]=m=>z.value=m),placeholder:"请输入以http(s)://开头的链接",min:0,max:3},{"create-button-default":s(()=>[L(" 创建链接 ")]),_:1},8,["value"])])):T("",!0)])):(c(),v("div",wt,[bt,B.value?T("",!0):(c(),v("div",kt,[a(g,{strong:"",secondary:"",round:"",type:"primary",onClick:e[3]||(e[3]=m=>H("signin"))},{default:s(()=>[L(" 登录 ")]),_:1})])),B.value?(c(),v("div",Ct,[a(g,{strong:"",secondary:"",round:"",type:"primary",onClick:e[4]||(e[4]=m=>H("signin"))},{default:s(()=>[L(" 登录 ")]),_:1}),a(g,{strong:"",secondary:"",round:"",type:"info",onClick:e[5]||(e[5]=m=>H("signup"))},{default:s(()=>[L(" 注册 ")]),_:1})])):T("",!0)]))])}}});const Tt={key:0,class:"skeleton-wrap"},qt={key:1},xt={key:0,class:"empty-wrap"},It={key:1},Ut={key:2},zt={key:0,class:"pagination-wrap"},Rt=Y({__name:"Home",setup(F){const q=te(),r=lt(),I=it(),_=i(!1),d=i([]),p=i(+r.query.p||1),b=i(20),w=i(0),z=Ie(()=>{let u="泡泡广场";return r.query&&r.query.q&&(r.query.t&&r.query.t==="tag"?u="#"+decodeURIComponent(r.query.q):u="搜索: "+decodeURIComponent(r.query.q)),u}),E=()=>{_.value=!0,Ee({query:r.query.q?decodeURIComponent(r.query.q):null,type:r.query.t,page:p.value,page_size:b.value}).then(u=>{_.value=!1,d.value=u.list,w.value=Math.ceil(u.pager.total_rows/b.value),window.scrollTo(0,0)}).catch(u=>{_.value=!1})},N=u=>{if(p.value!=1){I.push({name:"post",query:{id:u.id}});return}let h=[],k=d.value.length;k==b.value&&k--;for(var y=0;y{I.push({name:"home",query:{...r.query,p:u}})};return ee(()=>{E()}),Ue(()=>({path:r.path,query:r.query,refresh:q.state.refresh}),(u,h)=>{if(u.refresh!==h.refresh){p.value=+r.query.p||1,setTimeout(()=>{E()},0);return}h.path!=="/post"&&u.path==="/"&&(p.value=+r.query.p||1,setTimeout(()=>{E()},0))}),(u,h)=>{const k=st,y=$t,C=ot,R=xe,M=nt,P=Te,B=qe,O=tt,j=at;return c(),v("div",null,[a(k,{title:z.value},null,8,["title"]),a(O,{class:"main-content-wrap",bordered:""},{default:s(()=>[a(C,null,{default:s(()=>[a(y,{onPostSuccess:N})]),_:1}),_.value?(c(),v("div",Tt,[a(R,{num:b.value},null,8,["num"])])):(c(),v("div",qt,[d.value.length===0?(c(),v("div",xt,[a(M,{size:"large",description:"暂无数据"})])):T("",!0),$(q).state.desktopModelShow?(c(),v("div",It,[(c(!0),v(K,null,Z(d.value,A=>(c(),S(C,{key:A.id},{default:s(()=>[a(P,{post:A},null,8,["post"])]),_:2},1024))),128))])):(c(),v("div",Ut,[(c(!0),v(K,null,Z(d.value,A=>(c(),S(C,{key:A.id},{default:s(()=>[a(B,{post:A},null,8,["post"])]),_:2},1024))),128))]))]))]),_:1}),w.value>0?(c(),v("div",zt,[a(j,{page:p.value,"onUpdate:page":f,"page-slot":$(q).state.collapsedRight?5:8,"page-count":w.value},null,8,["page","page-slot","page-count"])])):T("",!0)])}}});const ca=Pe(Rt,[["__scopeId","data-v-f42b0645"]]);export{ca as default}; diff --git a/web/dist/assets/Home-398b71c7.js b/web/dist/assets/Home-398b71c7.js deleted file mode 100644 index 2f01ed39..00000000 --- a/web/dist/assets/Home-398b71c7.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as Te,a as qe}from"./post-item.vue_vue_type_style_index_0_lang-f7f6062b.js";import{_ as xe}from"./post-skeleton-3fdfd3d1.js";import{d as Y,r as i,j as ee,o as c,c as v,Z as $,a as x,U as a,a0 as s,P as S,N as T,a1 as Q,e as L,L as X,F as K,a3 as Z,n as Ie,w as Ue}from"./@vue-b8d06722.js";import{u as te}from"./vuex-613b371d.js";import{l as W}from"./lodash-94eb5868.js";import{g as ze,a as Re,c as Ae,b as Ee,_ as Pe}from"./index-43cab287.js";import{p as Le}from"./content-bfe7958f.js";import{V as U,P as V}from"./IEnum-a180d93e.js";import{I as Se,V as Ne,A as Ve,d as Fe,E as Be}from"./@vicons-7ee3dafd.js";import{o as Me,v as Oe,j as je,e as De,w as He,x as Ge,y as Ke,z as Ze,A as Je,B as Qe,C as Xe,a as We,D as Ye,E as et,F as tt,G as at,H as ot,I as nt}from"./naive-ui-374a973f.js";import{_ as st}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{b as lt,u as it}from"./vue-router-8af5a3a6.js";import"./formatTime-000dbebb.js";import"./moment-b7869f98.js";import"./copy-to-clipboard-1dd3075d.js";import"./toggle-selection-93f4ad84.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./evtd-b614532e.js";import"./@css-render-4f82e6dd.js";import"./vooks-423a5f30.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./paopao-video-player-b4739fc7.js";const rt=F=>{const q=new FileReader,r=_=>["application/zip","application/x-zip","application/octet-stream","application/x-zip-compressed"].includes(_),I=()=>{const _=new Uint8Array(q.result).subarray(0,4);let d="";for(let p=0;p<_.length;p++)d+=_[p].toString(16);switch(d){case"504b0304":case"504b0506":case"504b0708":return r("application/zip");case"504b030414":return r("application/x-zip-compressed");case"504b0508":return r("application/x-zip");case"504b5370":return r("application/octet-stream");default:return!1}};return new Promise((_,d)=>{q.onloadend=()=>{const p=F.type;_(p===""||p==="application/octet-stream"?I():r(p))},q.readAsArrayBuffer(F.slice(0,4))})},ut={key:0,class:"compose-wrap"},ct={class:"compose-line"},pt={class:"compose-user"},_t={class:"compose-line compose-options"},dt={class:"attachment"},mt={class:"submit-wrap"},vt={class:"attachment-list-wrap"},gt={key:0,class:"attachment-price-wrap"},ft=x("span",null," 附件价格¥",-1),yt={key:0,class:"eye-wrap"},ht={key:1,class:"link-wrap"},wt={key:1,class:"compose-wrap"},bt=x("div",{class:"login-wrap"},[x("span",{class:"login-banner"}," 登录后,精彩更多")],-1),kt={key:0,class:"login-only-wrap"},Ct={key:1,class:"login-wrap"},$t=Y({__name:"compose",emits:["post-success"],setup(F,{emit:q}){const r=te(),I=i([]),_=i(!1),d=i(!1),p=i(!1),b=i(!1),w=i(""),z=i([]),E=i(),N=i(0),f=i("public/image"),u=i([]),h=i([]),k=i([]),y=i([]),C=i(U.FRIEND),R=i(U.FRIEND),M=[{value:U.PUBLIC,label:"公开"},{value:U.PRIVATE,label:"私密"},{value:U.FRIEND,label:"好友可见"}],P=+"300",B=i("true".toLowerCase()==="true"),O=i("true".toLowerCase()==="true"),j=i("true".toLowerCase()==="true"),A=i("false".toLowerCase()==="true"),ae=i("true".toLowerCase()==="true"),oe="/v1/attachment",J=i(),ne=()=>{p.value=!p.value,p.value&&b.value&&(b.value=!1)},se=()=>{b.value=!b.value,b.value&&p.value&&(p.value=!1)},le=W.debounce(t=>{ze({k:t}).then(e=>{let n=[];e.suggest.map(o=>{n.push({label:o,value:o})}),I.value=n,_.value=!1}).catch(e=>{_.value=!1})},200),ie=W.debounce(t=>{Re({k:t}).then(e=>{let n=[];e.suggest.map(o=>{n.push({label:o,value:o})}),I.value=n,_.value=!1}).catch(e=>{_.value=!1})},200),re=(t,e)=>{_.value||(_.value=!0,e==="@"?le(t):ie(t))},ue=t=>{t.length>P?w.value=t.substring(0,P):w.value=t},D=t=>{f.value=t},ce=t=>{for(let l=0;l30&&(t[l].name=n.substring(0,18)+"..."+n.substring(n.length-9)+"."+o)}u.value=t},pe=async t=>{var e,n,o,l,g;return f.value==="public/image"&&!["image/png","image/jpg","image/jpeg","image/gif"].includes((e=t.file.file)==null?void 0:e.type)?(window.$message.warning("图片仅允许 png/jpg/gif 格式"),!1):f.value==="image"&&((n=t.file.file)==null?void 0:n.size)>10485760?(window.$message.warning("图片大小不能超过10MB"),!1):f.value==="public/video"&&!["video/mp4","video/quicktime"].includes((o=t.file.file)==null?void 0:o.type)?(window.$message.warning("视频仅允许 mp4/mov 格式"),!1):f.value==="public/video"&&((l=t.file.file)==null?void 0:l.size)>104857600?(window.$message.warning("视频大小不能超过100MB"),!1):f.value==="attachment"&&!await rt(t.file.file)?(window.$message.warning("附件仅允许 zip 格式"),!1):f.value==="attachment"&&((g=t.file.file)==null?void 0:g.size)>104857600?(window.$message.warning("附件大小不能超过100MB"),!1):!0},_e=({file:t,event:e})=>{var n;try{let o=JSON.parse((n=e.target)==null?void 0:n.response);o.code===0&&(f.value==="public/image"&&h.value.push({id:t.id,content:o.data.content}),f.value==="public/video"&&k.value.push({id:t.id,content:o.data.content}),f.value==="attachment"&&y.value.push({id:t.id,content:o.data.content}))}catch{window.$message.error("上传失败")}},de=({file:t,event:e})=>{var n;try{let o=JSON.parse((n=e.target)==null?void 0:n.response);if(o.code!==0){let l=o.msg||"上传失败";o.details&&o.details.length>0&&o.details.map(g=>{l+=":"+g}),window.$message.error(l)}}catch{window.$message.error("上传失败")}},me=({file:t})=>{let e=h.value.findIndex(n=>n.id===t.id);e>-1&&h.value.splice(e,1),e=k.value.findIndex(n=>n.id===t.id),e>-1&&k.value.splice(e,1),e=y.value.findIndex(n=>n.id===t.id),e>-1&&y.value.splice(e,1)},ve=()=>{if(w.value.trim().length===0){window.$message.warning("请输入内容哦");return}let{tags:t,users:e}=Le(w.value);const n=[];let o=100;n.push({content:w.value,type:V.TEXT,sort:o}),h.value.map(l=>{o++,n.push({content:l.content,type:V.IMAGEURL,sort:o})}),k.value.map(l=>{o++,n.push({content:l.content,type:V.VIDEOURL,sort:o})}),y.value.map(l=>{o++,n.push({content:l.content,type:V.ATTACHMENT,sort:o})}),z.value.length>0&&z.value.map(l=>{o++,n.push({content:l,type:V.LINKURL,sort:o})}),d.value=!0,Ae({contents:n,tags:Array.from(new Set(t)),users:Array.from(new Set(e)),attachment_price:+N.value*100,visibility:C.value}).then(l=>{var g;window.$message.success("发布成功"),d.value=!1,q("post-success",l),p.value=!1,b.value=!1,(g=E.value)==null||g.clear(),u.value=[],w.value="",z.value=[],h.value=[],k.value=[],y.value=[],C.value=R.value}).catch(l=>{d.value=!1})},H=t=>{r.commit("triggerAuth",!0),r.commit("triggerAuthKey",t)};return ee(()=>{"friend".toLowerCase()==="friend"?R.value=U.FRIEND:"friend".toLowerCase()==="public"?R.value=U.PUBLIC:R.value=U.PRIVATE,C.value=R.value,J.value="Bearer "+localStorage.getItem("PAOPAO_TOKEN")}),(t,e)=>{const n=Me,o=Oe,l=je,g=De,G=He,ge=Ge,fe=Ke,ye=Ze,he=Je,we=Qe,be=Xe,ke=We,Ce=Ye,$e=et;return c(),v("div",null,[$(r).state.userInfo.id>0?(c(),v("div",ut,[x("div",ct,[x("div",pt,[a(n,{round:"",size:30,src:$(r).state.userInfo.avatar},null,8,["src"])]),a(o,{type:"textarea",size:"large",autosize:"",bordered:!1,loading:_.value,value:w.value,prefix:["@","#"],options:I.value,onSearch:re,"onUpdate:value":ue,placeholder:"说说您的新鲜事..."},null,8,["loading","value","options"])]),a(we,{ref_key:"uploadRef",ref:E,abstract:"","list-type":"image",multiple:!0,max:9,action:oe,headers:{Authorization:J.value},data:{type:f.value},"file-list":u.value,onBeforeUpload:pe,onFinish:_e,onError:de,onRemove:me,"onUpdate:fileList":ce},{default:s(()=>[x("div",_t,[x("div",dt,[a(G,{abstract:""},{default:s(({handleClick:m})=>[a(g,{disabled:u.value.length>0&&f.value==="public/video"||u.value.length===9,onClick:()=>{D("public/image"),m()},quaternary:"",circle:"",type:"primary"},{icon:s(()=>[a(l,{size:"20",color:"var(--primary-color)"},{default:s(()=>[a($(Se))]),_:1})]),_:2},1032,["disabled","onClick"])]),_:1}),O.value?(c(),S(G,{key:0,abstract:""},{default:s(({handleClick:m})=>[a(g,{disabled:u.value.length>0&&f.value!=="public/video"||u.value.length===9,onClick:()=>{D("public/video"),m()},quaternary:"",circle:"",type:"primary"},{icon:s(()=>[a(l,{size:"20",color:"var(--primary-color)"},{default:s(()=>[a($(Ne))]),_:1})]),_:2},1032,["disabled","onClick"])]),_:1})):T("",!0),j.value?(c(),S(G,{key:1,abstract:""},{default:s(({handleClick:m})=>[a(g,{disabled:u.value.length>0&&f.value==="public/video"||u.value.length===9,onClick:()=>{D("attachment"),m()},quaternary:"",circle:"",type:"primary"},{icon:s(()=>[a(l,{size:"20",color:"var(--primary-color)"},{default:s(()=>[a($(Ve))]),_:1})]),_:2},1032,["disabled","onClick"])]),_:1})):T("",!0),a(g,{quaternary:"",circle:"",type:"primary",onClick:Q(ne,["stop"])},{icon:s(()=>[a(l,{size:"20",color:"var(--primary-color)"},{default:s(()=>[a($(Fe))]),_:1})]),_:1},8,["onClick"]),ae.value?(c(),S(g,{key:2,quaternary:"",circle:"",type:"primary",onClick:Q(se,["stop"])},{icon:s(()=>[a(l,{size:"20",color:"var(--primary-color)"},{default:s(()=>[a($(Be))]),_:1})]),_:1},8,["onClick"])):T("",!0)]),x("div",mt,[a(fe,{trigger:"hover",placement:"bottom"},{trigger:s(()=>[a(ge,{class:"text-statistic",type:"circle","show-indicator":!1,status:"success","stroke-width":10,percentage:w.value.length/$(P)*100},null,8,["percentage"])]),default:s(()=>[L(" "+X(w.value.length)+" / "+X($(P)),1)]),_:1}),a(g,{loading:d.value,onClick:ve,type:"primary",secondary:"",round:""},{default:s(()=>[L(" 发布 ")]),_:1},8,["loading"])])]),x("div",vt,[a(ye),y.value.length>0?(c(),v("div",gt,[A.value?(c(),S(he,{key:0,value:N.value,"onUpdate:value":e[0]||(e[0]=m=>N.value=m),min:0,max:1e5,placeholder:"请输入附件价格,0为免费附件"},{prefix:s(()=>[ft]),_:1},8,["value"])):T("",!0)])):T("",!0)])]),_:1},8,["headers","data","file-list"]),b.value?(c(),v("div",yt,[a(Ce,{value:C.value,"onUpdate:value":e[1]||(e[1]=m=>C.value=m),name:"radiogroup"},{default:s(()=>[a(ke,null,{default:s(()=>[(c(),v(K,null,Z(M,m=>a(be,{key:m.value,value:m.value,label:m.label},null,8,["value","label"])),64))]),_:1})]),_:1},8,["value"])])):T("",!0),p.value?(c(),v("div",ht,[a($e,{value:z.value,"onUpdate:value":e[2]||(e[2]=m=>z.value=m),placeholder:"请输入以http(s)://开头的链接",min:0,max:3},{"create-button-default":s(()=>[L(" 创建链接 ")]),_:1},8,["value"])])):T("",!0)])):(c(),v("div",wt,[bt,B.value?T("",!0):(c(),v("div",kt,[a(g,{strong:"",secondary:"",round:"",type:"primary",onClick:e[3]||(e[3]=m=>H("signin"))},{default:s(()=>[L(" 登录 ")]),_:1})])),B.value?(c(),v("div",Ct,[a(g,{strong:"",secondary:"",round:"",type:"primary",onClick:e[4]||(e[4]=m=>H("signin"))},{default:s(()=>[L(" 登录 ")]),_:1}),a(g,{strong:"",secondary:"",round:"",type:"info",onClick:e[5]||(e[5]=m=>H("signup"))},{default:s(()=>[L(" 注册 ")]),_:1})])):T("",!0)]))])}}});const Tt={key:0,class:"skeleton-wrap"},qt={key:1},xt={key:0,class:"empty-wrap"},It={key:1},Ut={key:2},zt={key:0,class:"pagination-wrap"},Rt=Y({__name:"Home",setup(F){const q=te(),r=lt(),I=it(),_=i(!1),d=i([]),p=i(+r.query.p||1),b=i(20),w=i(0),z=Ie(()=>{let u="泡泡广场";return r.query&&r.query.q&&(r.query.t&&r.query.t==="tag"?u="#"+decodeURIComponent(r.query.q):u="搜索: "+decodeURIComponent(r.query.q)),u}),E=()=>{_.value=!0,Ee({query:r.query.q?decodeURIComponent(r.query.q):null,type:r.query.t,page:p.value,page_size:b.value}).then(u=>{_.value=!1,d.value=u.list,w.value=Math.ceil(u.pager.total_rows/b.value),window.scrollTo(0,0)}).catch(u=>{_.value=!1})},N=u=>{if(p.value!=1){I.push({name:"post",query:{id:u.id}});return}let h=[],k=d.value.length;k==b.value&&k--;for(var y=0;y{I.push({name:"home",query:{...r.query,p:u}})};return ee(()=>{E()}),Ue(()=>({path:r.path,query:r.query,refresh:q.state.refresh}),(u,h)=>{if(u.refresh!==h.refresh){p.value=+r.query.p||1,setTimeout(()=>{E()},0);return}h.path!=="/post"&&u.path==="/"&&(p.value=+r.query.p||1,setTimeout(()=>{E()},0))}),(u,h)=>{const k=st,y=$t,C=ot,R=xe,M=nt,P=Te,B=qe,O=tt,j=at;return c(),v("div",null,[a(k,{title:z.value},null,8,["title"]),a(O,{class:"main-content-wrap",bordered:""},{default:s(()=>[a(C,null,{default:s(()=>[a(y,{onPostSuccess:N})]),_:1}),_.value?(c(),v("div",Tt,[a(R,{num:b.value},null,8,["num"])])):(c(),v("div",qt,[d.value.length===0?(c(),v("div",xt,[a(M,{size:"large",description:"暂无数据"})])):T("",!0),$(q).state.desktopModelShow?(c(),v("div",It,[(c(!0),v(K,null,Z(d.value,A=>(c(),S(C,{key:A.id},{default:s(()=>[a(P,{post:A},null,8,["post"])]),_:2},1024))),128))])):(c(),v("div",Ut,[(c(!0),v(K,null,Z(d.value,A=>(c(),S(C,{key:A.id},{default:s(()=>[a(B,{post:A},null,8,["post"])]),_:2},1024))),128))]))]))]),_:1}),w.value>0?(c(),v("div",zt,[a(j,{page:p.value,"onUpdate:page":f,"page-slot":$(q).state.collapsedRight?5:8,"page-count":w.value},null,8,["page","page-slot","page-count"])])):T("",!0)])}}});const ca=Pe(Rt,[["__scopeId","data-v-f42b0645"]]);export{ca as default}; diff --git a/web/dist/assets/Messages-4036bf90.js b/web/dist/assets/Messages-4036bf90.js deleted file mode 100644 index 136690b1..00000000 --- a/web/dist/assets/Messages-4036bf90.js +++ /dev/null @@ -1 +0,0 @@ -import{d as b,a2 as A,o as t,c as a,U as n,a0 as o,a as y,a1 as w,e as p,L as m,P as q,N as r,Z as c,K as D,a3 as z,F as R,r as f,j as L}from"./@vue-b8d06722.js";import{u as P,b as U}from"./vue-router-8af5a3a6.js";import{G,H,I as T,_ as F,J as E}from"./index-43cab287.js";import{a as J}from"./formatTime-000dbebb.js";import{q as K,r as Z,s as S,t as Q}from"./@vicons-7ee3dafd.js";import{o as W,l as X,j as Y,S as x,L as ee,U as se,F as ne,G as te,I as ae,H as oe}from"./naive-ui-374a973f.js";import{_ as re}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{u as ie}from"./vuex-613b371d.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./evtd-b614532e.js";import"./@css-render-4f82e6dd.js";import"./vooks-423a5f30.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./moment-b7869f98.js";const _e={class:"sender-wrap"},le={key:0,class:"nickname"},pe={class:"username"},ue={key:1,class:"nickname"},ce={class:"timestamp"},de={class:"timestamp-txt"},me={key:0,class:"brief-content"},ge={key:1,class:"whisper-content-wrap"},ve={key:2,class:"requesting-friend-wrap"},fe={key:2,class:"status-info"},ye={key:3,class:"status-info"},ke="https://assets.paopao.info/public/avatar/default/admin.png",he=b({__name:"message-item",props:{message:{}},setup(I){const g=P(),k=e=>{_(e),(e.type===1||e.type===2||e.type===3)&&(e.post&&e.post.id>0?g.push({name:"post",query:{id:e.post_id}}):window.$message.error("该动态已被删除"))},i=e=>{_(e),G({user_id:e.sender_user_id}).then(s=>{e.reply_id=2,window.$message.success("已同意添加好友")}).catch(s=>{console.log(s)})},u=e=>{_(e),H({user_id:e.sender_user_id}).then(s=>{e.reply_id=3,window.$message.success("已拒绝添加好友")}).catch(s=>{console.log(s)})},_=e=>{e.is_read===0&&T({id:e.id}).then(s=>{e.is_read=1}).catch(s=>{console.log(s)})};return(e,s)=>{const h=W,$=A("router-link"),l=X,d=Y,C=x,M=ee;return t(),a("div",{class:D(["message-item",{unread:e.message.is_read===0}]),onClick:s[4]||(s[4]=v=>_(e.message))},[n(M,{"content-indented":""},{avatar:o(()=>[n(h,{round:"",size:30,src:e.message.sender_user.id>0?e.message.sender_user.avatar:ke},null,8,["src"])]),header:o(()=>[y("div",_e,[e.message.sender_user.id>0?(t(),a("span",le,[n($,{onClick:s[0]||(s[0]=w(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:e.message.sender_user.username}}},{default:o(()=>[p(m(e.message.sender_user.nickname),1)]),_:1},8,["to"]),y("span",pe," @"+m(e.message.sender_user.username),1)])):(t(),a("span",ue," 系统 "))])]),"header-extra":o(()=>[y("span",ce,[e.message.is_read===0?(t(),q(l,{key:0,dot:"",processing:""})):r("",!0),y("span",de,m(c(J)(e.message.created_on)),1)])]),description:o(()=>[n(C,{"show-icon":!1,class:"brief-wrap",type:e.message.is_read>0?"default":"success"},{default:o(()=>[e.message.type!=4?(t(),a("div",me,[p(m(e.message.brief)+" ",1),e.message.type===1||e.message.type===2||e.message.type===3?(t(),a("span",{key:0,onClick:s[1]||(s[1]=w(v=>k(e.message),["stop"])),class:"hash-link view-link"},[n(d,null,{default:o(()=>[n(c(K))]),_:1}),p(" 查看详情 ")])):r("",!0)])):r("",!0),e.message.type===4?(t(),a("div",ge,m(e.message.content),1)):r("",!0),e.message.type===5?(t(),a("div",ve,[p(m(e.message.content)+" ",1),e.message.reply_id===1?(t(),a("span",{key:0,onClick:s[2]||(s[2]=w(v=>i(e.message),["stop"])),class:"hash-link view-link"},[n(d,null,{default:o(()=>[n(c(Z))]),_:1}),p(" 同意 ")])):r("",!0),e.message.reply_id===1?(t(),a("span",{key:1,onClick:s[3]||(s[3]=w(v=>u(e.message),["stop"])),class:"hash-link view-link"},[n(d,null,{default:o(()=>[n(c(S))]),_:1}),p(" 拒绝 ")])):r("",!0),e.message.reply_id===2?(t(),a("span",fe,[n(d,null,{default:o(()=>[n(c(Q))]),_:1}),p(" 已同意 ")])):r("",!0),e.message.reply_id===3?(t(),a("span",ye,[n(d,null,{default:o(()=>[n(c(S))]),_:1}),p(" 已拒绝 ")])):r("",!0)])):r("",!0)]),_:1},8,["type"])]),_:1})],2)}}});const we=F(he,[["__scopeId","data-v-4a0e27fa"]]),$e={class:"content"},Ce=b({__name:"message-skeleton",props:{num:{default:1}},setup(I){return(g,k)=>{const i=se;return t(!0),a(R,null,z(new Array(g.num),u=>(t(),a("div",{class:"skeleton-item",key:u},[y("div",$e,[n(i,{text:"",repeat:2}),n(i,{text:"",style:{width:"60%"}})])]))),128)}}});const Me=F(Ce,[["__scopeId","data-v-01d2e871"]]),be={key:0,class:"skeleton-wrap"},Fe={key:1},Ie={key:0,class:"empty-wrap"},Ne={key:0,class:"pagination-wrap"},Se=b({__name:"Messages",setup(I){const g=U(),k=ie(),i=f(!1),u=f(+g.query.p||1),_=f(10),e=f(0),s=f([]),h=()=>{i.value=!0,E({page:u.value,page_size:_.value}).then(l=>{i.value=!1,s.value=l.list,e.value=Math.ceil(l.pager.total_rows/_.value)}).catch(l=>{i.value=!1})},$=l=>{u.value=l,h()};return L(()=>{h()}),(l,d)=>{const C=re,M=Me,v=ae,j=we,B=oe,O=ne,V=te;return t(),a("div",null,[n(C,{title:"消息"}),n(O,{class:"main-content-wrap messages-wrap",bordered:""},{default:o(()=>[i.value?(t(),a("div",be,[n(M,{num:_.value},null,8,["num"])])):(t(),a("div",Fe,[s.value.length===0?(t(),a("div",Ie,[n(v,{size:"large",description:"暂无数据"})])):r("",!0),(t(!0),a(R,null,z(s.value,N=>(t(),q(B,{key:N.id},{default:o(()=>[n(j,{message:N},null,8,["message"])]),_:2},1024))),128))]))]),_:1}),e.value>0?(t(),a("div",Ne,[n(V,{page:u.value,"onUpdate:page":$,"page-slot":c(k).state.collapsedRight?5:8,"page-count":e.value},null,8,["page","page-slot","page-count"])])):r("",!0)])}}});const es=F(Se,[["__scopeId","data-v-4e7b1342"]]);export{es as default}; diff --git a/web/dist/assets/Messages-8bfe7f3b.js b/web/dist/assets/Messages-8bfe7f3b.js new file mode 100644 index 00000000..4949fdfe --- /dev/null +++ b/web/dist/assets/Messages-8bfe7f3b.js @@ -0,0 +1 @@ +import{d as b,a2 as A,o as t,c as a,U as n,a0 as o,a as y,a1 as w,e as p,L as m,P as q,N as r,Z as c,K as D,a3 as z,F as R,r as f,j as P}from"./@vue-d002002f.js";import{u as U,b as G}from"./vue-router-29e6667f.js";import{G as H,H as L,I as T,_ as F,J as E}from"./index-5fa3c6e0.js";import{a as J}from"./formatTime-000dbebb.js";import{q as K,r as Z,s as S,t as Q}from"./@vicons-4022100b.js";import{o as W,l as X,j as Y,S as x,M as ee,U as se,F as ne,G as te,I as ae,H as oe}from"./naive-ui-d02aa0d7.js";import{_ as re}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{u as ie}from"./vuex-4d2f7b35.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./evtd-b614532e.js";import"./@css-render-6b6cdab1.js";import"./vooks-77bdadbd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./moment-b7869f98.js";const _e={class:"sender-wrap"},le={key:0,class:"nickname"},pe={class:"username"},ue={key:1,class:"nickname"},ce={class:"timestamp"},de={class:"timestamp-txt"},me={key:0,class:"brief-content"},ge={key:1,class:"whisper-content-wrap"},ve={key:2,class:"requesting-friend-wrap"},fe={key:2,class:"status-info"},ye={key:3,class:"status-info"},ke="https://assets.paopao.info/public/avatar/default/admin.png",he=b({__name:"message-item",props:{message:{}},setup(I){const g=U(),k=e=>{_(e),(e.type===1||e.type===2||e.type===3)&&(e.post&&e.post.id>0?g.push({name:"post",query:{id:e.post_id}}):window.$message.error("该动态已被删除"))},i=e=>{_(e),H({user_id:e.sender_user_id}).then(s=>{e.reply_id=2,window.$message.success("已同意添加好友")}).catch(s=>{console.log(s)})},u=e=>{_(e),L({user_id:e.sender_user_id}).then(s=>{e.reply_id=3,window.$message.success("已拒绝添加好友")}).catch(s=>{console.log(s)})},_=e=>{e.is_read===0&&T({id:e.id}).then(s=>{e.is_read=1}).catch(s=>{console.log(s)})};return(e,s)=>{const h=W,$=A("router-link"),l=X,d=Y,C=x,M=ee;return t(),a("div",{class:D(["message-item",{unread:e.message.is_read===0}]),onClick:s[4]||(s[4]=v=>_(e.message))},[n(M,{"content-indented":""},{avatar:o(()=>[n(h,{round:"",size:30,src:e.message.sender_user.id>0?e.message.sender_user.avatar:ke},null,8,["src"])]),header:o(()=>[y("div",_e,[e.message.sender_user.id>0?(t(),a("span",le,[n($,{onClick:s[0]||(s[0]=w(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:e.message.sender_user.username}}},{default:o(()=>[p(m(e.message.sender_user.nickname),1)]),_:1},8,["to"]),y("span",pe," @"+m(e.message.sender_user.username),1)])):(t(),a("span",ue," 系统 "))])]),"header-extra":o(()=>[y("span",ce,[e.message.is_read===0?(t(),q(l,{key:0,dot:"",processing:""})):r("",!0),y("span",de,m(c(J)(e.message.created_on)),1)])]),description:o(()=>[n(C,{"show-icon":!1,class:"brief-wrap",type:e.message.is_read>0?"default":"success"},{default:o(()=>[e.message.type!=4?(t(),a("div",me,[p(m(e.message.brief)+" ",1),e.message.type===1||e.message.type===2||e.message.type===3?(t(),a("span",{key:0,onClick:s[1]||(s[1]=w(v=>k(e.message),["stop"])),class:"hash-link view-link"},[n(d,null,{default:o(()=>[n(c(K))]),_:1}),p(" 查看详情 ")])):r("",!0)])):r("",!0),e.message.type===4?(t(),a("div",ge,m(e.message.content),1)):r("",!0),e.message.type===5?(t(),a("div",ve,[p(m(e.message.content)+" ",1),e.message.reply_id===1?(t(),a("span",{key:0,onClick:s[2]||(s[2]=w(v=>i(e.message),["stop"])),class:"hash-link view-link"},[n(d,null,{default:o(()=>[n(c(Z))]),_:1}),p(" 同意 ")])):r("",!0),e.message.reply_id===1?(t(),a("span",{key:1,onClick:s[3]||(s[3]=w(v=>u(e.message),["stop"])),class:"hash-link view-link"},[n(d,null,{default:o(()=>[n(c(S))]),_:1}),p(" 拒绝 ")])):r("",!0),e.message.reply_id===2?(t(),a("span",fe,[n(d,null,{default:o(()=>[n(c(Q))]),_:1}),p(" 已同意 ")])):r("",!0),e.message.reply_id===3?(t(),a("span",ye,[n(d,null,{default:o(()=>[n(c(S))]),_:1}),p(" 已拒绝 ")])):r("",!0)])):r("",!0)]),_:1},8,["type"])]),_:1})],2)}}});const we=F(he,[["__scopeId","data-v-4a0e27fa"]]),$e={class:"content"},Ce=b({__name:"message-skeleton",props:{num:{default:1}},setup(I){return(g,k)=>{const i=se;return t(!0),a(R,null,z(new Array(g.num),u=>(t(),a("div",{class:"skeleton-item",key:u},[y("div",$e,[n(i,{text:"",repeat:2}),n(i,{text:"",style:{width:"60%"}})])]))),128)}}});const Me=F(Ce,[["__scopeId","data-v-01d2e871"]]),be={key:0,class:"skeleton-wrap"},Fe={key:1},Ie={key:0,class:"empty-wrap"},Ne={key:0,class:"pagination-wrap"},Se=b({__name:"Messages",setup(I){const g=G(),k=ie(),i=f(!1),u=f(+g.query.p||1),_=f(10),e=f(0),s=f([]),h=()=>{i.value=!0,E({page:u.value,page_size:_.value}).then(l=>{i.value=!1,s.value=l.list,e.value=Math.ceil(l.pager.total_rows/_.value)}).catch(l=>{i.value=!1})},$=l=>{u.value=l,h()};return P(()=>{h()}),(l,d)=>{const C=re,M=Me,v=ae,j=we,B=oe,O=ne,V=te;return t(),a("div",null,[n(C,{title:"消息"}),n(O,{class:"main-content-wrap messages-wrap",bordered:""},{default:o(()=>[i.value?(t(),a("div",be,[n(M,{num:_.value},null,8,["num"])])):(t(),a("div",Fe,[s.value.length===0?(t(),a("div",Ie,[n(v,{size:"large",description:"暂无数据"})])):r("",!0),(t(!0),a(R,null,z(s.value,N=>(t(),q(B,{key:N.id},{default:o(()=>[n(j,{message:N},null,8,["message"])]),_:2},1024))),128))]))]),_:1}),e.value>0?(t(),a("div",Ne,[n(V,{page:u.value,"onUpdate:page":$,"page-slot":c(k).state.collapsedRight?5:8,"page-count":e.value},null,8,["page","page-slot","page-count"])])):r("",!0)])}}});const es=F(Se,[["__scopeId","data-v-4e7b1342"]]);export{es as default}; diff --git a/web/dist/assets/Post-00695942.css b/web/dist/assets/Post-00695942.css new file mode 100644 index 00000000..45e52a75 --- /dev/null +++ b/web/dist/assets/Post-00695942.css @@ -0,0 +1 @@ +.reply-item[data-v-0fa8b923]{display:flex;flex-direction:column;font-size:12px;padding:8px;border-bottom:1px solid #f3f3f3}.reply-item .header-wrap[data-v-0fa8b923]{display:flex;align-items:center;justify-content:space-between}.reply-item .header-wrap .username[data-v-0fa8b923]{max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-item .header-wrap .username .reply-name[data-v-0fa8b923]{margin:0 3px;opacity:.75}.reply-item .header-wrap .timestamp[data-v-0fa8b923]{opacity:.75;text-align:right;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-item .base-wrap[data-v-0fa8b923]{display:block}.reply-item .base-wrap .content[data-v-0fa8b923]{width:100%;margin-top:4px;font-size:12px;text-align:justify;line-height:2}.reply-item .base-wrap .reply-switch[data-v-0fa8b923]{display:flex;align-items:center;justify-content:space-between;font-size:12px}.reply-item .base-wrap .reply-switch .actions[data-v-0fa8b923]{display:flex;align-items:center;text-align:right;font-size:12px;margin:10px 0}.reply-item .base-wrap .reply-switch .time-item[data-v-0fa8b923]{font-size:12px;opacity:.75;margin-right:18px}.reply-item .base-wrap .reply-switch .action-item[data-v-0fa8b923]{display:flex;align-items:center;margin-left:18px;opacity:.65}.reply-item .base-wrap .reply-switch .action-item .upvote-count[data-v-0fa8b923]{margin-left:4px;font-size:12px}.reply-item .base-wrap .reply-switch .action-item.hover[data-v-0fa8b923]{cursor:pointer}.reply-item .base-wrap .reply-switch .opacity-item[data-v-0fa8b923]{opacity:.75}.reply-item .base-wrap .reply-switch .reply-btn[data-v-0fa8b923]{margin-left:18px}.reply-item .base-wrap .reply-switch .show[data-v-0fa8b923]{color:#18a058;cursor:pointer}.reply-item .base-wrap .reply-switch .hide[data-v-0fa8b923]{opacity:.75;cursor:pointer}.dark .reply-item[data-v-0fa8b923]{border-bottom:1px solid #262628;background-color:#101014bf}.dark .reply-item .base-wrap .reply-switch .show[data-v-0fa8b923]{color:#63e2b7}.reply-compose-wrap .reply-switch[data-v-f9af7a93]{display:flex;align-items:center;justify-content:space-between;text-align:right;font-size:12px}.reply-compose-wrap .reply-switch .actions[data-v-f9af7a93]{display:flex;align-items:center;text-align:right;font-size:12px;margin:10px 0}.reply-compose-wrap .reply-switch .time-item[data-v-f9af7a93]{font-size:12px;opacity:.65;margin-right:18px}.reply-compose-wrap .reply-switch .action-item[data-v-f9af7a93]{display:flex;align-items:center;margin-left:18px;opacity:.65}.reply-compose-wrap .reply-switch .action-item .upvote-count[data-v-f9af7a93]{margin-left:4px;font-size:12px}.reply-compose-wrap .reply-switch .action-item.hover[data-v-f9af7a93]{cursor:pointer}.reply-compose-wrap .reply-switch .reply-btn[data-v-f9af7a93]{margin-left:18px}.reply-compose-wrap .reply-switch .show[data-v-f9af7a93]{color:#18a058;cursor:pointer;opacity:.75}.reply-compose-wrap .reply-switch .hide[data-v-f9af7a93]{opacity:.75;cursor:pointer}.dark .reply-compose-wrap[data-v-f9af7a93]{background-color:#101014bf}.dark .reply-compose-wrap .reply-switch .show[data-v-f9af7a93]{color:#63e2b7}.comment-item[data-v-e5cb084f]{width:100%;padding:16px;box-sizing:border-box}.comment-item .nickname-wrap[data-v-e5cb084f]{font-size:14px}.comment-item .username-wrap[data-v-e5cb084f]{font-size:14px;opacity:.75}.comment-item .opt-wrap[data-v-e5cb084f]{display:flex;align-items:center}.comment-item .opt-wrap .timestamp[data-v-e5cb084f]{opacity:.75;font-size:12px}.comment-item .opt-wrap .del-btn[data-v-e5cb084f]{margin-left:4px}.comment-item .comment-text[data-v-e5cb084f]{display:block;text-align:justify;overflow:hidden;white-space:pre-wrap;word-break:break-all}.comment-item .opt-item[data-v-e5cb084f]{display:flex;align-items:center;opacity:.7}.comment-item .opt-item .opt-item-icon[data-v-e5cb084f]{margin-right:10px}.reply-wrap[data-v-e5cb084f]{margin-top:10px;border-radius:5px;background:#fafafc}.reply-wrap .reply-item[data-v-e5cb084f]:last-child{border-bottom:none}.dark .reply-wrap[data-v-e5cb084f]{background:#18181c}.dark .comment-item[data-v-e5cb084f]{background-color:#101014bf}.compose-wrap[data-v-634e6bfd]{width:100%;padding:16px;box-sizing:border-box}.compose-wrap .compose-line[data-v-634e6bfd]{display:flex;flex-direction:row}.compose-wrap .compose-line .compose-user[data-v-634e6bfd]{width:42px;height:42px;display:flex;align-items:center}.compose-wrap .compose-line.compose-options[data-v-634e6bfd]{margin-top:6px;padding-left:42px;display:flex;justify-content:space-between}.compose-wrap .compose-line.compose-options .submit-wrap[data-v-634e6bfd]{display:flex;align-items:center}.compose-wrap .compose-line.compose-options .submit-wrap .cancel-btn[data-v-634e6bfd]{margin-right:8px}.compose-wrap .login-only-wrap[data-v-634e6bfd]{display:flex;justify-content:center;width:100%}.compose-wrap .login-only-wrap button[data-v-634e6bfd]{margin:0 4px;width:50%}.compose-wrap .login-wrap[data-v-634e6bfd]{display:flex;justify-content:center;width:100%}.compose-wrap .login-wrap .login-banner[data-v-634e6bfd]{margin-bottom:12px;opacity:.8}.compose-wrap .login-wrap button[data-v-634e6bfd]{margin:0 4px}.attachment[data-v-634e6bfd]{display:flex;align-items:center}.attachment .text-statistic[data-v-634e6bfd]{margin-left:8px;width:18px;height:18px;transform:rotate(180deg)}.attachment-list-wrap[data-v-634e6bfd]{margin-top:12px;margin-left:42px}.attachment-list-wrap .n-upload-file-info__thumbnail[data-v-634e6bfd]{overflow:hidden}.dark .compose-mention[data-v-634e6bfd],.dark .compose-wrap[data-v-634e6bfd]{background-color:#101014bf}.detail-item{width:100%;padding:16px;box-sizing:border-box;background:#f7f9f9}.detail-item .nickname-wrap{font-size:14px}.detail-item .username-wrap{font-size:14px;opacity:.75}.detail-item .top-tag{transform:scale(.75)}.detail-item .options{opacity:.75}.detail-item .post-text{font-size:16px;text-align:justify;overflow:hidden;white-space:pre-wrap;word-break:break-all}.detail-item .opts-wrap{margin-top:20px}.detail-item .opts-wrap .opt-item{display:flex;align-items:center;opacity:.7}.detail-item .opts-wrap .opt-item .opt-item-icon{margin-right:10px}.detail-item .opts-wrap .opt-item.hover{cursor:pointer}.detail-item .n-thing .n-thing-avatar-header-wrapper{align-items:center}.detail-item .timestamp{opacity:.75;font-size:12px;margin-top:10px}.dark .detail-item{background:#18181c}.detail-wrap[data-v-0d01659f]{min-height:100px}.comment-opts-wrap[data-v-0d01659f]{padding-top:6px;padding-left:16px;padding-right:16px;opacity:.75}.comment-opts-wrap .comment-title-item[data-v-0d01659f]{padding-top:4px;font-size:16px;text-align:center}.main-content-wrap .load-more[data-v-0d01659f]{margin-bottom:8px}.main-content-wrap .load-more .load-more-spinner[data-v-0d01659f]{font-size:14px;opacity:.65}.dark .main-content-wrap[data-v-0d01659f],.dark .skeleton-wrap[data-v-0d01659f]{background-color:#101014bf} diff --git a/web/dist/assets/Post-1ec9984a.js b/web/dist/assets/Post-1ec9984a.js new file mode 100644 index 00000000..caa42aa1 --- /dev/null +++ b/web/dist/assets/Post-1ec9984a.js @@ -0,0 +1 @@ +import{d as G,r,a2 as me,o,c as u,a as m,U as e,a0 as n,e as T,L as z,P as U,N as i,Z as a,a1 as V,n as ne,a6 as Pe,F as ae,a3 as le,j as ve,V as ye,W as ke,w as Re}from"./@vue-d002002f.js";import{u as X}from"./vuex-4d2f7b35.js";import{f as ie}from"./formatTime-000dbebb.js";import{t as Se,d as Le,e as Ae,_ as ee,f as De,h as Me,i as qe,j as Ne,g as Oe,k as je,l as Be,m as Ee,n as Ve,o as He,s as Fe,v as Ye,p as Ke,q as Je,r as Qe,u as ge}from"./index-5fa3c6e0.js";import{Y as ue,V as W}from"./IEnum-a180d93e.js";import{T as we,e as ce,f as be,g as re,h as $e,I as Ge,i as We,j as Ze,k as Xe,l as et,m as tt,n as st,o as ot}from"./@vicons-4022100b.js";import{j as te,e as se,J as Ce,K as nt,b as at,L as lt,o as fe,M as xe,v as it,w as ut,x as ct,y as rt,z as _t,B as pt,O as dt,P as mt,i as vt,Q as ft,a as Ie,F as ht,I as gt,k as yt,H as kt,f as wt,g as bt}from"./naive-ui-d02aa0d7.js";import{p as he,_ as Te,a as $t,b as Ct,c as xt}from"./content-1ad34d0c.js";import{u as ze,b as It}from"./vue-router-29e6667f.js";import{_ as Tt}from"./post-skeleton-49f18127.js";import{l as zt}from"./lodash-94eb5868.js";import{a as Ut}from"./copy-to-clipboard-1dd3075d.js";import{_ as Pt}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{K as Rt}from"./v3-infinite-loading-58f64a4e.js";import"./moment-b7869f98.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./evtd-b614532e.js";import"./@css-render-6b6cdab1.js";import"./vooks-77bdadbd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./paopao-video-player-d47e9bf6.js";import"./toggle-selection-93f4ad84.js";const St={class:"reply-item"},Lt={class:"header-wrap"},At={class:"username"},Dt={class:"reply-name"},Mt={class:"timestamp"},qt={class:"base-wrap"},Nt={class:"content"},Ot={class:"reply-switch"},jt={class:"time-item"},Bt={class:"actions"},Et={class:"upvote-count"},Vt=["onClick"],Ht={class:"upvote-count"},Ft={key:2,class:"action-item"},Yt=["onClick"],Kt=G({__name:"reply-item",props:{tweetId:{},reply:{}},emits:["focusReply","reload"],setup(M,{emit:N}){const l=M,_=X(),h=r(l.reply.is_thumbs_up==ue.YES),y=r(l.reply.is_thumbs_down==ue.YES),k=r(l.reply.thumbs_up_count),L=()=>{Se({tweet_id:l.tweetId,comment_id:l.reply.comment_id,reply_id:l.reply.id}).then(v=>{h.value=!h.value,h.value?(k.value++,y.value=!1):k.value--}).catch(v=>{console.log(v)})},c=()=>{Le({tweet_id:l.tweetId,comment_id:l.reply.comment_id,reply_id:l.reply.id}).then(v=>{y.value=!y.value,y.value&&h.value&&(k.value--,h.value=!1)}).catch(v=>{console.log(v)})},R=()=>{N("focusReply",l.reply)},I=()=>{Ae({id:l.reply.id}).then(v=>{window.$message.success("删除成功"),setTimeout(()=>{N("reload")},50)}).catch(v=>{console.log(v)})};return(v,b)=>{const t=me("router-link"),f=te,$=se,A=Ce,w=nt;return o(),u("div",St,[m("div",Lt,[m("div",At,[e(t,{class:"user-link",to:{name:"user",query:{username:l.reply.user.username}}},{default:n(()=>[T(z(l.reply.user.username),1)]),_:1},8,["to"]),m("span",Dt,z(l.reply.at_user_id>0?"回复":":"),1),l.reply.at_user_id>0?(o(),U(t,{key:0,class:"user-link",to:{name:"user",query:{username:l.reply.at_user.username}}},{default:n(()=>[T(z(l.reply.at_user.username),1)]),_:1},8,["to"])):i("",!0)]),m("div",Mt,[T(z(l.reply.ip_loc)+" ",1),a(_).state.userInfo.is_admin||a(_).state.userInfo.id===l.reply.user.id?(o(),U(A,{key:0,"negative-text":"取消","positive-text":"确认",onPositiveClick:I},{trigger:n(()=>[e($,{quaternary:"",circle:"",size:"tiny",class:"del-btn"},{icon:n(()=>[e(f,null,{default:n(()=>[e(a(we))]),_:1})]),_:1})]),default:n(()=>[T(" 是否确认删除? ")]),_:1})):i("",!0)])]),m("div",qt,[m("div",Nt,[e(w,{"expand-trigger":"click","line-clamp":"5",tooltip:!1},{default:n(()=>[T(z(l.reply.content),1)]),_:1})]),m("div",Ot,[m("span",jt,z(a(ie)(l.reply.created_on)),1),m("div",Bt,[a(_).state.userLogined?i("",!0):(o(),u("div",{key:0,class:"action-item",onClick:b[0]||(b[0]=V(()=>{},["stop"]))},[e(f,{size:"medium"},{default:n(()=>[e(a(ce))]),_:1}),m("span",Et,z(k.value),1)])),a(_).state.userLogined?(o(),u("div",{key:1,class:"action-item hover",onClick:V(L,["stop"])},[e(f,{size:"medium"},{default:n(()=>[h.value?i("",!0):(o(),U(a(ce),{key:0})),h.value?(o(),U(a(be),{key:1,class:"show"})):i("",!0)]),_:1}),m("span",Ht,z(k.value>0?k.value:"赞"),1)],8,Vt)):i("",!0),a(_).state.userLogined?i("",!0):(o(),u("div",Ft,[e(f,{size:"medium"},{default:n(()=>[e(a(re))]),_:1})])),a(_).state.userLogined?(o(),u("div",{key:3,class:"action-item hover",onClick:V(c,["stop"])},[e(f,{size:"medium"},{default:n(()=>[y.value?i("",!0):(o(),U(a(re),{key:0})),y.value?(o(),U(a($e),{key:1,class:"show"})):i("",!0)]),_:1})],8,Yt)):i("",!0),a(_).state.userLogined?(o(),u("span",{key:4,class:"show opacity-item reply-btn",onClick:R}," 回复 ")):i("",!0)])])])])}}});const Jt=ee(Kt,[["__scopeId","data-v-0fa8b923"]]),Qt={class:"reply-compose-wrap"},Gt={class:"reply-switch"},Wt={class:"time-item"},Zt={class:"actions"},Xt={key:0,class:"action-item"},es={class:"upvote-count"},ts=["onClick"],ss={class:"upvote-count"},os={key:2,class:"action-item"},ns=["onClick"],as={key:0,class:"reply-input-wrap"},ls=G({__name:"compose-reply",props:{comment:{},atUserid:{default:0},atUsername:{default:""}},emits:["reload","reset"],setup(M,{expose:N,emit:l}){const _=M,h=X(),y=r(),k=r(!1),L=r(""),c=r(!1),R=+"300",I=r(_.comment.is_thumbs_up==ue.YES),v=r(_.comment.is_thumbs_down==ue.YES),b=r(_.comment.thumbs_up_count),t=()=>{De({tweet_id:_.comment.post_id,comment_id:_.comment.id}).then(w=>{I.value=!I.value,I.value?(b.value++,v.value=!1):b.value--}).catch(w=>{console.log(w)})},f=()=>{Me({tweet_id:_.comment.post_id,comment_id:_.comment.id}).then(w=>{v.value=!v.value,v.value&&I.value&&(b.value--,I.value=!1)}).catch(w=>{console.log(w)})},$=w=>{k.value=w,w?setTimeout(()=>{var D;(D=y.value)==null||D.focus()},10):(c.value=!1,L.value="",l("reset"))},A=()=>{c.value=!0,qe({comment_id:_.comment.id,at_user_id:_.atUserid,content:L.value}).then(w=>{$(!1),window.$message.success("评论成功"),l("reload")}).catch(w=>{c.value=!1})};return N({switchReply:$}),(w,D)=>{const j=te,B=at,F=se,P=lt;return o(),u("div",Qt,[m("div",Gt,[m("span",Wt,z(a(ie)(w.comment.created_on)),1),m("div",Zt,[a(h).state.userLogined?i("",!0):(o(),u("div",Xt,[e(j,{size:"medium"},{default:n(()=>[e(a(ce))]),_:1}),m("span",es,z(b.value),1)])),a(h).state.userLogined?(o(),u("div",{key:1,class:"action-item hover",onClick:V(t,["stop"])},[e(j,{size:"medium"},{default:n(()=>[I.value?i("",!0):(o(),U(a(ce),{key:0})),I.value?(o(),U(a(be),{key:1,class:"show"})):i("",!0)]),_:1}),m("span",ss,z(b.value>0?b.value:"赞"),1)],8,ts)):i("",!0),a(h).state.userLogined?i("",!0):(o(),u("div",os,[e(j,{size:"medium"},{default:n(()=>[e(a(re))]),_:1})])),a(h).state.userLogined?(o(),u("div",{key:3,class:"action-item hover",onClick:V(f,["stop"])},[e(j,{size:"medium"},{default:n(()=>[v.value?i("",!0):(o(),U(a(re),{key:0})),v.value?(o(),U(a($e),{key:1,class:"show"})):i("",!0)]),_:1})],8,ns)):i("",!0),a(h).state.userLogined&&!k.value?(o(),u("span",{key:4,class:"show reply-btn",onClick:D[0]||(D[0]=S=>$(!0))}," 回复 ")):i("",!0),a(h).state.userLogined&&k.value?(o(),u("span",{key:5,class:"hide reply-btn",onClick:D[1]||(D[1]=S=>$(!1))}," 取消 ")):i("",!0)])]),k.value?(o(),u("div",as,[e(P,null,{default:n(()=>[e(B,{ref_key:"inputInstRef",ref:y,size:"small",placeholder:_.atUsername?"@"+_.atUsername:"请输入回复内容..",maxlength:a(R),value:L.value,"onUpdate:value":D[2]||(D[2]=S=>L.value=S),"show-count":"",clearable:""},null,8,["placeholder","maxlength","value"]),e(F,{type:"primary",size:"small",ghost:"",loading:c.value,onClick:A},{default:n(()=>[T(" 回复 ")]),_:1},8,["loading"])]),_:1})])):i("",!0)])}}});const is=ee(ls,[["__scopeId","data-v-f9af7a93"]]),us={class:"comment-item"},cs={class:"nickname-wrap"},rs={class:"username-wrap"},_s={class:"opt-wrap"},ps={class:"timestamp"},ds=["innerHTML"],ms={class:"reply-wrap"},vs=G({__name:"comment-item",props:{comment:{}},emits:["reload"],setup(M,{emit:N}){const l=M,_=X(),h=ze(),y=r(0),k=r(""),L=r(),c=ne(()=>{let f=Object.assign({texts:[],imgs:[]},l.comment);return f.contents.map($=>{(+$.type==1||+$.type==2)&&f.texts.push($),+$.type==3&&f.imgs.push($)}),f}),R=(f,$)=>{let A=f.target;if(A.dataset.detail){const w=A.dataset.detail.split(":");w.length===2&&(_.commit("refresh"),w[0]==="tag"?window.$message.warning("评论内的无效话题"):h.push({name:"user",query:{username:w[1]}}))}},I=f=>{var $,A;y.value=f.user_id,k.value=(($=f.user)==null?void 0:$.username)||"",(A=L.value)==null||A.switchReply(!0)},v=()=>{N("reload")},b=()=>{y.value=0,k.value=""},t=()=>{Ne({id:c.value.id}).then(f=>{window.$message.success("删除成功"),setTimeout(()=>{v()},50)}).catch(f=>{})};return(f,$)=>{const A=fe,w=me("router-link"),D=te,j=se,B=Ce,F=Te,P=is,S=Jt,K=xe;return o(),u("div",us,[e(K,{"content-indented":""},Pe({avatar:n(()=>[e(A,{round:"",size:30,src:c.value.user.avatar},null,8,["src"])]),header:n(()=>[m("span",cs,[e(w,{onClick:$[0]||($[0]=V(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:c.value.user.username}}},{default:n(()=>[T(z(c.value.user.nickname),1)]),_:1},8,["to"])]),m("span",rs," @"+z(c.value.user.username),1)]),"header-extra":n(()=>[m("div",_s,[m("span",ps,z(c.value.ip_loc),1),a(_).state.userInfo.is_admin||a(_).state.userInfo.id===c.value.user.id?(o(),U(B,{key:0,"negative-text":"取消","positive-text":"确认",onPositiveClick:t},{trigger:n(()=>[e(j,{quaternary:"",circle:"",size:"tiny",class:"del-btn"},{icon:n(()=>[e(D,null,{default:n(()=>[e(a(we))]),_:1})]),_:1})]),default:n(()=>[T(" 是否确认删除? ")]),_:1})):i("",!0)])]),footer:n(()=>[c.value.imgs.length>0?(o(),U(F,{key:0,imgs:c.value.imgs},null,8,["imgs"])):i("",!0),e(P,{ref_key:"replyComposeRef",ref:L,comment:c.value,"at-userid":y.value,"at-username":k.value,onReload:v,onReset:b},null,8,["comment","at-userid","at-username"]),m("div",ms,[(o(!0),u(ae,null,le(c.value.replies,s=>(o(),U(S,{key:s.id,reply:s,"tweet-id":c.value.post_id,onFocusReply:I,onReload:v},null,8,["reply","tweet-id"]))),128))])]),_:2},[c.value.texts.length>0?{name:"description",fn:n(()=>[(o(!0),u(ae,null,le(c.value.texts,s=>(o(),u("span",{key:s.id,class:"comment-text",onClick:$[1]||($[1]=V(d=>R(d,c.value.id),["stop"])),innerHTML:a(he)(s.content).content},null,8,ds))),128))]),key:"0"}:void 0]),1024)])}}});const fs=ee(vs,[["__scopeId","data-v-e5cb084f"]]),hs=M=>(ye("data-v-634e6bfd"),M=M(),ke(),M),gs={key:0,class:"compose-wrap"},ys={class:"compose-line"},ks={class:"compose-user"},ws={class:"compose-line compose-options"},bs={class:"attachment"},$s={class:"submit-wrap"},Cs={class:"attachment-list-wrap"},xs={key:1,class:"compose-wrap"},Is=hs(()=>m("div",{class:"login-wrap"},[m("span",{class:"login-banner"}," 登录后,精彩更多")],-1)),Ts={key:0,class:"login-only-wrap"},zs={key:1,class:"login-wrap"},Us=G({__name:"compose-comment",props:{lock:{default:0},postId:{default:0}},emits:["post-success"],setup(M,{emit:N}){const l=M,_=X(),h=r([]),y=r(!1),k=r(!1),L=r(!1),c=r(""),R=r(),I=r("public/image"),v=r([]),b=r([]),t=r("true".toLowerCase()==="true"),f=+"300",$="https://iibiubiu.com/v1/attachment",A=r(),w=zt.debounce(p=>{Oe({k:p}).then(g=>{let C=[];g.suggest.map(x=>{C.push({label:x,value:x})}),h.value=C,k.value=!1}).catch(g=>{k.value=!1})},200),D=(p,g)=>{k.value||(k.value=!0,g==="@"&&w(p))},j=p=>{p.length>f?c.value=p.substring(0,f):c.value=p},B=p=>{I.value=p},F=p=>{for(let O=0;O30&&(p[O].name=C.substring(0,18)+"..."+C.substring(C.length-9)+"."+x)}v.value=p},P=async p=>{var g,C;return I.value==="public/image"&&!["image/png","image/jpg","image/jpeg","image/gif"].includes((g=p.file.file)==null?void 0:g.type)?(window.$message.warning("图片仅允许 png/jpg/gif 格式"),!1):I.value==="image"&&((C=p.file.file)==null?void 0:C.size)>10485760?(window.$message.warning("图片大小不能超过10MB"),!1):!0},S=({file:p,event:g})=>{var C;try{let x=JSON.parse((C=g.target)==null?void 0:C.response);x.code===0&&I.value==="public/image"&&b.value.push({id:p.id,content:x.data.content})}catch{window.$message.error("上传失败")}},K=({file:p,event:g})=>{var C;try{let x=JSON.parse((C=g.target)==null?void 0:C.response);if(x.code!==0){let O=x.msg||"上传失败";x.details&&x.details.length>0&&x.details.map(E=>{O+=":"+E}),window.$message.error(O)}}catch{window.$message.error("上传失败")}},s=({file:p})=>{let g=b.value.findIndex(C=>C.id===p.id);g>-1&&b.value.splice(g,1)},d=()=>{y.value=!0},H=()=>{var p;y.value=!1,(p=R.value)==null||p.clear(),v.value=[],c.value="",b.value=[]},J=()=>{if(c.value.trim().length===0){window.$message.warning("请输入内容哦");return}let{users:p}=he(c.value);const g=[];let C=100;g.push({content:c.value,type:2,sort:C}),b.value.map(x=>{C++,g.push({content:x.content,type:3,sort:C})}),L.value=!0,je({contents:g,post_id:l.postId,users:Array.from(new Set(p))}).then(x=>{window.$message.success("发布成功"),L.value=!1,N("post-success"),H()}).catch(x=>{L.value=!1})},Y=p=>{_.commit("triggerAuth",!0),_.commit("triggerAuthKey",p)};return ve(()=>{A.value="Bearer "+localStorage.getItem("PAOPAO_TOKEN")}),(p,g)=>{const C=fe,x=it,O=te,E=se,Q=ut,_e=ct,oe=rt,pe=_t,de=pt;return o(),u("div",null,[a(_).state.userInfo.id>0?(o(),u("div",gs,[m("div",ys,[m("div",ks,[e(C,{round:"",size:30,src:a(_).state.userInfo.avatar},null,8,["src"])]),e(x,{type:"textarea",size:"large",autosize:"",bordered:!1,options:h.value,prefix:["@"],loading:k.value,value:c.value,disabled:l.lock===1,"onUpdate:value":j,onSearch:D,onFocus:d,placeholder:l.lock===1?"泡泡已被锁定,回复功能已关闭":"快来评论两句吧..."},null,8,["options","loading","value","disabled","placeholder"])]),y.value?(o(),U(de,{key:0,ref_key:"uploadRef",ref:R,abstract:"","list-type":"image",multiple:!0,max:9,action:$,headers:{Authorization:A.value},data:{type:I.value},"file-list":v.value,onBeforeUpload:P,onFinish:S,onError:K,onRemove:s,"onUpdate:fileList":F},{default:n(()=>[m("div",ws,[m("div",bs,[e(Q,{abstract:""},{default:n(({handleClick:q})=>[e(E,{disabled:v.value.length>0&&I.value==="public/video"||v.value.length===9,onClick:()=>{B("public/image"),q()},quaternary:"",circle:"",type:"primary"},{icon:n(()=>[e(O,{size:"20",color:"var(--primary-color)"},{default:n(()=>[e(a(Ge))]),_:1})]),_:2},1032,["disabled","onClick"])]),_:1}),e(oe,{trigger:"hover",placement:"bottom"},{trigger:n(()=>[e(_e,{class:"text-statistic",type:"circle","show-indicator":!1,status:"success","stroke-width":10,percentage:c.value.length/a(f)*100},null,8,["percentage"])]),default:n(()=>[T(" "+z(c.value.length)+" / "+z(a(f)),1)]),_:1})]),m("div",$s,[e(E,{quaternary:"",round:"",type:"tertiary",class:"cancel-btn",size:"small",onClick:H},{default:n(()=>[T(" 取消 ")]),_:1}),e(E,{loading:L.value,onClick:J,type:"primary",secondary:"",size:"small",round:""},{default:n(()=>[T(" 发布 ")]),_:1},8,["loading"])])]),m("div",Cs,[e(pe)])]),_:1},8,["headers","data","file-list"])):i("",!0)])):(o(),u("div",xs,[Is,t.value?i("",!0):(o(),u("div",Ts,[e(E,{strong:"",secondary:"",round:"",type:"primary",onClick:g[0]||(g[0]=q=>Y("signin"))},{default:n(()=>[T(" 登录 ")]),_:1})])),t.value?(o(),u("div",zs,[e(E,{strong:"",secondary:"",round:"",type:"primary",onClick:g[1]||(g[1]=q=>Y("signin"))},{default:n(()=>[T(" 登录 ")]),_:1}),e(E,{strong:"",secondary:"",round:"",type:"info",onClick:g[2]||(g[2]=q=>Y("signup"))},{default:n(()=>[T(" 注册 ")]),_:1})])):i("",!0)]))])}}});const Ps=ee(Us,[["__scopeId","data-v-634e6bfd"]]),Rs={class:"username-wrap"},Ss={key:0,class:"options"},Ls={key:0},As=["innerHTML"],Ds={class:"timestamp"},Ms={key:0},qs={key:1},Ns={class:"opts-wrap"},Os=["onClick"],js={class:"opt-item"},Bs=["onClick"],Es=["onClick"],Vs=G({__name:"post-detail",props:{post:{}},emits:["reload"],setup(M,{emit:N}){const l=M,_=X(),h=ze(),y=r(!1),k=r(!1),L=r(!1),c=r(!1),R=r(!1),I=r(!1),v=r(!1),b=r(W.PUBLIC),t=ne({get:()=>{let s=Object.assign({texts:[],imgs:[],videos:[],links:[],attachments:[],charge_attachments:[]},l.post);return s.contents.map(d=>{(+d.type==1||+d.type==2)&&s.texts.push(d),+d.type==3&&s.imgs.push(d),+d.type==4&&s.videos.push(d),+d.type==6&&s.links.push(d),+d.type==7&&s.attachments.push(d),+d.type==8&&s.charge_attachments.push(d)}),s},set:s=>{l.post.upvote_count=s.upvote_count,l.post.comment_count=s.comment_count,l.post.collection_count=s.collection_count}}),f=ne(()=>{let s=[{label:"删除",key:"delete"}];return t.value.is_lock===0?s.push({label:"锁定",key:"lock"}):s.push({label:"解锁",key:"unlock"}),_.state.userInfo.is_admin&&(t.value.is_top===0?s.push({label:"置顶",key:"stick"}):s.push({label:"取消置顶",key:"unstick"})),t.value.visibility===W.PUBLIC?s.push({label:"公开",key:"vpublic",children:[{label:"私密",key:"vprivate"},{label:"好友可见",key:"vfriend"}]}):t.value.visibility===W.PRIVATE?s.push({label:"私密",key:"vprivate",children:[{label:"公开",key:"vpublic"},{label:"好友可见",key:"vfriend"}]}):s.push({label:"好友可见",key:"vfriend",children:[{label:"公开",key:"vpublic"},{label:"私密",key:"vprivate"}]}),s}),$=s=>{h.push({name:"post",query:{id:s}})},A=(s,d)=>{if(s.target.dataset.detail){const H=s.target.dataset.detail.split(":");if(H.length===2){_.commit("refresh"),H[0]==="tag"?h.push({name:"home",query:{q:H[1],t:"tag"}}):h.push({name:"user",query:{username:H[1]}});return}}$(d)},w=s=>{switch(s){case"delete":L.value=!0;break;case"lock":case"unlock":c.value=!0;break;case"stick":case"unstick":R.value=!0;break;case"vpublic":b.value=0,I.value=!0;break;case"vprivate":b.value=1,I.value=!0;break;case"vfriend":b.value=2,I.value=!0;break}},D=()=>{Ve({id:t.value.id}).then(s=>{window.$message.success("删除成功"),h.replace("/"),setTimeout(()=>{_.commit("refresh")},50)}).catch(s=>{v.value=!1})},j=()=>{He({id:t.value.id}).then(s=>{N("reload"),s.lock_status===1?window.$message.success("锁定成功"):window.$message.success("解锁成功")}).catch(s=>{v.value=!1})},B=()=>{Fe({id:t.value.id}).then(s=>{N("reload"),s.top_status===1?window.$message.success("置顶成功"):window.$message.success("取消置顶成功")}).catch(s=>{v.value=!1})},F=()=>{Ye({id:t.value.id,visibility:b.value}).then(s=>{N("reload"),window.$message.success("修改可见性成功")}).catch(s=>{v.value=!1})},P=()=>{Ke({id:t.value.id}).then(s=>{y.value=s.status,s.status?t.value={...t.value,upvote_count:t.value.upvote_count+1}:t.value={...t.value,upvote_count:t.value.upvote_count-1}}).catch(s=>{console.log(s)})},S=()=>{Je({id:t.value.id}).then(s=>{k.value=s.status,s.status?t.value={...t.value,collection_count:t.value.collection_count+1}:t.value={...t.value,collection_count:t.value.collection_count-1}}).catch(s=>{console.log(s)})},K=()=>{Ut(`${window.location.origin}/#/post?id=${t.value.id}`),window.$message.success("链接已复制到剪贴板")};return ve(()=>{_.state.userInfo.id>0&&(Be({id:t.value.id}).then(s=>{y.value=s.status}).catch(s=>{console.log(s)}),Ee({id:t.value.id}).then(s=>{k.value=s.status}).catch(s=>{console.log(s)}))}),(s,d)=>{const H=fe,J=me("router-link"),Y=dt,p=te,g=se,C=mt,x=vt,O=$t,E=Te,Q=Ct,_e=xt,oe=ft,pe=Ie,de=xe;return o(),u("div",{class:"detail-item",onClick:d[6]||(d[6]=q=>$(t.value.id))},[e(de,null,{avatar:n(()=>[e(H,{round:"",size:30,src:t.value.user.avatar},null,8,["src"])]),header:n(()=>[e(J,{onClick:d[0]||(d[0]=V(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:t.value.user.username}}},{default:n(()=>[T(z(t.value.user.nickname),1)]),_:1},8,["to"]),m("span",Rs," @"+z(t.value.user.username),1),t.value.is_top?(o(),U(Y,{key:0,class:"top-tag",type:"warning",size:"small",round:""},{default:n(()=>[T(" 置顶 ")]),_:1})):i("",!0),t.value.visibility==a(W).PRIVATE?(o(),U(Y,{key:1,class:"top-tag",type:"error",size:"small",round:""},{default:n(()=>[T(" 私密 ")]),_:1})):i("",!0),t.value.visibility==a(W).FRIEND?(o(),U(Y,{key:2,class:"top-tag",type:"info",size:"small",round:""},{default:n(()=>[T(" 好友可见 ")]),_:1})):i("",!0)]),"header-extra":n(()=>[a(_).state.userInfo.is_admin||a(_).state.userInfo.id===t.value.user.id?(o(),u("div",Ss,[e(C,{placement:"bottom-end",trigger:"click",size:"small",options:f.value,onSelect:w},{default:n(()=>[e(g,{quaternary:"",circle:""},{icon:n(()=>[e(p,null,{default:n(()=>[e(a(We))]),_:1})]),_:1})]),_:1},8,["options"])])):i("",!0),e(x,{show:L.value,"onUpdate:show":d[1]||(d[1]=q=>L.value=q),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定删除该泡泡动态吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:D},null,8,["show"]),e(x,{show:c.value,"onUpdate:show":d[2]||(d[2]=q=>c.value=q),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定"+(t.value.is_lock?"解锁":"锁定")+"该泡泡动态吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:j},null,8,["show","content"]),e(x,{show:R.value,"onUpdate:show":d[3]||(d[3]=q=>R.value=q),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定"+(t.value.is_top?"取消置顶":"置顶")+"该泡泡动态吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:B},null,8,["show","content"]),e(x,{show:I.value,"onUpdate:show":d[4]||(d[4]=q=>I.value=q),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定将该泡泡动态可见度修改为"+(b.value==0?"公开":b.value==1?"私密":"好友可见")+"吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:F},null,8,["show","content"])]),footer:n(()=>[e(O,{attachments:t.value.attachments},null,8,["attachments"]),e(O,{attachments:t.value.charge_attachments,price:t.value.attachment_price},null,8,["attachments","price"]),e(E,{imgs:t.value.imgs},null,8,["imgs"]),e(Q,{videos:t.value.videos,full:!0},null,8,["videos"]),e(_e,{links:t.value.links},null,8,["links"]),m("div",Ds,[T(" 发布于 "+z(a(ie)(t.value.created_on))+" ",1),t.value.ip_loc?(o(),u("span",Ms,[e(oe,{vertical:""}),T(" "+z(t.value.ip_loc),1)])):i("",!0),!a(_).state.collapsedLeft&&t.value.created_on!=t.value.latest_replied_on?(o(),u("span",qs,[e(oe,{vertical:""}),T(" 最后回复 "+z(a(ie)(t.value.latest_replied_on)),1)])):i("",!0)])]),action:n(()=>[m("div",Ns,[e(pe,{justify:"space-between"},{default:n(()=>[m("div",{class:"opt-item hover",onClick:V(P,["stop"])},[e(p,{size:"20",class:"opt-item-icon"},{default:n(()=>[y.value?i("",!0):(o(),U(a(Ze),{key:0})),y.value?(o(),U(a(Xe),{key:1,color:"red"})):i("",!0)]),_:1}),T(" "+z(t.value.upvote_count),1)],8,Os),m("div",js,[e(p,{size:"20",class:"opt-item-icon"},{default:n(()=>[e(a(et))]),_:1}),T(" "+z(t.value.comment_count),1)]),m("div",{class:"opt-item hover",onClick:V(S,["stop"])},[e(p,{size:"20",class:"opt-item-icon"},{default:n(()=>[k.value?i("",!0):(o(),U(a(tt),{key:0})),k.value?(o(),U(a(st),{key:1,color:"#ff7600"})):i("",!0)]),_:1}),T(" "+z(t.value.collection_count),1)],8,Bs),m("div",{class:"opt-item hover",onClick:V(K,["stop"])},[e(p,{size:"20",class:"opt-item-icon"},{default:n(()=>[e(a(ot))]),_:1}),T(" "+z(t.value.share_count),1)],8,Es)]),_:1})])]),default:n(()=>[t.value.texts.length>0?(o(),u("div",Ls,[(o(!0),u(ae,null,le(t.value.texts,q=>(o(),u("span",{key:q.id,class:"post-text",onClick:d[5]||(d[5]=V(Ue=>A(Ue,t.value.id),["stop"])),innerHTML:a(he)(q.content).content},null,8,As))),128))])):i("",!0)]),_:1})])}}});const Hs=M=>(ye("data-v-0d01659f"),M=M(),ke(),M),Fs={key:0,class:"detail-wrap"},Ys={key:1,class:"empty-wrap"},Ks={key:0,class:"comment-opts-wrap"},Js=Hs(()=>m("span",{class:"comment-title-item"},"评论",-1)),Qs={key:2},Gs={key:0,class:"skeleton-wrap"},Ws={key:1},Zs={key:0,class:"empty-wrap"},Xs={key:0,class:"load-more-spinner"},eo={key:1,class:"load-more-spinner"},to={key:2,class:"load-more-spinner"},so={key:3,class:"load-more-spinner"},Z=20,oo=G({__name:"Post",setup(M){const N=It(),l=r({}),_=r(!1),h=r(!1),y=r([]),k=ne(()=>+N.query.id),L=r("default"),c=r(!0);let R={loading(){},loaded(){},complete(){},error(){}};const I=P=>{L.value=P,P==="default"&&(c.value=!0),B(R)},v=()=>{l.value={id:0},_.value=!0,Qe({id:k.value}).then(P=>{_.value=!1,l.value=P,B(R)}).catch(P=>{_.value=!1})};let b=1;const t=r(!1),f=r([]),$=P=>{t.value||ge({id:l.value.id,sort_strategy:"default",page:b,page_size:Z}).then(S=>{P!==null&&(R=P),S.list.length0&&(b===1?f.value=S.list:f.value.push(...S.list),y.value=f.value),R.loaded(),h.value=!1}).catch(S=>{h.value=!1,R.error()})};let A=1,w=r(!1);const D=r([]),j=P=>{w.value||ge({id:l.value.id,sort_strategy:"newest",page:A,page_size:Z}).then(S=>{P!==null&&(R=P),S.list.length0&&(A===1?D.value=S.list:D.value.push(...S.list),y.value=D.value),R.loaded(),h.value=!1}).catch(S=>{h.value=!1,R.error()})},B=P=>{k.value<1||(y.value.length===0&&(h.value=!0),L.value==="default"?(y.value=f.value,$(P)):(y.value=D.value,j(P)),h.value=!1)},F=()=>{b=1,t.value=!1,f.value=[],A=1,w.value=!1,D.value=[],B(R)};return ve(()=>{v()}),Re(k,()=>{k.value>0&&N.name==="post"&&v()}),(P,S)=>{const K=Pt,s=Vs,d=gt,H=yt,J=kt,Y=wt,p=bt,g=Ps,C=Tt,x=fs,O=Ie,E=ht;return o(),u("div",null,[e(K,{title:"泡泡详情",back:!0}),e(E,{class:"main-content-wrap",bordered:""},{default:n(()=>[e(J,null,{default:n(()=>[e(H,{show:_.value},{default:n(()=>[l.value.id>1?(o(),u("div",Fs,[e(s,{post:l.value,onReload:v},null,8,["post"])])):(o(),u("div",Ys,[e(d,{size:"large",description:"暂无数据"})]))]),_:1},8,["show"])]),_:1}),l.value.id>0?(o(),u("div",Ks,[e(p,{type:"bar","justify-content":"end",size:"small",animated:"","onUpdate:value":I},{prefix:n(()=>[Js]),default:n(()=>[e(Y,{name:"default",tab:"默认"}),e(Y,{name:"newest",tab:"最新"})]),_:1})])):i("",!0),l.value.id>0?(o(),U(J,{key:1},{default:n(()=>[e(g,{lock:l.value.is_lock,"post-id":l.value.id,onPostSuccess:F},null,8,["lock","post-id"])]),_:1})):i("",!0),l.value.id>0?(o(),u("div",Qs,[h.value?(o(),u("div",Gs,[e(C,{num:5})])):(o(),u("div",Ws,[y.value.length===0?(o(),u("div",Zs,[e(d,{size:"large",description:"暂无评论,快来抢沙发"})])):i("",!0),(o(!0),u(ae,null,le(y.value,Q=>(o(),U(J,{key:Q.id},{default:n(()=>[e(x,{comment:Q,onReload:F},null,8,["comment"])]),_:2},1024))),128))]))])):i("",!0),y.value.length>=Z?(o(),U(O,{key:3,justify:"center"},{default:n(()=>[e(a(Rt),{class:"load-more",slots:{complete:"没有更多数据了",error:"加载出错"},onInfinite:B},{spinner:n(()=>[c.value&&t.value?(o(),u("span",Xs)):i("",!0),!c.value&&a(w)?(o(),u("span",eo)):i("",!0),c.value&&!t.value?(o(),u("span",to,"加载评论")):i("",!0),!c.value&&!a(w)?(o(),u("span",so,"加载评论")):i("",!0)]),_:1})]),_:1})):i("",!0)]),_:1})])}}});const qo=ee(oo,[["__scopeId","data-v-0d01659f"]]);export{qo as default}; diff --git a/web/dist/assets/Post-521adc02.css b/web/dist/assets/Post-521adc02.css deleted file mode 100644 index 300a07f9..00000000 --- a/web/dist/assets/Post-521adc02.css +++ /dev/null @@ -1 +0,0 @@ -.reply-item[data-v-1ac7a555]{display:flex;flex-direction:column;font-size:12px;padding:8px;border-bottom:1px solid #f3f3f3}.reply-item .header-wrap[data-v-1ac7a555]{display:flex;align-items:center;justify-content:space-between}.reply-item .header-wrap .username[data-v-1ac7a555]{max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-item .header-wrap .username .reply-name[data-v-1ac7a555]{margin:0 3px;opacity:.75}.reply-item .header-wrap .timestamp[data-v-1ac7a555]{opacity:.75;text-align:right;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-item .base-wrap[data-v-1ac7a555]{display:block}.reply-item .base-wrap .content[data-v-1ac7a555]{width:100%;margin-top:4px;font-size:12px;text-align:justify;line-height:2}.reply-item .base-wrap .reply-switch[data-v-1ac7a555]{display:flex;align-items:center;justify-content:space-between;font-size:12px}.reply-item .base-wrap .reply-switch .actions[data-v-1ac7a555]{display:flex;align-items:center;text-align:right;font-size:12px;margin:10px 0}.reply-item .base-wrap .reply-switch .time-item[data-v-1ac7a555]{font-size:12px;opacity:.75;margin-right:18px}.reply-item .base-wrap .reply-switch .action-item[data-v-1ac7a555]{display:flex;align-items:center;margin-left:18px;opacity:.65}.reply-item .base-wrap .reply-switch .action-item .upvote-count[data-v-1ac7a555]{margin-left:4px;font-size:12px}.reply-item .base-wrap .reply-switch .action-item.hover[data-v-1ac7a555]{cursor:pointer}.reply-item .base-wrap .reply-switch .opacity-item[data-v-1ac7a555]{opacity:.75}.reply-item .base-wrap .reply-switch .reply-btn[data-v-1ac7a555]{margin-left:18px}.reply-item .base-wrap .reply-switch .show[data-v-1ac7a555]{color:#18a058;cursor:pointer}.reply-item .base-wrap .reply-switch .hide[data-v-1ac7a555]{opacity:.75;cursor:pointer}.dark .reply-item[data-v-1ac7a555]{border-bottom:1px solid #262628;background-color:#101014bf}.dark .reply-item .base-wrap .reply-switch .show[data-v-1ac7a555]{color:#63e2b7}.reply-compose-wrap .reply-switch[data-v-f9af7a93]{display:flex;align-items:center;justify-content:space-between;text-align:right;font-size:12px}.reply-compose-wrap .reply-switch .actions[data-v-f9af7a93]{display:flex;align-items:center;text-align:right;font-size:12px;margin:10px 0}.reply-compose-wrap .reply-switch .time-item[data-v-f9af7a93]{font-size:12px;opacity:.65;margin-right:18px}.reply-compose-wrap .reply-switch .action-item[data-v-f9af7a93]{display:flex;align-items:center;margin-left:18px;opacity:.65}.reply-compose-wrap .reply-switch .action-item .upvote-count[data-v-f9af7a93]{margin-left:4px;font-size:12px}.reply-compose-wrap .reply-switch .action-item.hover[data-v-f9af7a93]{cursor:pointer}.reply-compose-wrap .reply-switch .reply-btn[data-v-f9af7a93]{margin-left:18px}.reply-compose-wrap .reply-switch .show[data-v-f9af7a93]{color:#18a058;cursor:pointer;opacity:.75}.reply-compose-wrap .reply-switch .hide[data-v-f9af7a93]{opacity:.75;cursor:pointer}.dark .reply-compose-wrap[data-v-f9af7a93]{background-color:#101014bf}.dark .reply-compose-wrap .reply-switch .show[data-v-f9af7a93]{color:#63e2b7}.comment-item[data-v-f206d4d8]{width:100%;padding:16px;box-sizing:border-box}.comment-item .nickname-wrap[data-v-f206d4d8]{font-size:14px}.comment-item .username-wrap[data-v-f206d4d8]{font-size:14px;opacity:.75}.comment-item .opt-wrap[data-v-f206d4d8]{display:flex;align-items:center}.comment-item .opt-wrap .timestamp[data-v-f206d4d8]{opacity:.75;font-size:12px}.comment-item .opt-wrap .del-btn[data-v-f206d4d8]{margin-left:4px}.comment-item .comment-text[data-v-f206d4d8]{display:block;text-align:justify;overflow:hidden;white-space:pre-wrap;word-break:break-all}.comment-item .opt-item[data-v-f206d4d8]{display:flex;align-items:center;opacity:.7}.comment-item .opt-item .opt-item-icon[data-v-f206d4d8]{margin-right:10px}.reply-wrap[data-v-f206d4d8]{margin-top:10px;border-radius:5px;background:#fafafc}.reply-wrap .reply-item[data-v-f206d4d8]:last-child{border-bottom:none}.dark .reply-wrap[data-v-f206d4d8]{background:#18181c}.dark .comment-item[data-v-f206d4d8]{background-color:#101014bf}.compose-wrap[data-v-bd19dbe6]{width:100%;padding:16px;box-sizing:border-box}.compose-wrap .compose-line[data-v-bd19dbe6]{display:flex;flex-direction:row}.compose-wrap .compose-line .compose-user[data-v-bd19dbe6]{width:42px;height:42px;display:flex;align-items:center}.compose-wrap .compose-line.compose-options[data-v-bd19dbe6]{margin-top:6px;padding-left:42px;display:flex;justify-content:space-between}.compose-wrap .compose-line.compose-options .submit-wrap[data-v-bd19dbe6]{display:flex;align-items:center}.compose-wrap .compose-line.compose-options .submit-wrap .cancel-btn[data-v-bd19dbe6]{margin-right:8px}.compose-wrap .login-only-wrap[data-v-bd19dbe6]{display:flex;justify-content:center;width:100%}.compose-wrap .login-only-wrap button[data-v-bd19dbe6]{margin:0 4px;width:50%}.compose-wrap .login-wrap[data-v-bd19dbe6]{display:flex;justify-content:center;width:100%}.compose-wrap .login-wrap .login-banner[data-v-bd19dbe6]{margin-bottom:12px;opacity:.8}.compose-wrap .login-wrap button[data-v-bd19dbe6]{margin:0 4px}.attachment[data-v-bd19dbe6]{display:flex;align-items:center}.attachment .text-statistic[data-v-bd19dbe6]{margin-left:8px;width:18px;height:18px;transform:rotate(180deg)}.attachment-list-wrap[data-v-bd19dbe6]{margin-top:12px;margin-left:42px}.attachment-list-wrap .n-upload-file-info__thumbnail[data-v-bd19dbe6]{overflow:hidden}.dark .compose-mention[data-v-bd19dbe6],.dark .compose-wrap[data-v-bd19dbe6]{background-color:#101014bf}.detail-item{width:100%;padding:16px;box-sizing:border-box;background:#f7f9f9}.detail-item .nickname-wrap{font-size:14px}.detail-item .username-wrap{font-size:14px;opacity:.75}.detail-item .top-tag{transform:scale(.75)}.detail-item .options{opacity:.75}.detail-item .post-text{font-size:16px;text-align:justify;overflow:hidden;white-space:pre-wrap;word-break:break-all}.detail-item .opts-wrap{margin-top:20px}.detail-item .opts-wrap .opt-item{display:flex;align-items:center;opacity:.7}.detail-item .opts-wrap .opt-item .opt-item-icon{margin-right:10px}.detail-item .opts-wrap .opt-item.hover{cursor:pointer}.detail-item .n-thing .n-thing-avatar-header-wrapper{align-items:center}.detail-item .timestamp{opacity:.75;font-size:12px;margin-top:10px}.dark .detail-item{background:#18181c}.detail-wrap[data-v-0d01659f]{min-height:100px}.comment-opts-wrap[data-v-0d01659f]{padding-top:6px;padding-left:16px;padding-right:16px;opacity:.75}.comment-opts-wrap .comment-title-item[data-v-0d01659f]{padding-top:4px;font-size:16px;text-align:center}.main-content-wrap .load-more[data-v-0d01659f]{margin-bottom:8px}.main-content-wrap .load-more .load-more-spinner[data-v-0d01659f]{font-size:14px;opacity:.65}.dark .main-content-wrap[data-v-0d01659f],.dark .skeleton-wrap[data-v-0d01659f]{background-color:#101014bf} diff --git a/web/dist/assets/Post-b5c82479.js b/web/dist/assets/Post-b5c82479.js deleted file mode 100644 index 9971a709..00000000 --- a/web/dist/assets/Post-b5c82479.js +++ /dev/null @@ -1 +0,0 @@ -import{d as Q,r as c,a2 as me,o,c as u,a as m,U as e,a0 as n,e as z,L as T,P as U,N as i,Z as a,a1 as V,n as ne,a6 as Pe,F as ae,a3 as le,j as ve,V as ye,W as ke,w as Re}from"./@vue-b8d06722.js";import{u as X}from"./vuex-613b371d.js";import{f as ie}from"./formatTime-000dbebb.js";import{t as Se,d as Le,e as Ae,_ as ee,f as De,h as Me,i as qe,j as Ne,g as Oe,k as je,l as Be,m as Ee,n as Ve,o as He,s as Fe,v as Ye,p as Ke,q as Je,r as Ge,u as ge}from"./index-43cab287.js";import{Y as ue,V as W}from"./IEnum-a180d93e.js";import{T as we,e as ce,f as be,g as re,h as $e,I as Qe,i as We,j as Ze,k as Xe,l as et,m as tt,n as st,o as ot}from"./@vicons-7ee3dafd.js";import{j as te,e as se,J as Ce,b as nt,K as at,o as fe,L as xe,v as lt,w as it,x as ut,y as ct,z as rt,B as _t,M as pt,O as dt,i as mt,P as vt,a as Ie,F as ft,I as ht,k as gt,H as yt,f as kt,g as wt}from"./naive-ui-374a973f.js";import{p as he,_ as Te,a as bt,b as $t,c as Ct}from"./content-bfe7958f.js";import{u as ze,b as xt}from"./vue-router-8af5a3a6.js";import{_ as It}from"./post-skeleton-3fdfd3d1.js";import{l as Tt}from"./lodash-94eb5868.js";import{a as zt}from"./copy-to-clipboard-1dd3075d.js";import{_ as Ut}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{K as Pt}from"./v3-infinite-loading-e8a7ab9d.js";import"./moment-b7869f98.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./evtd-b614532e.js";import"./@css-render-4f82e6dd.js";import"./vooks-423a5f30.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./paopao-video-player-b4739fc7.js";import"./toggle-selection-93f4ad84.js";const Rt={class:"reply-item"},St={class:"header-wrap"},Lt={class:"username"},At={class:"reply-name"},Dt={class:"timestamp"},Mt={class:"base-wrap"},qt={class:"content"},Nt={class:"reply-switch"},Ot={class:"time-item"},jt={class:"actions"},Bt={class:"upvote-count"},Et=["onClick"],Vt={class:"upvote-count"},Ht={key:2,class:"action-item"},Ft=["onClick"],Yt=Q({__name:"reply-item",props:{tweetId:{},reply:{}},emits:["focusReply","reload"],setup(M,{emit:N}){const l=M,r=X(),f=c(l.reply.is_thumbs_up==ue.YES),g=c(l.reply.is_thumbs_down==ue.YES),y=c(l.reply.thumbs_up_count),L=()=>{Se({tweet_id:l.tweetId,comment_id:l.reply.comment_id,reply_id:l.reply.id}).then(v=>{f.value=!f.value,f.value?(y.value++,g.value=!1):y.value--}).catch(v=>{console.log(v)})},_=()=>{Le({tweet_id:l.tweetId,comment_id:l.reply.comment_id,reply_id:l.reply.id}).then(v=>{g.value=!g.value,g.value&&f.value&&(y.value--,f.value=!1)}).catch(v=>{console.log(v)})},R=()=>{N("focusReply",l.reply)},I=()=>{Ae({id:l.reply.id}).then(v=>{window.$message.success("删除成功"),setTimeout(()=>{N("reload")},50)}).catch(v=>{console.log(v)})};return(v,w)=>{const t=me("router-link"),k=te,b=se,A=Ce;return o(),u("div",Rt,[m("div",St,[m("div",Lt,[e(t,{class:"user-link",to:{name:"user",query:{username:l.reply.user.username}}},{default:n(()=>[z(T(l.reply.user.username),1)]),_:1},8,["to"]),m("span",At,T(l.reply.at_user_id>0?"回复":":"),1),l.reply.at_user_id>0?(o(),U(t,{key:0,class:"user-link",to:{name:"user",query:{username:l.reply.at_user.username}}},{default:n(()=>[z(T(l.reply.at_user.username),1)]),_:1},8,["to"])):i("",!0)]),m("div",Dt,[z(T(l.reply.ip_loc)+" ",1),a(r).state.userInfo.is_admin||a(r).state.userInfo.id===l.reply.user.id?(o(),U(A,{key:0,"negative-text":"取消","positive-text":"确认",onPositiveClick:I},{trigger:n(()=>[e(b,{quaternary:"",circle:"",size:"tiny",class:"del-btn"},{icon:n(()=>[e(k,null,{default:n(()=>[e(a(we))]),_:1})]),_:1})]),default:n(()=>[z(" 是否确认删除? ")]),_:1})):i("",!0)])]),m("div",Mt,[m("div",qt,T(l.reply.content),1),m("div",Nt,[m("span",Ot,T(a(ie)(l.reply.created_on)),1),m("div",jt,[a(r).state.userLogined?i("",!0):(o(),u("div",{key:0,class:"action-item",onClick:w[0]||(w[0]=V(()=>{},["stop"]))},[e(k,{size:"medium"},{default:n(()=>[e(a(ce))]),_:1}),m("span",Bt,T(y.value),1)])),a(r).state.userLogined?(o(),u("div",{key:1,class:"action-item hover",onClick:V(L,["stop"])},[e(k,{size:"medium"},{default:n(()=>[f.value?i("",!0):(o(),U(a(ce),{key:0})),f.value?(o(),U(a(be),{key:1,class:"show"})):i("",!0)]),_:1}),m("span",Vt,T(y.value>0?y.value:"赞"),1)],8,Et)):i("",!0),a(r).state.userLogined?i("",!0):(o(),u("div",Ht,[e(k,{size:"medium"},{default:n(()=>[e(a(re))]),_:1})])),a(r).state.userLogined?(o(),u("div",{key:3,class:"action-item hover",onClick:V(_,["stop"])},[e(k,{size:"medium"},{default:n(()=>[g.value?i("",!0):(o(),U(a(re),{key:0})),g.value?(o(),U(a($e),{key:1,class:"show"})):i("",!0)]),_:1})],8,Ft)):i("",!0),a(r).state.userLogined?(o(),u("span",{key:4,class:"show opacity-item reply-btn",onClick:R}," 回复 ")):i("",!0)])])])])}}});const Kt=ee(Yt,[["__scopeId","data-v-1ac7a555"]]),Jt={class:"reply-compose-wrap"},Gt={class:"reply-switch"},Qt={class:"time-item"},Wt={class:"actions"},Zt={key:0,class:"action-item"},Xt={class:"upvote-count"},es=["onClick"],ts={class:"upvote-count"},ss={key:2,class:"action-item"},os=["onClick"],ns={key:0,class:"reply-input-wrap"},as=Q({__name:"compose-reply",props:{comment:{},atUserid:{default:0},atUsername:{default:""}},emits:["reload","reset"],setup(M,{expose:N,emit:l}){const r=M,f=X(),g=c(),y=c(!1),L=c(""),_=c(!1),R=+"100",I=c(r.comment.is_thumbs_up==ue.YES),v=c(r.comment.is_thumbs_down==ue.YES),w=c(r.comment.thumbs_up_count),t=()=>{De({tweet_id:r.comment.post_id,comment_id:r.comment.id}).then($=>{I.value=!I.value,I.value?(w.value++,v.value=!1):w.value--}).catch($=>{console.log($)})},k=()=>{Me({tweet_id:r.comment.post_id,comment_id:r.comment.id}).then($=>{v.value=!v.value,v.value&&I.value&&(w.value--,I.value=!1)}).catch($=>{console.log($)})},b=$=>{y.value=$,$?setTimeout(()=>{var D;(D=g.value)==null||D.focus()},10):(_.value=!1,L.value="",l("reset"))},A=()=>{_.value=!0,qe({comment_id:r.comment.id,at_user_id:r.atUserid,content:L.value}).then($=>{b(!1),window.$message.success("评论成功"),l("reload")}).catch($=>{_.value=!1})};return N({switchReply:b}),($,D)=>{const j=te,B=nt,F=se,P=at;return o(),u("div",Jt,[m("div",Gt,[m("span",Qt,T(a(ie)($.comment.created_on)),1),m("div",Wt,[a(f).state.userLogined?i("",!0):(o(),u("div",Zt,[e(j,{size:"medium"},{default:n(()=>[e(a(ce))]),_:1}),m("span",Xt,T(w.value),1)])),a(f).state.userLogined?(o(),u("div",{key:1,class:"action-item hover",onClick:V(t,["stop"])},[e(j,{size:"medium"},{default:n(()=>[I.value?i("",!0):(o(),U(a(ce),{key:0})),I.value?(o(),U(a(be),{key:1,class:"show"})):i("",!0)]),_:1}),m("span",ts,T(w.value>0?w.value:"赞"),1)],8,es)):i("",!0),a(f).state.userLogined?i("",!0):(o(),u("div",ss,[e(j,{size:"medium"},{default:n(()=>[e(a(re))]),_:1})])),a(f).state.userLogined?(o(),u("div",{key:3,class:"action-item hover",onClick:V(k,["stop"])},[e(j,{size:"medium"},{default:n(()=>[v.value?i("",!0):(o(),U(a(re),{key:0})),v.value?(o(),U(a($e),{key:1,class:"show"})):i("",!0)]),_:1})],8,os)):i("",!0),a(f).state.userLogined&&!y.value?(o(),u("span",{key:4,class:"show reply-btn",onClick:D[0]||(D[0]=S=>b(!0))}," 回复 ")):i("",!0),a(f).state.userLogined&&y.value?(o(),u("span",{key:5,class:"hide reply-btn",onClick:D[1]||(D[1]=S=>b(!1))}," 取消 ")):i("",!0)])]),y.value?(o(),u("div",ns,[e(P,null,{default:n(()=>[e(B,{ref_key:"inputInstRef",ref:g,size:"small",placeholder:r.atUsername?"@"+r.atUsername:"请输入回复内容..",maxlength:a(R),value:L.value,"onUpdate:value":D[2]||(D[2]=S=>L.value=S),"show-count":"",clearable:""},null,8,["placeholder","maxlength","value"]),e(F,{type:"primary",size:"small",ghost:"",loading:_.value,onClick:A},{default:n(()=>[z(" 回复 ")]),_:1},8,["loading"])]),_:1})])):i("",!0)])}}});const ls=ee(as,[["__scopeId","data-v-f9af7a93"]]),is={class:"comment-item"},us={class:"nickname-wrap"},cs={class:"username-wrap"},rs={class:"opt-wrap"},_s={class:"timestamp"},ps=["innerHTML"],ds={class:"reply-wrap"},ms=Q({__name:"comment-item",props:{comment:{}},emits:["reload"],setup(M,{emit:N}){const l=M,r=X(),f=ze(),g=c(0),y=c(""),L=c(),_=ne(()=>{let k=Object.assign({texts:[],imgs:[]},l.comment);return k.contents.map(b=>{(+b.type==1||+b.type==2)&&k.texts.push(b),+b.type==3&&k.imgs.push(b)}),k}),R=(k,b)=>{let A=k.target;if(A.dataset.detail){const $=A.dataset.detail.split(":");$.length===2&&(r.commit("refresh"),$[0]==="tag"?window.$message.warning("评论内的无效话题"):f.push({name:"user",query:{username:$[1]}}))}},I=k=>{var b,A;g.value=k.user_id,y.value=((b=k.user)==null?void 0:b.username)||"",(A=L.value)==null||A.switchReply(!0)},v=()=>{N("reload")},w=()=>{g.value=0,y.value=""},t=()=>{Ne({id:_.value.id}).then(k=>{window.$message.success("删除成功"),setTimeout(()=>{v()},50)}).catch(k=>{})};return(k,b)=>{const A=fe,$=me("router-link"),D=te,j=se,B=Ce,F=Te,P=ls,S=Kt,K=xe;return o(),u("div",is,[e(K,{"content-indented":""},Pe({avatar:n(()=>[e(A,{round:"",size:30,src:_.value.user.avatar},null,8,["src"])]),header:n(()=>[m("span",us,[e($,{onClick:b[0]||(b[0]=V(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:_.value.user.username}}},{default:n(()=>[z(T(_.value.user.nickname),1)]),_:1},8,["to"])]),m("span",cs," @"+T(_.value.user.username),1)]),"header-extra":n(()=>[m("div",rs,[m("span",_s,T(_.value.ip_loc),1),a(r).state.userInfo.is_admin||a(r).state.userInfo.id===_.value.user.id?(o(),U(B,{key:0,"negative-text":"取消","positive-text":"确认",onPositiveClick:t},{trigger:n(()=>[e(j,{quaternary:"",circle:"",size:"tiny",class:"del-btn"},{icon:n(()=>[e(D,null,{default:n(()=>[e(a(we))]),_:1})]),_:1})]),default:n(()=>[z(" 是否确认删除? ")]),_:1})):i("",!0)])]),footer:n(()=>[_.value.imgs.length>0?(o(),U(F,{key:0,imgs:_.value.imgs},null,8,["imgs"])):i("",!0),e(P,{ref_key:"replyComposeRef",ref:L,comment:_.value,"at-userid":g.value,"at-username":y.value,onReload:v,onReset:w},null,8,["comment","at-userid","at-username"]),m("div",ds,[(o(!0),u(ae,null,le(_.value.replies,s=>(o(),U(S,{key:s.id,reply:s,"tweet-id":_.value.post_id,onFocusReply:I,onReload:v},null,8,["reply","tweet-id"]))),128))])]),_:2},[_.value.texts.length>0?{name:"description",fn:n(()=>[(o(!0),u(ae,null,le(_.value.texts,s=>(o(),u("span",{key:s.id,class:"comment-text",onClick:b[1]||(b[1]=V(p=>R(p,_.value.id),["stop"])),innerHTML:a(he)(s.content).content},null,8,ps))),128))]),key:"0"}:void 0]),1024)])}}});const vs=ee(ms,[["__scopeId","data-v-f206d4d8"]]),fs=M=>(ye("data-v-bd19dbe6"),M=M(),ke(),M),hs={key:0,class:"compose-wrap"},gs={class:"compose-line"},ys={class:"compose-user"},ks={class:"compose-line compose-options"},ws={class:"attachment"},bs={class:"submit-wrap"},$s={class:"attachment-list-wrap"},Cs={key:1,class:"compose-wrap"},xs=fs(()=>m("div",{class:"login-wrap"},[m("span",{class:"login-banner"}," 登录后,精彩更多")],-1)),Is={key:0,class:"login-only-wrap"},Ts={key:1,class:"login-wrap"},zs=Q({__name:"compose-comment",props:{lock:{default:0},postId:{default:0}},emits:["post-success"],setup(M,{emit:N}){const l=M,r=X(),f=c([]),g=c(!1),y=c(!1),L=c(!1),_=c(""),R=c(),I=c("public/image"),v=c([]),w=c([]),t=c("true".toLowerCase()==="true"),k=+"200",b="/v1/attachment",A=c(),$=Tt.debounce(d=>{Oe({k:d}).then(h=>{let C=[];h.suggest.map(x=>{C.push({label:x,value:x})}),f.value=C,y.value=!1}).catch(h=>{y.value=!1})},200),D=(d,h)=>{y.value||(y.value=!0,h==="@"&&$(d))},j=d=>{d.length>200||(_.value=d)},B=d=>{I.value=d},F=d=>{for(let O=0;O30&&(d[O].name=C.substring(0,18)+"..."+C.substring(C.length-9)+"."+x)}v.value=d},P=async d=>{var h,C;return I.value==="public/image"&&!["image/png","image/jpg","image/jpeg","image/gif"].includes((h=d.file.file)==null?void 0:h.type)?(window.$message.warning("图片仅允许 png/jpg/gif 格式"),!1):I.value==="image"&&((C=d.file.file)==null?void 0:C.size)>10485760?(window.$message.warning("图片大小不能超过10MB"),!1):!0},S=({file:d,event:h})=>{var C;try{let x=JSON.parse((C=h.target)==null?void 0:C.response);x.code===0&&I.value==="public/image"&&w.value.push({id:d.id,content:x.data.content})}catch{window.$message.error("上传失败")}},K=({file:d,event:h})=>{var C;try{let x=JSON.parse((C=h.target)==null?void 0:C.response);if(x.code!==0){let O=x.msg||"上传失败";x.details&&x.details.length>0&&x.details.map(E=>{O+=":"+E}),window.$message.error(O)}}catch{window.$message.error("上传失败")}},s=({file:d})=>{let h=w.value.findIndex(C=>C.id===d.id);h>-1&&w.value.splice(h,1)},p=()=>{g.value=!0},H=()=>{var d;g.value=!1,(d=R.value)==null||d.clear(),v.value=[],_.value="",w.value=[]},J=()=>{if(_.value.trim().length===0){window.$message.warning("请输入内容哦");return}let{users:d}=he(_.value);const h=[];let C=100;h.push({content:_.value,type:2,sort:C}),w.value.map(x=>{C++,h.push({content:x.content,type:3,sort:C})}),L.value=!0,je({contents:h,post_id:l.postId,users:Array.from(new Set(d))}).then(x=>{window.$message.success("发布成功"),L.value=!1,N("post-success"),H()}).catch(x=>{L.value=!1})},Y=d=>{r.commit("triggerAuth",!0),r.commit("triggerAuthKey",d)};return ve(()=>{A.value="Bearer "+localStorage.getItem("PAOPAO_TOKEN")}),(d,h)=>{const C=fe,x=lt,O=te,E=se,G=it,_e=ut,oe=ct,pe=rt,de=_t;return o(),u("div",null,[a(r).state.userInfo.id>0?(o(),u("div",hs,[m("div",gs,[m("div",ys,[e(C,{round:"",size:30,src:a(r).state.userInfo.avatar},null,8,["src"])]),e(x,{type:"textarea",size:"large",autosize:"",bordered:!1,options:f.value,prefix:["@"],loading:y.value,value:_.value,disabled:l.lock===1,"onUpdate:value":j,onSearch:D,onFocus:p,placeholder:l.lock===1?"泡泡已被锁定,回复功能已关闭":"快来评论两句吧..."},null,8,["options","loading","value","disabled","placeholder"])]),g.value?(o(),U(de,{key:0,ref_key:"uploadRef",ref:R,abstract:"","list-type":"image",multiple:!0,max:9,action:b,headers:{Authorization:A.value},data:{type:I.value},"file-list":v.value,onBeforeUpload:P,onFinish:S,onError:K,onRemove:s,"onUpdate:fileList":F},{default:n(()=>[m("div",ks,[m("div",ws,[e(G,{abstract:""},{default:n(({handleClick:q})=>[e(E,{disabled:v.value.length>0&&I.value==="public/video"||v.value.length===9,onClick:()=>{B("public/image"),q()},quaternary:"",circle:"",type:"primary"},{icon:n(()=>[e(O,{size:"20",color:"var(--primary-color)"},{default:n(()=>[e(a(Qe))]),_:1})]),_:2},1032,["disabled","onClick"])]),_:1}),e(oe,{trigger:"hover",placement:"bottom"},{trigger:n(()=>[e(_e,{class:"text-statistic",type:"circle","show-indicator":!1,status:"success","stroke-width":10,percentage:_.value.length/a(k)*100},null,8,["percentage"])]),default:n(()=>[z(" "+T(_.value.length)+" / "+T(a(k)),1)]),_:1})]),m("div",bs,[e(E,{quaternary:"",round:"",type:"tertiary",class:"cancel-btn",size:"small",onClick:H},{default:n(()=>[z(" 取消 ")]),_:1}),e(E,{loading:L.value,onClick:J,type:"primary",secondary:"",size:"small",round:""},{default:n(()=>[z(" 发布 ")]),_:1},8,["loading"])])]),m("div",$s,[e(pe)])]),_:1},8,["headers","data","file-list"])):i("",!0)])):(o(),u("div",Cs,[xs,t.value?i("",!0):(o(),u("div",Is,[e(E,{strong:"",secondary:"",round:"",type:"primary",onClick:h[0]||(h[0]=q=>Y("signin"))},{default:n(()=>[z(" 登录 ")]),_:1})])),t.value?(o(),u("div",Ts,[e(E,{strong:"",secondary:"",round:"",type:"primary",onClick:h[1]||(h[1]=q=>Y("signin"))},{default:n(()=>[z(" 登录 ")]),_:1}),e(E,{strong:"",secondary:"",round:"",type:"info",onClick:h[2]||(h[2]=q=>Y("signup"))},{default:n(()=>[z(" 注册 ")]),_:1})])):i("",!0)]))])}}});const Us=ee(zs,[["__scopeId","data-v-bd19dbe6"]]),Ps={class:"username-wrap"},Rs={key:0,class:"options"},Ss={key:0},Ls=["innerHTML"],As={class:"timestamp"},Ds={key:0},Ms={key:1},qs={class:"opts-wrap"},Ns=["onClick"],Os={class:"opt-item"},js=["onClick"],Bs=["onClick"],Es=Q({__name:"post-detail",props:{post:{}},emits:["reload"],setup(M,{emit:N}){const l=M,r=X(),f=ze(),g=c(!1),y=c(!1),L=c(!1),_=c(!1),R=c(!1),I=c(!1),v=c(!1),w=c(W.PUBLIC),t=ne({get:()=>{let s=Object.assign({texts:[],imgs:[],videos:[],links:[],attachments:[],charge_attachments:[]},l.post);return s.contents.map(p=>{(+p.type==1||+p.type==2)&&s.texts.push(p),+p.type==3&&s.imgs.push(p),+p.type==4&&s.videos.push(p),+p.type==6&&s.links.push(p),+p.type==7&&s.attachments.push(p),+p.type==8&&s.charge_attachments.push(p)}),s},set:s=>{l.post.upvote_count=s.upvote_count,l.post.comment_count=s.comment_count,l.post.collection_count=s.collection_count}}),k=ne(()=>{let s=[{label:"删除",key:"delete"}];return t.value.is_lock===0?s.push({label:"锁定",key:"lock"}):s.push({label:"解锁",key:"unlock"}),r.state.userInfo.is_admin&&(t.value.is_top===0?s.push({label:"置顶",key:"stick"}):s.push({label:"取消置顶",key:"unstick"})),t.value.visibility===W.PUBLIC?s.push({label:"公开",key:"vpublic",children:[{label:"私密",key:"vprivate"},{label:"好友可见",key:"vfriend"}]}):t.value.visibility===W.PRIVATE?s.push({label:"私密",key:"vprivate",children:[{label:"公开",key:"vpublic"},{label:"好友可见",key:"vfriend"}]}):s.push({label:"好友可见",key:"vfriend",children:[{label:"公开",key:"vpublic"},{label:"私密",key:"vprivate"}]}),s}),b=s=>{f.push({name:"post",query:{id:s}})},A=(s,p)=>{if(s.target.dataset.detail){const H=s.target.dataset.detail.split(":");if(H.length===2){r.commit("refresh"),H[0]==="tag"?f.push({name:"home",query:{q:H[1],t:"tag"}}):f.push({name:"user",query:{username:H[1]}});return}}b(p)},$=s=>{switch(s){case"delete":L.value=!0;break;case"lock":case"unlock":_.value=!0;break;case"stick":case"unstick":R.value=!0;break;case"vpublic":w.value=0,I.value=!0;break;case"vprivate":w.value=1,I.value=!0;break;case"vfriend":w.value=2,I.value=!0;break}},D=()=>{Ve({id:t.value.id}).then(s=>{window.$message.success("删除成功"),f.replace("/"),setTimeout(()=>{r.commit("refresh")},50)}).catch(s=>{v.value=!1})},j=()=>{He({id:t.value.id}).then(s=>{N("reload"),s.lock_status===1?window.$message.success("锁定成功"):window.$message.success("解锁成功")}).catch(s=>{v.value=!1})},B=()=>{Fe({id:t.value.id}).then(s=>{N("reload"),s.top_status===1?window.$message.success("置顶成功"):window.$message.success("取消置顶成功")}).catch(s=>{v.value=!1})},F=()=>{Ye({id:t.value.id,visibility:w.value}).then(s=>{N("reload"),window.$message.success("修改可见性成功")}).catch(s=>{v.value=!1})},P=()=>{Ke({id:t.value.id}).then(s=>{g.value=s.status,s.status?t.value={...t.value,upvote_count:t.value.upvote_count+1}:t.value={...t.value,upvote_count:t.value.upvote_count-1}}).catch(s=>{console.log(s)})},S=()=>{Je({id:t.value.id}).then(s=>{y.value=s.status,s.status?t.value={...t.value,collection_count:t.value.collection_count+1}:t.value={...t.value,collection_count:t.value.collection_count-1}}).catch(s=>{console.log(s)})},K=()=>{zt(`${window.location.origin}/#/post?id=${t.value.id}`),window.$message.success("链接已复制到剪贴板")};return ve(()=>{r.state.userInfo.id>0&&(Be({id:t.value.id}).then(s=>{g.value=s.status}).catch(s=>{console.log(s)}),Ee({id:t.value.id}).then(s=>{y.value=s.status}).catch(s=>{console.log(s)}))}),(s,p)=>{const H=fe,J=me("router-link"),Y=pt,d=te,h=se,C=dt,x=mt,O=bt,E=Te,G=$t,_e=Ct,oe=vt,pe=Ie,de=xe;return o(),u("div",{class:"detail-item",onClick:p[6]||(p[6]=q=>b(t.value.id))},[e(de,null,{avatar:n(()=>[e(H,{round:"",size:30,src:t.value.user.avatar},null,8,["src"])]),header:n(()=>[e(J,{onClick:p[0]||(p[0]=V(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:t.value.user.username}}},{default:n(()=>[z(T(t.value.user.nickname),1)]),_:1},8,["to"]),m("span",Ps," @"+T(t.value.user.username),1),t.value.is_top?(o(),U(Y,{key:0,class:"top-tag",type:"warning",size:"small",round:""},{default:n(()=>[z(" 置顶 ")]),_:1})):i("",!0),t.value.visibility==a(W).PRIVATE?(o(),U(Y,{key:1,class:"top-tag",type:"error",size:"small",round:""},{default:n(()=>[z(" 私密 ")]),_:1})):i("",!0),t.value.visibility==a(W).FRIEND?(o(),U(Y,{key:2,class:"top-tag",type:"info",size:"small",round:""},{default:n(()=>[z(" 好友可见 ")]),_:1})):i("",!0)]),"header-extra":n(()=>[a(r).state.userInfo.is_admin||a(r).state.userInfo.id===t.value.user.id?(o(),u("div",Rs,[e(C,{placement:"bottom-end",trigger:"click",size:"small",options:k.value,onSelect:$},{default:n(()=>[e(h,{quaternary:"",circle:""},{icon:n(()=>[e(d,null,{default:n(()=>[e(a(We))]),_:1})]),_:1})]),_:1},8,["options"])])):i("",!0),e(x,{show:L.value,"onUpdate:show":p[1]||(p[1]=q=>L.value=q),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定删除该泡泡动态吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:D},null,8,["show"]),e(x,{show:_.value,"onUpdate:show":p[2]||(p[2]=q=>_.value=q),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定"+(t.value.is_lock?"解锁":"锁定")+"该泡泡动态吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:j},null,8,["show","content"]),e(x,{show:R.value,"onUpdate:show":p[3]||(p[3]=q=>R.value=q),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定"+(t.value.is_top?"取消置顶":"置顶")+"该泡泡动态吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:B},null,8,["show","content"]),e(x,{show:I.value,"onUpdate:show":p[4]||(p[4]=q=>I.value=q),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定将该泡泡动态可见度修改为"+(w.value==0?"公开":w.value==1?"私密":"好友可见")+"吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:F},null,8,["show","content"])]),footer:n(()=>[e(O,{attachments:t.value.attachments},null,8,["attachments"]),e(O,{attachments:t.value.charge_attachments,price:t.value.attachment_price},null,8,["attachments","price"]),e(E,{imgs:t.value.imgs},null,8,["imgs"]),e(G,{videos:t.value.videos,full:!0},null,8,["videos"]),e(_e,{links:t.value.links},null,8,["links"]),m("div",As,[z(" 发布于 "+T(a(ie)(t.value.created_on))+" ",1),t.value.ip_loc?(o(),u("span",Ds,[e(oe,{vertical:""}),z(" "+T(t.value.ip_loc),1)])):i("",!0),!a(r).state.collapsedLeft&&t.value.created_on!=t.value.latest_replied_on?(o(),u("span",Ms,[e(oe,{vertical:""}),z(" 最后回复 "+T(a(ie)(t.value.latest_replied_on)),1)])):i("",!0)])]),action:n(()=>[m("div",qs,[e(pe,{justify:"space-between"},{default:n(()=>[m("div",{class:"opt-item hover",onClick:V(P,["stop"])},[e(d,{size:"20",class:"opt-item-icon"},{default:n(()=>[g.value?i("",!0):(o(),U(a(Ze),{key:0})),g.value?(o(),U(a(Xe),{key:1,color:"red"})):i("",!0)]),_:1}),z(" "+T(t.value.upvote_count),1)],8,Ns),m("div",Os,[e(d,{size:"20",class:"opt-item-icon"},{default:n(()=>[e(a(et))]),_:1}),z(" "+T(t.value.comment_count),1)]),m("div",{class:"opt-item hover",onClick:V(S,["stop"])},[e(d,{size:"20",class:"opt-item-icon"},{default:n(()=>[y.value?i("",!0):(o(),U(a(tt),{key:0})),y.value?(o(),U(a(st),{key:1,color:"#ff7600"})):i("",!0)]),_:1}),z(" "+T(t.value.collection_count),1)],8,js),m("div",{class:"opt-item hover",onClick:V(K,["stop"])},[e(d,{size:"20",class:"opt-item-icon"},{default:n(()=>[e(a(ot))]),_:1}),z(" "+T(t.value.share_count),1)],8,Bs)]),_:1})])]),default:n(()=>[t.value.texts.length>0?(o(),u("div",Ss,[(o(!0),u(ae,null,le(t.value.texts,q=>(o(),u("span",{key:q.id,class:"post-text",onClick:p[5]||(p[5]=V(Ue=>A(Ue,t.value.id),["stop"])),innerHTML:a(he)(q.content).content},null,8,Ls))),128))])):i("",!0)]),_:1})])}}});const Vs=M=>(ye("data-v-0d01659f"),M=M(),ke(),M),Hs={key:0,class:"detail-wrap"},Fs={key:1,class:"empty-wrap"},Ys={key:0,class:"comment-opts-wrap"},Ks=Vs(()=>m("span",{class:"comment-title-item"},"评论",-1)),Js={key:2},Gs={key:0,class:"skeleton-wrap"},Qs={key:1},Ws={key:0,class:"empty-wrap"},Zs={key:0,class:"load-more-spinner"},Xs={key:1,class:"load-more-spinner"},eo={key:2,class:"load-more-spinner"},to={key:3,class:"load-more-spinner"},Z=20,so=Q({__name:"Post",setup(M){const N=xt(),l=c({}),r=c(!1),f=c(!1),g=c([]),y=ne(()=>+N.query.id),L=c("default"),_=c(!0);let R={loading(){},loaded(){},complete(){},error(){}};const I=P=>{L.value=P,P==="default"&&(_.value=!0),B(R)},v=()=>{l.value={id:0},r.value=!0,Ge({id:y.value}).then(P=>{r.value=!1,l.value=P,B(R)}).catch(P=>{r.value=!1})};let w=1;const t=c(!1),k=c([]),b=P=>{t.value||ge({id:l.value.id,sort_strategy:"default",page:w,page_size:Z}).then(S=>{P!==null&&(R=P),S.list.length0&&(w===1?k.value=S.list:k.value.push(...S.list),g.value=k.value),R.loaded(),f.value=!1}).catch(S=>{f.value=!1,R.error()})};let A=1,$=c(!1);const D=c([]),j=P=>{$.value||ge({id:l.value.id,sort_strategy:"newest",page:A,page_size:Z}).then(S=>{P!==null&&(R=P),S.list.length0&&(A===1?D.value=S.list:D.value.push(...S.list),g.value=D.value),R.loaded(),f.value=!1}).catch(S=>{f.value=!1,R.error()})},B=P=>{y.value<1||(g.value.length===0&&(f.value=!0),L.value==="default"?(g.value=k.value,b(P)):(g.value=D.value,j(P)),f.value=!1)},F=()=>{w=1,t.value=!1,k.value=[],A=1,$.value=!1,D.value=[],B(R)};return ve(()=>{v()}),Re(y,()=>{y.value>0&&N.name==="post"&&v()}),(P,S)=>{const K=Ut,s=Es,p=ht,H=gt,J=yt,Y=kt,d=wt,h=Us,C=It,x=vs,O=Ie,E=ft;return o(),u("div",null,[e(K,{title:"泡泡详情",back:!0}),e(E,{class:"main-content-wrap",bordered:""},{default:n(()=>[e(J,null,{default:n(()=>[e(H,{show:r.value},{default:n(()=>[l.value.id>1?(o(),u("div",Hs,[e(s,{post:l.value,onReload:v},null,8,["post"])])):(o(),u("div",Fs,[e(p,{size:"large",description:"暂无数据"})]))]),_:1},8,["show"])]),_:1}),l.value.id>0?(o(),u("div",Ys,[e(d,{type:"bar","justify-content":"end",size:"small",animated:"","onUpdate:value":I},{prefix:n(()=>[Ks]),default:n(()=>[e(Y,{name:"default",tab:"默认"}),e(Y,{name:"newest",tab:"最新"})]),_:1})])):i("",!0),l.value.id>0?(o(),U(J,{key:1},{default:n(()=>[e(h,{lock:l.value.is_lock,"post-id":l.value.id,onPostSuccess:F},null,8,["lock","post-id"])]),_:1})):i("",!0),l.value.id>0?(o(),u("div",Js,[f.value?(o(),u("div",Gs,[e(C,{num:5})])):(o(),u("div",Qs,[g.value.length===0?(o(),u("div",Ws,[e(p,{size:"large",description:"暂无评论,快来抢沙发"})])):i("",!0),(o(!0),u(ae,null,le(g.value,G=>(o(),U(J,{key:G.id},{default:n(()=>[e(x,{comment:G,onReload:F},null,8,["comment"])]),_:2},1024))),128))]))])):i("",!0),g.value.length>=Z?(o(),U(O,{key:3,justify:"center"},{default:n(()=>[e(a(Pt),{class:"load-more",slots:{complete:"没有更多数据了",error:"加载出错"},onInfinite:B},{spinner:n(()=>[_.value&&t.value?(o(),u("span",Zs)):i("",!0),!_.value&&a($)?(o(),u("span",Xs)):i("",!0),_.value&&!t.value?(o(),u("span",eo,"加载评论")):i("",!0),!_.value&&!a($)?(o(),u("span",to,"加载评论")):i("",!0)]),_:1})]),_:1})):i("",!0)]),_:1})])}}});const Mo=ee(so,[["__scopeId","data-v-0d01659f"]]);export{Mo as default}; diff --git a/web/dist/assets/Profile-8f13b93f.js b/web/dist/assets/Profile-536bb0b1.js similarity index 75% rename from web/dist/assets/Profile-8f13b93f.js rename to web/dist/assets/Profile-536bb0b1.js index b60d807a..b9a9ed0c 100644 --- a/web/dist/assets/Profile-8f13b93f.js +++ b/web/dist/assets/Profile-536bb0b1.js @@ -1 +1 @@ -import{_ as M,a as V}from"./post-item.vue_vue_type_style_index_0_lang-f7f6062b.js";import{_ as D}from"./post-skeleton-3fdfd3d1.js";import{_ as L}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{u as R}from"./vuex-613b371d.js";import{b as j}from"./vue-router-8af5a3a6.js";import{A as q,_ as A}from"./index-43cab287.js";import{d as E,r,j as G,c as e,U as o,Z as n,P as f,a0 as c,N as v,o as t,a,L as g,F as y,a3 as w}from"./@vue-b8d06722.js";import{F as H,G as T,o as Z,f as J,g as K,I as O,H as Q}from"./naive-ui-374a973f.js";import"./content-bfe7958f.js";import"./@vicons-7ee3dafd.js";import"./paopao-video-player-b4739fc7.js";import"./formatTime-000dbebb.js";import"./moment-b7869f98.js";import"./copy-to-clipboard-1dd3075d.js";import"./toggle-selection-93f4ad84.js";import"./vooks-423a5f30.js";import"./evtd-b614532e.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./@css-render-4f82e6dd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";const W={class:"profile-baseinfo"},X={class:"avatar"},Y={class:"base-info"},tt={class:"username"},et={class:"uid"},ot={key:0,class:"skeleton-wrap"},st={key:1},nt={key:0,class:"empty-wrap"},at={key:1},_t={key:2},it={key:1,class:"pagination-wrap"},rt=E({__name:"Profile",setup(pt){const s=R(),b=j(),p=r(!1),l=r([]),u=r(+b.query.p||1),m=r(20),d=r(0),h=()=>{p.value=!0,q({username:s.state.userInfo.username,page:u.value,page_size:m.value}).then(_=>{p.value=!1,l.value=_.list,d.value=Math.ceil(_.pager.total_rows/m.value),window.scrollTo(0,0)}).catch(_=>{p.value=!1})},I=_=>{u.value=_,h()};return G(()=>{h()}),(_,lt)=>{const P=L,x=Z,z=J,B=K,N=D,S=O,U=M,k=Q,$=V,C=H,F=T;return t(),e("div",null,[o(P,{title:"主页"}),n(s).state.userInfo.id>0?(t(),f(C,{key:0,class:"main-content-wrap profile-wrap",bordered:""},{default:c(()=>[a("div",W,[a("div",X,[o(x,{size:"large",src:n(s).state.userInfo.avatar},null,8,["src"])]),a("div",Y,[a("div",tt,[a("strong",null,g(n(s).state.userInfo.nickname),1),a("span",null," @"+g(n(s).state.userInfo.username),1)]),a("div",et,"UID. "+g(n(s).state.userInfo.id),1)])]),o(B,{class:"profile-tabs-wrap",animated:""},{default:c(()=>[o(z,{name:"post",tab:"泡泡"})]),_:1}),p.value?(t(),e("div",ot,[o(N,{num:m.value},null,8,["num"])])):(t(),e("div",st,[l.value.length===0?(t(),e("div",nt,[o(S,{size:"large",description:"暂无数据"})])):v("",!0),n(s).state.desktopModelShow?(t(),e("div",at,[(t(!0),e(y,null,w(l.value,i=>(t(),f(k,{key:i.id},{default:c(()=>[o(U,{post:i},null,8,["post"])]),_:2},1024))),128))])):(t(),e("div",_t,[(t(!0),e(y,null,w(l.value,i=>(t(),f(k,{key:i.id},{default:c(()=>[o($,{post:i},null,8,["post"])]),_:2},1024))),128))]))]))]),_:1})):v("",!0),d.value>0?(t(),e("div",it,[o(F,{page:u.value,"onUpdate:page":I,"page-slot":n(s).state.collapsedRight?5:8,"page-count":d.value},null,8,["page","page-slot","page-count"])])):v("",!0)])}}});const At=A(rt,[["__scopeId","data-v-1f072d05"]]);export{At as default}; +import{_ as M,a as V}from"./post-item.vue_vue_type_style_index_0_lang-bc760886.js";import{_ as D}from"./post-skeleton-49f18127.js";import{_ as L}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{u as R}from"./vuex-4d2f7b35.js";import{b as j}from"./vue-router-29e6667f.js";import{A as q,_ as A}from"./index-5fa3c6e0.js";import{d as E,r,j as G,c as e,U as o,Z as n,P as f,a0 as c,N as v,o as t,a,L as g,F as y,a3 as w}from"./@vue-d002002f.js";import{F as H,G as T,o as Z,f as J,g as K,I as O,H as Q}from"./naive-ui-d02aa0d7.js";import"./content-1ad34d0c.js";import"./@vicons-4022100b.js";import"./paopao-video-player-d47e9bf6.js";import"./formatTime-000dbebb.js";import"./moment-b7869f98.js";import"./copy-to-clipboard-1dd3075d.js";import"./toggle-selection-93f4ad84.js";import"./vooks-77bdadbd.js";import"./evtd-b614532e.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./@css-render-6b6cdab1.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";const W={class:"profile-baseinfo"},X={class:"avatar"},Y={class:"base-info"},tt={class:"username"},et={class:"uid"},ot={key:0,class:"skeleton-wrap"},st={key:1},nt={key:0,class:"empty-wrap"},at={key:1},_t={key:2},it={key:1,class:"pagination-wrap"},rt=E({__name:"Profile",setup(pt){const s=R(),b=j(),p=r(!1),l=r([]),u=r(+b.query.p||1),m=r(20),d=r(0),h=()=>{p.value=!0,q({username:s.state.userInfo.username,page:u.value,page_size:m.value}).then(_=>{p.value=!1,l.value=_.list,d.value=Math.ceil(_.pager.total_rows/m.value),window.scrollTo(0,0)}).catch(_=>{p.value=!1})},I=_=>{u.value=_,h()};return G(()=>{h()}),(_,lt)=>{const P=L,x=Z,z=J,B=K,N=D,S=O,U=M,k=Q,$=V,C=H,F=T;return t(),e("div",null,[o(P,{title:"主页"}),n(s).state.userInfo.id>0?(t(),f(C,{key:0,class:"main-content-wrap profile-wrap",bordered:""},{default:c(()=>[a("div",W,[a("div",X,[o(x,{size:"large",src:n(s).state.userInfo.avatar},null,8,["src"])]),a("div",Y,[a("div",tt,[a("strong",null,g(n(s).state.userInfo.nickname),1),a("span",null," @"+g(n(s).state.userInfo.username),1)]),a("div",et,"UID. "+g(n(s).state.userInfo.id),1)])]),o(B,{class:"profile-tabs-wrap",animated:""},{default:c(()=>[o(z,{name:"post",tab:"泡泡"})]),_:1}),p.value?(t(),e("div",ot,[o(N,{num:m.value},null,8,["num"])])):(t(),e("div",st,[l.value.length===0?(t(),e("div",nt,[o(S,{size:"large",description:"暂无数据"})])):v("",!0),n(s).state.desktopModelShow?(t(),e("div",at,[(t(!0),e(y,null,w(l.value,i=>(t(),f(k,{key:i.id},{default:c(()=>[o(U,{post:i},null,8,["post"])]),_:2},1024))),128))])):(t(),e("div",_t,[(t(!0),e(y,null,w(l.value,i=>(t(),f(k,{key:i.id},{default:c(()=>[o($,{post:i},null,8,["post"])]),_:2},1024))),128))]))]))]),_:1})):v("",!0),d.value>0?(t(),e("div",it,[o(F,{page:u.value,"onUpdate:page":I,"page-slot":n(s).state.collapsedRight?5:8,"page-count":d.value},null,8,["page","page-slot","page-count"])])):v("",!0)])}}});const At=A(rt,[["__scopeId","data-v-1f072d05"]]);export{At as default}; diff --git a/web/dist/assets/Setting-8c94862d.js b/web/dist/assets/Setting-8c94862d.js deleted file mode 100644 index 94122bab..00000000 --- a/web/dist/assets/Setting-8c94862d.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as we}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{d as ye,r as d,D as H,j as ke,c as g,U as t,a0 as s,P as b,N as _,o as r,a as m,Z as u,e as c,L as R,z as be,v as Ce,O as q,a1 as B,V as Ie,W as $e}from"./@vue-b8d06722.js";import{u as Pe}from"./vuex-613b371d.js";import{S as Q,T as Ue,U as Se,V as Re,W as qe,X as Be,Y as Ae,_ as Ne}from"./index-43cab287.js";import{x as ze}from"./@vicons-7ee3dafd.js";import{h as Ke,o as xe,e as De,B as Fe,b as Ve,j as Te,S as je,$ as Oe,K as Ee,a0 as Le,a1 as We,d as Me}from"./naive-ui-374a973f.js";import"./vue-router-8af5a3a6.js";import"./vooks-423a5f30.js";import"./evtd-b614532e.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./@css-render-4f82e6dd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";const V=A=>(Ie("data-v-a681720e"),A=A(),$e(),A),Ge={class:"base-line avatar"},Je={class:"base-line"},Xe=V(()=>m("span",{class:"base-label"},"昵称",-1)),Ye={key:0},Ze={class:"base-line"},He=V(()=>m("span",{class:"base-label"},"用户名",-1)),Qe={key:0},et={key:1},tt=V(()=>m("br",null,null,-1)),at={key:2,class:"phone-bind-wrap"},st={class:"captcha-img-wrap"},nt={class:"captcha-img"},ot=["src"],lt={class:"form-submit-wrap"},rt={key:0},it={key:1},ut=V(()=>m("br",null,null,-1)),dt={key:2,class:"phone-bind-wrap"},ct={class:"captcha-img-wrap"},pt={class:"captcha-img"},_t=["src"],mt={class:"form-submit-wrap"},vt={key:1,class:"phone-bind-wrap"},ft={class:"form-submit-wrap"},gt=ye({__name:"Setting",setup(A){const ee="/v1/attachment",te="Bearer "+localStorage.getItem("PAOPAO_TOKEN"),N=d("public/avatar"),$="true".toLowerCase()==="true",ae="false".toLowerCase()==="true",o=Pe(),P=d(!1),z=d(!1),K=d(!1),W=d(),M=d(),C=d(!1),x=d(!1),U=d(!1),S=d(!1),I=d(60),y=d(!1),k=d(!1),G=d(),J=d(),X=d(),Y=d(),a=H({id:"",b64s:"",imgCaptcha:"",phone:"",phone_captcha:"",password:"",old_password:"",reenteredPassword:""}),i=H({id:"",b64s:"",imgCaptcha:"",activate_code:""}),se=async n=>{var e,v;return N.value==="public/avatar"&&!["image/png","image/jpg","image/jpeg"].includes((e=n.file.file)==null?void 0:e.type)?(window.$message.warning("头像仅允许 png/jpg 格式"),!1):N.value==="image"&&((v=n.file.file)==null?void 0:v.size)>1048576?(window.$message.warning("头像大小不能超过1MB"),!1):!0},ne=({file:n,event:e})=>{var v;try{let f=JSON.parse((v=e.target)==null?void 0:v.response);f.code===0&&N.value==="public/avatar"&&Ue({avatar:f.data.content}).then(p=>{var D;window.$message.success("头像更新成功"),(D=W.value)==null||D.clear(),o.commit("updateUserinfo",{...o.state.userInfo,avatar:f.data.content})}).catch(p=>{console.log(p)})}catch{window.$message.error("上传失败")}},oe=(n,e)=>!!a.password&&a.password.startsWith(e)&&a.password.length>=e.length,le=(n,e)=>e===a.password,re=()=>{var n;a.reenteredPassword&&((n=Y.value)==null||n.validate({trigger:"password-input"}))},ie=n=>{var e;n.preventDefault(),(e=X.value)==null||e.validate(v=>{v||(x.value=!0,Se({password:a.password,old_password:a.old_password}).then(f=>{x.value=!1,U.value=!1,window.$message.success("密码重置成功"),o.commit("userLogout"),o.commit("triggerAuth",!0),o.commit("triggerAuthKey","signin")}).catch(f=>{x.value=!1}))})},ue=n=>{var e;n.preventDefault(),(e=G.value)==null||e.validate(v=>{v||(z.value=!0,Re({phone:a.phone,captcha:a.phone_captcha}).then(f=>{z.value=!1,y.value=!1,window.$message.success("绑定成功"),o.commit("updateUserinfo",{...o.state.userInfo,phone:a.phone}),a.id="",a.b64s="",a.imgCaptcha="",a.phone="",a.phone_captcha=""}).catch(f=>{z.value=!1}))})},de=n=>{var e;n.preventDefault(),(e=J.value)==null||e.validate(v=>{if(i.imgCaptcha===""){window.$message.warning("请输入图片验证码");return}P.value=!0,v||(K.value=!0,qe({activate_code:i.activate_code,captcha_id:i.id,imgCaptcha:i.imgCaptcha}).then(f=>{K.value=!1,k.value=!1,window.$message.success("激活成功"),o.commit("updateUserinfo",{...o.state.userInfo,activation:i.activate_code}),i.id="",i.b64s="",i.imgCaptcha="",i.activate_code=""}).catch(f=>{K.value=!1,f.code===20012&&j()}))})},T=()=>{Q().then(n=>{a.id=n.id,a.b64s=n.b64s}).catch(n=>{console.log(n)})},j=()=>{Q().then(n=>{i.id=n.id,i.b64s=n.b64s}).catch(n=>{console.log(n)})},ce=()=>{Be({nickname:o.state.userInfo.nickname||""}).then(n=>{C.value=!1,window.$message.success("昵称修改成功")}).catch(n=>{C.value=!0})},pe=()=>{if(!(I.value>0&&S.value)){if(a.imgCaptcha===""){window.$message.warning("请输入图片验证码");return}P.value=!0,Ae({phone:a.phone,img_captcha:a.imgCaptcha,img_captcha_id:a.id}).then(n=>{S.value=!0,P.value=!1,window.$message.success("发送成功");let e=setInterval(()=>{I.value--,I.value===0&&(clearInterval(e),I.value=60,S.value=!1)},1e3)}).catch(n=>{P.value=!1,n.code===20012&&T(),console.log(n)})}},_e={phone:[{required:!0,message:"请输入手机号",trigger:["input"],validator:(n,e)=>/^[1]+[3-9]{1}\d{9}$/.test(e)}],phone_captcha:[{required:!0,message:"请输入手机验证码"}]},me={activate_code:[{required:!0,message:"请输入激活码",trigger:["input"],validator:(n,e)=>/\d{6}$/.test(e)}]},ve={password:[{required:!0,message:"请输入新密码"}],old_password:[{required:!0,message:"请输入旧密码"}],reenteredPassword:[{required:!0,message:"请再次输入密码",trigger:["input","blur"]},{validator:oe,message:"两次密码输入不一致",trigger:"input"},{validator:le,message:"两次密码输入不一致",trigger:["blur","password-input"]}]},fe=()=>{C.value=!0,setTimeout(()=>{var n;(n=M.value)==null||n.focus()},30)};return ke(()=>{o.state.userInfo.id===0&&(o.commit("triggerAuth",!0),o.commit("triggerAuthKey","signin")),T(),j()}),(n,e)=>{const v=we,f=xe,p=De,D=Fe,h=Ve,ge=Te,F=Ke,Z=je,w=Oe,he=Ee,O=Le,E=We,L=Me;return r(),g("div",null,[t(v,{title:"设置",theme:""}),t(F,{title:"基本信息",size:"small",class:"setting-card"},{default:s(()=>[m("div",Ge,[t(f,{class:"avatar-img",size:80,src:u(o).state.userInfo.avatar},null,8,["src"]),!$||$&&u(o).state.userInfo.phone&&u(o).state.userInfo.phone.length>0?(r(),b(D,{key:0,ref_key:"avatarRef",ref:W,action:ee,headers:{Authorization:te},data:{type:N.value},onBeforeUpload:se,onFinish:ne},{default:s(()=>[t(p,{size:"small"},{default:s(()=>[c("更改头像")]),_:1})]),_:1},8,["headers","data"])):_("",!0)]),m("div",Je,[Xe,C.value?_("",!0):(r(),g("div",Ye,R(u(o).state.userInfo.nickname),1)),be(t(h,{ref_key:"inputInstRef",ref:M,class:"nickname-input",value:u(o).state.userInfo.nickname,"onUpdate:value":e[0]||(e[0]=l=>u(o).state.userInfo.nickname=l),type:"text",size:"small",placeholder:"请输入昵称",onBlur:ce,maxlength:16},null,8,["value"]),[[Ce,C.value]]),!C.value&&(!$||$&&u(o).state.userInfo.phone&&u(o).state.userInfo.phone.length>0&&u(o).state.userInfo.status==1)?(r(),b(p,{key:1,quaternary:"",round:"",type:"success",size:"small",onClick:fe},{icon:s(()=>[t(ge,null,{default:s(()=>[t(u(ze))]),_:1})]),_:1})):_("",!0)]),m("div",Ze,[He,c(" @"+R(u(o).state.userInfo.username),1)])]),_:1}),$?(r(),b(F,{key:0,title:"手机号",size:"small",class:"setting-card"},{default:s(()=>[u(o).state.userInfo.phone&&u(o).state.userInfo.phone.length>0?(r(),g("div",Qe,[c(R(u(o).state.userInfo.phone)+" ",1),!y.value&&u(o).state.userInfo.status==1?(r(),b(p,{key:0,quaternary:"",round:"",type:"success",onClick:e[1]||(e[1]=l=>y.value=!0)},{default:s(()=>[c(" 换绑手机 ")]),_:1})):_("",!0)])):(r(),g("div",et,[t(Z,{title:"手机绑定提示",type:"warning"},{default:s(()=>[c(" 成功绑定手机后,才能进行换头像、发动态、回复等交互~"),tt,y.value?_("",!0):(r(),g("a",{key:0,class:"hash-link",onClick:e[2]||(e[2]=l=>y.value=!0)}," 立即绑定 "))]),_:1})])),y.value?(r(),g("div",at,[t(L,{ref_key:"phoneFormRef",ref:G,model:a,rules:_e},{default:s(()=>[t(w,{path:"phone",label:"手机号"},{default:s(()=>[t(h,{value:a.phone,"onUpdate:value":e[3]||(e[3]=l=>a.phone=l.trim()),placeholder:"请输入中国大陆手机号",onKeydown:e[4]||(e[4]=q(B(()=>{},["prevent"]),["enter"]))},null,8,["value"])]),_:1}),t(w,{path:"img_captcha",label:"图形验证码"},{default:s(()=>[m("div",st,[t(h,{value:a.imgCaptcha,"onUpdate:value":e[5]||(e[5]=l=>a.imgCaptcha=l),placeholder:"请输入图形验证码后获取验证码"},null,8,["value"]),m("div",nt,[a.b64s?(r(),g("img",{key:0,src:a.b64s,onClick:T},null,8,ot)):_("",!0)])])]),_:1}),t(w,{path:"phone_captcha",label:"短信验证码"},{default:s(()=>[t(he,null,{default:s(()=>[t(h,{value:a.phone_captcha,"onUpdate:value":e[6]||(e[6]=l=>a.phone_captcha=l),placeholder:"请输入收到的短信验证码"},null,8,["value"]),t(p,{type:"primary",ghost:"",disabled:S.value,loading:P.value,onClick:pe},{default:s(()=>[c(R(I.value>0&&S.value?I.value+"s后重新发送":"发送验证码"),1)]),_:1},8,["disabled","loading"])]),_:1})]),_:1}),t(E,{gutter:[0,24]},{default:s(()=>[t(O,{span:24},{default:s(()=>[m("div",lt,[t(p,{quaternary:"",round:"",onClick:e[7]||(e[7]=l=>y.value=!1)},{default:s(()=>[c(" 取消 ")]),_:1}),t(p,{secondary:"",round:"",type:"primary",loading:z.value,onClick:ue},{default:s(()=>[c(" 绑定 ")]),_:1},8,["loading"])])]),_:1})]),_:1})]),_:1},8,["model"])])):_("",!0)]),_:1})):_("",!0),ae?(r(),b(F,{key:1,title:"激活码",size:"small",class:"setting-card"},{default:s(()=>[u(o).state.userInfo.activation&&u(o).state.userInfo.activation.length>0?(r(),g("div",rt,[c(R(u(o).state.userInfo.activation)+" ",1),k.value?_("",!0):(r(),b(p,{key:0,quaternary:"",round:"",type:"success",onClick:e[8]||(e[8]=l=>k.value=!0)},{default:s(()=>[c(" 重新激活 ")]),_:1}))])):(r(),g("div",it,[t(Z,{title:"激活码激活提示",type:"warning"},{default:s(()=>[c(" 成功激活后后,才能发(公开/好友可见)动态、回复~"),ut,k.value?_("",!0):(r(),g("a",{key:0,class:"hash-link",onClick:e[9]||(e[9]=l=>k.value=!0)}," 立即激活 "))]),_:1})])),k.value?(r(),g("div",dt,[t(L,{ref_key:"activateFormRef",ref:J,model:i,rules:me},{default:s(()=>[t(w,{path:"activate_code",label:"激活码"},{default:s(()=>[t(h,{value:i.activate_code,"onUpdate:value":e[10]||(e[10]=l=>i.activate_code=l.trim()),placeholder:"请输入激活码",onKeydown:e[11]||(e[11]=q(B(()=>{},["prevent"]),["enter"]))},null,8,["value"])]),_:1}),t(w,{path:"img_captcha",label:"图形验证码"},{default:s(()=>[m("div",ct,[t(h,{value:i.imgCaptcha,"onUpdate:value":e[12]||(e[12]=l=>i.imgCaptcha=l),placeholder:"请输入图形验证码后获取验证码"},null,8,["value"]),m("div",pt,[i.b64s?(r(),g("img",{key:0,src:i.b64s,onClick:j},null,8,_t)):_("",!0)])])]),_:1}),t(E,{gutter:[0,24]},{default:s(()=>[t(O,{span:24},{default:s(()=>[m("div",mt,[t(p,{quaternary:"",round:"",onClick:e[13]||(e[13]=l=>k.value=!1)},{default:s(()=>[c(" 取消 ")]),_:1}),t(p,{secondary:"",round:"",type:"primary",loading:K.value,onClick:de},{default:s(()=>[c(" 激活 ")]),_:1},8,["loading"])])]),_:1})]),_:1})]),_:1},8,["model"])])):_("",!0)]),_:1})):_("",!0),t(F,{title:"账户安全",size:"small",class:"setting-card"},{default:s(()=>[c(" 您已设置密码 "),U.value?_("",!0):(r(),b(p,{key:0,quaternary:"",round:"",type:"success",onClick:e[14]||(e[14]=l=>U.value=!0)},{default:s(()=>[c(" 重置密码 ")]),_:1})),U.value?(r(),g("div",vt,[t(L,{ref_key:"formRef",ref:X,model:a,rules:ve},{default:s(()=>[t(w,{path:"old_password",label:"旧密码"},{default:s(()=>[t(h,{value:a.old_password,"onUpdate:value":e[15]||(e[15]=l=>a.old_password=l),type:"password",placeholder:"请输入当前密码",onKeydown:e[16]||(e[16]=q(B(()=>{},["prevent"]),["enter"]))},null,8,["value"])]),_:1}),t(w,{path:"password",label:"新密码"},{default:s(()=>[t(h,{value:a.password,"onUpdate:value":e[17]||(e[17]=l=>a.password=l),type:"password",placeholder:"请输入新密码",onInput:re,onKeydown:e[18]||(e[18]=q(B(()=>{},["prevent"]),["enter"]))},null,8,["value"])]),_:1}),t(w,{ref_key:"rPasswordFormItemRef",ref:Y,first:"",path:"reenteredPassword",label:"重复密码"},{default:s(()=>[t(h,{value:a.reenteredPassword,"onUpdate:value":e[19]||(e[19]=l=>a.reenteredPassword=l),disabled:!a.password,type:"password",placeholder:"请再次输入密码",onKeydown:e[20]||(e[20]=q(B(()=>{},["prevent"]),["enter"]))},null,8,["value","disabled"])]),_:1},512),t(E,{gutter:[0,24]},{default:s(()=>[t(O,{span:24},{default:s(()=>[m("div",ft,[t(p,{quaternary:"",round:"",onClick:e[21]||(e[21]=l=>U.value=!1)},{default:s(()=>[c(" 取消 ")]),_:1}),t(p,{secondary:"",round:"",type:"primary",loading:x.value,onClick:ie},{default:s(()=>[c(" 更新 ")]),_:1},8,["loading"])])]),_:1})]),_:1})]),_:1},8,["model"])])):_("",!0)]),_:1})])}}});const Tt=Ne(gt,[["__scopeId","data-v-a681720e"]]);export{Tt as default}; diff --git a/web/dist/assets/Setting-bb44f792.js b/web/dist/assets/Setting-bb44f792.js new file mode 100644 index 00000000..8699c772 --- /dev/null +++ b/web/dist/assets/Setting-bb44f792.js @@ -0,0 +1 @@ +import{_ as we}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{d as ye,r as d,D as H,j as ke,c as g,U as t,a0 as s,P as b,N as _,o as r,a as m,Z as u,e as c,L as R,z as be,v as Ce,O as q,a1 as B,V as Ie,W as $e}from"./@vue-d002002f.js";import{u as Pe}from"./vuex-4d2f7b35.js";import{S as Q,T as Ue,U as Se,V as Re,W as qe,X as Be,Y as Ae,_ as Ne}from"./index-5fa3c6e0.js";import{x as ze}from"./@vicons-4022100b.js";import{h as xe,o as De,e as Ke,B as Fe,b as Ve,j as Te,S as je,$ as Le,L as Oe,a0 as Ee,a1 as We,d as Me}from"./naive-ui-d02aa0d7.js";import"./vue-router-29e6667f.js";import"./vooks-77bdadbd.js";import"./evtd-b614532e.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./@css-render-6b6cdab1.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";const V=A=>(Ie("data-v-a681720e"),A=A(),$e(),A),Ge={class:"base-line avatar"},Je={class:"base-line"},Xe=V(()=>m("span",{class:"base-label"},"昵称",-1)),Ye={key:0},Ze={class:"base-line"},He=V(()=>m("span",{class:"base-label"},"用户名",-1)),Qe={key:0},et={key:1},tt=V(()=>m("br",null,null,-1)),at={key:2,class:"phone-bind-wrap"},st={class:"captcha-img-wrap"},nt={class:"captcha-img"},ot=["src"],lt={class:"form-submit-wrap"},rt={key:0},it={key:1},ut=V(()=>m("br",null,null,-1)),dt={key:2,class:"phone-bind-wrap"},ct={class:"captcha-img-wrap"},pt={class:"captcha-img"},_t=["src"],mt={class:"form-submit-wrap"},vt={key:1,class:"phone-bind-wrap"},ft={class:"form-submit-wrap"},gt=ye({__name:"Setting",setup(A){const ee="https://iibiubiu.com/v1/attachment",te="Bearer "+localStorage.getItem("PAOPAO_TOKEN"),N=d("public/avatar"),$="true".toLowerCase()==="true",ae="false".toLowerCase()==="true",o=Pe(),P=d(!1),z=d(!1),x=d(!1),W=d(),M=d(),C=d(!1),D=d(!1),U=d(!1),S=d(!1),I=d(60),y=d(!1),k=d(!1),G=d(),J=d(),X=d(),Y=d(),a=H({id:"",b64s:"",imgCaptcha:"",phone:"",phone_captcha:"",password:"",old_password:"",reenteredPassword:""}),i=H({id:"",b64s:"",imgCaptcha:"",activate_code:""}),se=async n=>{var e,v;return N.value==="public/avatar"&&!["image/png","image/jpg","image/jpeg"].includes((e=n.file.file)==null?void 0:e.type)?(window.$message.warning("头像仅允许 png/jpg 格式"),!1):N.value==="image"&&((v=n.file.file)==null?void 0:v.size)>1048576?(window.$message.warning("头像大小不能超过1MB"),!1):!0},ne=({file:n,event:e})=>{var v;try{let f=JSON.parse((v=e.target)==null?void 0:v.response);f.code===0&&N.value==="public/avatar"&&Ue({avatar:f.data.content}).then(p=>{var K;window.$message.success("头像更新成功"),(K=W.value)==null||K.clear(),o.commit("updateUserinfo",{...o.state.userInfo,avatar:f.data.content})}).catch(p=>{console.log(p)})}catch{window.$message.error("上传失败")}},oe=(n,e)=>!!a.password&&a.password.startsWith(e)&&a.password.length>=e.length,le=(n,e)=>e===a.password,re=()=>{var n;a.reenteredPassword&&((n=Y.value)==null||n.validate({trigger:"password-input"}))},ie=n=>{var e;n.preventDefault(),(e=X.value)==null||e.validate(v=>{v||(D.value=!0,Se({password:a.password,old_password:a.old_password}).then(f=>{D.value=!1,U.value=!1,window.$message.success("密码重置成功"),o.commit("userLogout"),o.commit("triggerAuth",!0),o.commit("triggerAuthKey","signin")}).catch(f=>{D.value=!1}))})},ue=n=>{var e;n.preventDefault(),(e=G.value)==null||e.validate(v=>{v||(z.value=!0,Re({phone:a.phone,captcha:a.phone_captcha}).then(f=>{z.value=!1,y.value=!1,window.$message.success("绑定成功"),o.commit("updateUserinfo",{...o.state.userInfo,phone:a.phone}),a.id="",a.b64s="",a.imgCaptcha="",a.phone="",a.phone_captcha=""}).catch(f=>{z.value=!1}))})},de=n=>{var e;n.preventDefault(),(e=J.value)==null||e.validate(v=>{if(i.imgCaptcha===""){window.$message.warning("请输入图片验证码");return}P.value=!0,v||(x.value=!0,qe({activate_code:i.activate_code,captcha_id:i.id,imgCaptcha:i.imgCaptcha}).then(f=>{x.value=!1,k.value=!1,window.$message.success("激活成功"),o.commit("updateUserinfo",{...o.state.userInfo,activation:i.activate_code}),i.id="",i.b64s="",i.imgCaptcha="",i.activate_code=""}).catch(f=>{x.value=!1,f.code===20012&&j()}))})},T=()=>{Q().then(n=>{a.id=n.id,a.b64s=n.b64s}).catch(n=>{console.log(n)})},j=()=>{Q().then(n=>{i.id=n.id,i.b64s=n.b64s}).catch(n=>{console.log(n)})},ce=()=>{Be({nickname:o.state.userInfo.nickname||""}).then(n=>{C.value=!1,window.$message.success("昵称修改成功")}).catch(n=>{C.value=!0})},pe=()=>{if(!(I.value>0&&S.value)){if(a.imgCaptcha===""){window.$message.warning("请输入图片验证码");return}P.value=!0,Ae({phone:a.phone,img_captcha:a.imgCaptcha,img_captcha_id:a.id}).then(n=>{S.value=!0,P.value=!1,window.$message.success("发送成功");let e=setInterval(()=>{I.value--,I.value===0&&(clearInterval(e),I.value=60,S.value=!1)},1e3)}).catch(n=>{P.value=!1,n.code===20012&&T(),console.log(n)})}},_e={phone:[{required:!0,message:"请输入手机号",trigger:["input"],validator:(n,e)=>/^[1]+[3-9]{1}\d{9}$/.test(e)}],phone_captcha:[{required:!0,message:"请输入手机验证码"}]},me={activate_code:[{required:!0,message:"请输入激活码",trigger:["input"],validator:(n,e)=>/\d{6}$/.test(e)}]},ve={password:[{required:!0,message:"请输入新密码"}],old_password:[{required:!0,message:"请输入旧密码"}],reenteredPassword:[{required:!0,message:"请再次输入密码",trigger:["input","blur"]},{validator:oe,message:"两次密码输入不一致",trigger:"input"},{validator:le,message:"两次密码输入不一致",trigger:["blur","password-input"]}]},fe=()=>{C.value=!0,setTimeout(()=>{var n;(n=M.value)==null||n.focus()},30)};return ke(()=>{o.state.userInfo.id===0&&(o.commit("triggerAuth",!0),o.commit("triggerAuthKey","signin")),T(),j()}),(n,e)=>{const v=we,f=De,p=Ke,K=Fe,h=Ve,ge=Te,F=xe,Z=je,w=Le,he=Oe,L=Ee,O=We,E=Me;return r(),g("div",null,[t(v,{title:"设置",theme:""}),t(F,{title:"基本信息",size:"small",class:"setting-card"},{default:s(()=>[m("div",Ge,[t(f,{class:"avatar-img",size:80,src:u(o).state.userInfo.avatar},null,8,["src"]),!$||$&&u(o).state.userInfo.phone&&u(o).state.userInfo.phone.length>0?(r(),b(K,{key:0,ref_key:"avatarRef",ref:W,action:ee,headers:{Authorization:te},data:{type:N.value},onBeforeUpload:se,onFinish:ne},{default:s(()=>[t(p,{size:"small"},{default:s(()=>[c("更改头像")]),_:1})]),_:1},8,["headers","data"])):_("",!0)]),m("div",Je,[Xe,C.value?_("",!0):(r(),g("div",Ye,R(u(o).state.userInfo.nickname),1)),be(t(h,{ref_key:"inputInstRef",ref:M,class:"nickname-input",value:u(o).state.userInfo.nickname,"onUpdate:value":e[0]||(e[0]=l=>u(o).state.userInfo.nickname=l),type:"text",size:"small",placeholder:"请输入昵称",onBlur:ce,maxlength:16},null,8,["value"]),[[Ce,C.value]]),!C.value&&(!$||$&&u(o).state.userInfo.phone&&u(o).state.userInfo.phone.length>0&&u(o).state.userInfo.status==1)?(r(),b(p,{key:1,quaternary:"",round:"",type:"success",size:"small",onClick:fe},{icon:s(()=>[t(ge,null,{default:s(()=>[t(u(ze))]),_:1})]),_:1})):_("",!0)]),m("div",Ze,[He,c(" @"+R(u(o).state.userInfo.username),1)])]),_:1}),$?(r(),b(F,{key:0,title:"手机号",size:"small",class:"setting-card"},{default:s(()=>[u(o).state.userInfo.phone&&u(o).state.userInfo.phone.length>0?(r(),g("div",Qe,[c(R(u(o).state.userInfo.phone)+" ",1),!y.value&&u(o).state.userInfo.status==1?(r(),b(p,{key:0,quaternary:"",round:"",type:"success",onClick:e[1]||(e[1]=l=>y.value=!0)},{default:s(()=>[c(" 换绑手机 ")]),_:1})):_("",!0)])):(r(),g("div",et,[t(Z,{title:"手机绑定提示",type:"warning"},{default:s(()=>[c(" 成功绑定手机后,才能进行换头像、发动态、回复等交互~"),tt,y.value?_("",!0):(r(),g("a",{key:0,class:"hash-link",onClick:e[2]||(e[2]=l=>y.value=!0)}," 立即绑定 "))]),_:1})])),y.value?(r(),g("div",at,[t(E,{ref_key:"phoneFormRef",ref:G,model:a,rules:_e},{default:s(()=>[t(w,{path:"phone",label:"手机号"},{default:s(()=>[t(h,{value:a.phone,"onUpdate:value":e[3]||(e[3]=l=>a.phone=l.trim()),placeholder:"请输入中国大陆手机号",onKeydown:e[4]||(e[4]=q(B(()=>{},["prevent"]),["enter"]))},null,8,["value"])]),_:1}),t(w,{path:"img_captcha",label:"图形验证码"},{default:s(()=>[m("div",st,[t(h,{value:a.imgCaptcha,"onUpdate:value":e[5]||(e[5]=l=>a.imgCaptcha=l),placeholder:"请输入图形验证码后获取验证码"},null,8,["value"]),m("div",nt,[a.b64s?(r(),g("img",{key:0,src:a.b64s,onClick:T},null,8,ot)):_("",!0)])])]),_:1}),t(w,{path:"phone_captcha",label:"短信验证码"},{default:s(()=>[t(he,null,{default:s(()=>[t(h,{value:a.phone_captcha,"onUpdate:value":e[6]||(e[6]=l=>a.phone_captcha=l),placeholder:"请输入收到的短信验证码"},null,8,["value"]),t(p,{type:"primary",ghost:"",disabled:S.value,loading:P.value,onClick:pe},{default:s(()=>[c(R(I.value>0&&S.value?I.value+"s后重新发送":"发送验证码"),1)]),_:1},8,["disabled","loading"])]),_:1})]),_:1}),t(O,{gutter:[0,24]},{default:s(()=>[t(L,{span:24},{default:s(()=>[m("div",lt,[t(p,{quaternary:"",round:"",onClick:e[7]||(e[7]=l=>y.value=!1)},{default:s(()=>[c(" 取消 ")]),_:1}),t(p,{secondary:"",round:"",type:"primary",loading:z.value,onClick:ue},{default:s(()=>[c(" 绑定 ")]),_:1},8,["loading"])])]),_:1})]),_:1})]),_:1},8,["model"])])):_("",!0)]),_:1})):_("",!0),ae?(r(),b(F,{key:1,title:"激活码",size:"small",class:"setting-card"},{default:s(()=>[u(o).state.userInfo.activation&&u(o).state.userInfo.activation.length>0?(r(),g("div",rt,[c(R(u(o).state.userInfo.activation)+" ",1),k.value?_("",!0):(r(),b(p,{key:0,quaternary:"",round:"",type:"success",onClick:e[8]||(e[8]=l=>k.value=!0)},{default:s(()=>[c(" 重新激活 ")]),_:1}))])):(r(),g("div",it,[t(Z,{title:"激活码激活提示",type:"warning"},{default:s(()=>[c(" 成功激活后后,才能发(公开/好友可见)动态、回复~"),ut,k.value?_("",!0):(r(),g("a",{key:0,class:"hash-link",onClick:e[9]||(e[9]=l=>k.value=!0)}," 立即激活 "))]),_:1})])),k.value?(r(),g("div",dt,[t(E,{ref_key:"activateFormRef",ref:J,model:i,rules:me},{default:s(()=>[t(w,{path:"activate_code",label:"激活码"},{default:s(()=>[t(h,{value:i.activate_code,"onUpdate:value":e[10]||(e[10]=l=>i.activate_code=l.trim()),placeholder:"请输入激活码",onKeydown:e[11]||(e[11]=q(B(()=>{},["prevent"]),["enter"]))},null,8,["value"])]),_:1}),t(w,{path:"img_captcha",label:"图形验证码"},{default:s(()=>[m("div",ct,[t(h,{value:i.imgCaptcha,"onUpdate:value":e[12]||(e[12]=l=>i.imgCaptcha=l),placeholder:"请输入图形验证码后获取验证码"},null,8,["value"]),m("div",pt,[i.b64s?(r(),g("img",{key:0,src:i.b64s,onClick:j},null,8,_t)):_("",!0)])])]),_:1}),t(O,{gutter:[0,24]},{default:s(()=>[t(L,{span:24},{default:s(()=>[m("div",mt,[t(p,{quaternary:"",round:"",onClick:e[13]||(e[13]=l=>k.value=!1)},{default:s(()=>[c(" 取消 ")]),_:1}),t(p,{secondary:"",round:"",type:"primary",loading:x.value,onClick:de},{default:s(()=>[c(" 激活 ")]),_:1},8,["loading"])])]),_:1})]),_:1})]),_:1},8,["model"])])):_("",!0)]),_:1})):_("",!0),t(F,{title:"账户安全",size:"small",class:"setting-card"},{default:s(()=>[c(" 您已设置密码 "),U.value?_("",!0):(r(),b(p,{key:0,quaternary:"",round:"",type:"success",onClick:e[14]||(e[14]=l=>U.value=!0)},{default:s(()=>[c(" 重置密码 ")]),_:1})),U.value?(r(),g("div",vt,[t(E,{ref_key:"formRef",ref:X,model:a,rules:ve},{default:s(()=>[t(w,{path:"old_password",label:"旧密码"},{default:s(()=>[t(h,{value:a.old_password,"onUpdate:value":e[15]||(e[15]=l=>a.old_password=l),type:"password",placeholder:"请输入当前密码",onKeydown:e[16]||(e[16]=q(B(()=>{},["prevent"]),["enter"]))},null,8,["value"])]),_:1}),t(w,{path:"password",label:"新密码"},{default:s(()=>[t(h,{value:a.password,"onUpdate:value":e[17]||(e[17]=l=>a.password=l),type:"password",placeholder:"请输入新密码",onInput:re,onKeydown:e[18]||(e[18]=q(B(()=>{},["prevent"]),["enter"]))},null,8,["value"])]),_:1}),t(w,{ref_key:"rPasswordFormItemRef",ref:Y,first:"",path:"reenteredPassword",label:"重复密码"},{default:s(()=>[t(h,{value:a.reenteredPassword,"onUpdate:value":e[19]||(e[19]=l=>a.reenteredPassword=l),disabled:!a.password,type:"password",placeholder:"请再次输入密码",onKeydown:e[20]||(e[20]=q(B(()=>{},["prevent"]),["enter"]))},null,8,["value","disabled"])]),_:1},512),t(O,{gutter:[0,24]},{default:s(()=>[t(L,{span:24},{default:s(()=>[m("div",ft,[t(p,{quaternary:"",round:"",onClick:e[21]||(e[21]=l=>U.value=!1)},{default:s(()=>[c(" 取消 ")]),_:1}),t(p,{secondary:"",round:"",type:"primary",loading:D.value,onClick:ie},{default:s(()=>[c(" 更新 ")]),_:1},8,["loading"])])]),_:1})]),_:1})]),_:1},8,["model"])])):_("",!0)]),_:1})])}}});const Tt=Ne(gt,[["__scopeId","data-v-a681720e"]]);export{Tt as default}; diff --git a/web/dist/assets/Topic-1e3989cd.js b/web/dist/assets/Topic-09053135.js similarity index 73% rename from web/dist/assets/Topic-1e3989cd.js rename to web/dist/assets/Topic-09053135.js index ea12c980..c209869c 100644 --- a/web/dist/assets/Topic-1e3989cd.js +++ b/web/dist/assets/Topic-09053135.js @@ -1 +1 @@ -import{w as F,x as M,y as O,z as U,_ as j}from"./index-43cab287.js";import{p as E}from"./@vicons-7ee3dafd.js";import{d as $,r as i,n as q,j as A,a2 as x,o as c,c as _,U as n,a0 as s,P as b,e as L,L as f,N as u,Z as h,w as D,a6 as P,F as Z,a3 as G}from"./@vue-b8d06722.js";import{o as H,M as B,j as J,e as K,O as Q,L as R,F as W,f as X,g as Y,a as ee,k as oe}from"./naive-ui-374a973f.js";import{_ as te}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{u as ne}from"./vuex-613b371d.js";import"./vue-router-8af5a3a6.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./evtd-b614532e.js";import"./@css-render-4f82e6dd.js";import"./vooks-423a5f30.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";const se={key:0,class:"tag-item"},ae={key:0,class:"tag-quote"},ce={key:1,class:"tag-quote tag-follow"},le={key:0,class:"options"},ie=$({__name:"tag-item",props:{tag:{},showAction:{type:Boolean},checkFollowing:{type:Boolean}},setup(T){const t=T,r=i(!1),m=q(()=>{let e=[];return t.tag.is_following===0?e.push({label:"关注",key:"follow"}):(t.tag.is_top===0?e.push({label:"置顶",key:"stick"}):e.push({label:"取消置顶",key:"unstick"}),e.push({label:"取消关注",key:"unfollow"})),e}),l=e=>{switch(e){case"follow":O({topic_id:t.tag.id}).then(o=>{t.tag.is_following=1,window.$message.success("关注成功")}).catch(o=>{console.log(o)});break;case"unfollow":M({topic_id:t.tag.id}).then(o=>{t.tag.is_following=0,window.$message.success("取消关注")}).catch(o=>{console.log(o)});break;case"stick":F({topic_id:t.tag.id}).then(o=>{t.tag.is_top=o.top_status,window.$message.success("置顶成功")}).catch(o=>{console.log(o)});break;case"unstick":F({topic_id:t.tag.id}).then(o=>{t.tag.is_top=o.top_status,window.$message.success("取消置顶")}).catch(o=>{console.log(o)});break}};return A(()=>{r.value=!1}),(e,o)=>{const w=x("router-link"),g=H,k=B,a=J,d=K,v=Q,p=R;return!e.checkFollowing||e.checkFollowing&&e.tag.is_following===1?(c(),_("div",se,[n(p,null,{header:s(()=>[(c(),b(k,{type:"success",size:"large",round:"",key:e.tag.id},{avatar:s(()=>[n(g,{src:e.tag.user.avatar},null,8,["src"])]),default:s(()=>[n(w,{class:"hash-link",to:{name:"home",query:{q:e.tag.tag,t:"tag"}}},{default:s(()=>[L(" #"+f(e.tag.tag),1)]),_:1},8,["to"]),e.showAction?u("",!0):(c(),_("span",ae,"("+f(e.tag.quote_num)+")",1)),e.showAction?(c(),_("span",ce,"("+f(e.tag.quote_num)+")",1)):u("",!0)]),_:1}))]),"header-extra":s(()=>[e.showAction?(c(),_("div",le,[n(v,{placement:"bottom-end",trigger:"click",size:"small",options:m.value,onSelect:l},{default:s(()=>[n(d,{type:"success",quaternary:"",circle:"",block:""},{icon:s(()=>[n(a,null,{default:s(()=>[n(h(E))]),_:1})]),_:1})]),_:1},8,["options"])])):u("",!0)]),_:1})])):u("",!0)}}});const _e=$({__name:"Topic",setup(T){const t=ne(),r=i([]),m=i("hot"),l=i(!1),e=i(!1),o=i(!1);D(e,()=>{e.value||(window.$message.success("保存成功"),t.commit("refreshTopicFollow"))});const w=q({get:()=>{let a="编辑";return e.value&&(a="保存"),a},set:a=>{}}),g=()=>{l.value=!0,U({type:m.value,num:50}).then(a=>{r.value=a.topics,l.value=!1}).catch(a=>{console.log(a),l.value=!1})},k=a=>{m.value=a,a=="follow"?o.value=!0:o.value=!1,g()};return A(()=>{g()}),(a,d)=>{const v=te,p=X,C=B,N=Y,V=ie,S=ee,z=oe,I=W;return c(),_("div",null,[n(v,{title:"话题"}),n(I,{class:"main-content-wrap tags-wrap",bordered:""},{default:s(()=>[n(N,{type:"line",animated:"","onUpdate:value":k},P({default:s(()=>[n(p,{name:"hot",tab:"热门"}),n(p,{name:"new",tab:"最新"}),h(t).state.userLogined?(c(),b(p,{key:0,name:"follow",tab:"关注"})):u("",!0)]),_:2},[h(t).state.userLogined?{name:"suffix",fn:s(()=>[n(C,{checked:e.value,"onUpdate:checked":d[0]||(d[0]=y=>e.value=y),checkable:""},{default:s(()=>[L(f(w.value),1)]),_:1},8,["checked"])]),key:"0"}:void 0]),1024),n(z,{show:l.value},{default:s(()=>[n(S,null,{default:s(()=>[(c(!0),_(Z,null,G(r.value,y=>(c(),b(V,{tag:y,showAction:h(t).state.userLogined&&e.value,checkFollowing:o.value},null,8,["tag","showAction","checkFollowing"]))),256))]),_:1})]),_:1},8,["show"])]),_:1})])}}});const Ve=j(_e,[["__scopeId","data-v-15794a53"]]);export{Ve as default}; +import{w as F,x as M,y as O,z as U,_ as j}from"./index-5fa3c6e0.js";import{p as E}from"./@vicons-4022100b.js";import{d as $,r as i,n as q,j as A,a2 as P,o as c,c as _,U as n,a0 as s,P as b,e as B,L as f,N as u,Z as h,w as x,a6 as D,F as Z,a3 as G}from"./@vue-d002002f.js";import{o as H,O as C,j as J,e as K,P as Q,M as R,F as W,f as X,g as Y,a as ee,k as oe}from"./naive-ui-d02aa0d7.js";import{_ as te}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{u as ne}from"./vuex-4d2f7b35.js";import"./vue-router-29e6667f.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./evtd-b614532e.js";import"./@css-render-6b6cdab1.js";import"./vooks-77bdadbd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";const se={key:0,class:"tag-item"},ae={key:0,class:"tag-quote"},ce={key:1,class:"tag-quote tag-follow"},le={key:0,class:"options"},ie=$({__name:"tag-item",props:{tag:{},showAction:{type:Boolean},checkFollowing:{type:Boolean}},setup(T){const t=T,r=i(!1),m=q(()=>{let e=[];return t.tag.is_following===0?e.push({label:"关注",key:"follow"}):(t.tag.is_top===0?e.push({label:"置顶",key:"stick"}):e.push({label:"取消置顶",key:"unstick"}),e.push({label:"取消关注",key:"unfollow"})),e}),l=e=>{switch(e){case"follow":O({topic_id:t.tag.id}).then(o=>{t.tag.is_following=1,window.$message.success("关注成功")}).catch(o=>{console.log(o)});break;case"unfollow":M({topic_id:t.tag.id}).then(o=>{t.tag.is_following=0,window.$message.success("取消关注")}).catch(o=>{console.log(o)});break;case"stick":F({topic_id:t.tag.id}).then(o=>{t.tag.is_top=o.top_status,window.$message.success("置顶成功")}).catch(o=>{console.log(o)});break;case"unstick":F({topic_id:t.tag.id}).then(o=>{t.tag.is_top=o.top_status,window.$message.success("取消置顶")}).catch(o=>{console.log(o)});break}};return A(()=>{r.value=!1}),(e,o)=>{const w=P("router-link"),g=H,k=C,a=J,d=K,v=Q,p=R;return!e.checkFollowing||e.checkFollowing&&e.tag.is_following===1?(c(),_("div",se,[n(p,null,{header:s(()=>[(c(),b(k,{type:"success",size:"large",round:"",key:e.tag.id},{avatar:s(()=>[n(g,{src:e.tag.user.avatar},null,8,["src"])]),default:s(()=>[n(w,{class:"hash-link",to:{name:"home",query:{q:e.tag.tag,t:"tag"}}},{default:s(()=>[B(" #"+f(e.tag.tag),1)]),_:1},8,["to"]),e.showAction?u("",!0):(c(),_("span",ae,"("+f(e.tag.quote_num)+")",1)),e.showAction?(c(),_("span",ce,"("+f(e.tag.quote_num)+")",1)):u("",!0)]),_:1}))]),"header-extra":s(()=>[e.showAction?(c(),_("div",le,[n(v,{placement:"bottom-end",trigger:"click",size:"small",options:m.value,onSelect:l},{default:s(()=>[n(d,{type:"success",quaternary:"",circle:"",block:""},{icon:s(()=>[n(a,null,{default:s(()=>[n(h(E))]),_:1})]),_:1})]),_:1},8,["options"])])):u("",!0)]),_:1})])):u("",!0)}}});const _e=$({__name:"Topic",setup(T){const t=ne(),r=i([]),m=i("hot"),l=i(!1),e=i(!1),o=i(!1);x(e,()=>{e.value||(window.$message.success("保存成功"),t.commit("refreshTopicFollow"))});const w=q({get:()=>{let a="编辑";return e.value&&(a="保存"),a},set:a=>{}}),g=()=>{l.value=!0,U({type:m.value,num:50}).then(a=>{r.value=a.topics,l.value=!1}).catch(a=>{console.log(a),l.value=!1})},k=a=>{m.value=a,a=="follow"?o.value=!0:o.value=!1,g()};return A(()=>{g()}),(a,d)=>{const v=te,p=X,L=C,N=Y,V=ie,S=ee,z=oe,I=W;return c(),_("div",null,[n(v,{title:"话题"}),n(I,{class:"main-content-wrap tags-wrap",bordered:""},{default:s(()=>[n(N,{type:"line",animated:"","onUpdate:value":k},D({default:s(()=>[n(p,{name:"hot",tab:"热门"}),n(p,{name:"new",tab:"最新"}),h(t).state.userLogined?(c(),b(p,{key:0,name:"follow",tab:"关注"})):u("",!0)]),_:2},[h(t).state.userLogined?{name:"suffix",fn:s(()=>[n(L,{checked:e.value,"onUpdate:checked":d[0]||(d[0]=y=>e.value=y),checkable:""},{default:s(()=>[B(f(w.value),1)]),_:1},8,["checked"])]),key:"0"}:void 0]),1024),n(z,{show:l.value},{default:s(()=>[n(S,null,{default:s(()=>[(c(!0),_(Z,null,G(r.value,y=>(c(),b(V,{tag:y,showAction:h(t).state.userLogined&&e.value,checkFollowing:o.value},null,8,["tag","showAction","checkFollowing"]))),256))]),_:1})]),_:1},8,["show"])]),_:1})])}}});const Ve=j(_e,[["__scopeId","data-v-15794a53"]]);export{Ve as default}; diff --git a/web/dist/assets/User-c16a5bad.js b/web/dist/assets/User-e96c5cea.js similarity index 71% rename from web/dist/assets/User-c16a5bad.js rename to web/dist/assets/User-e96c5cea.js index 944d0e83..0338efbe 100644 --- a/web/dist/assets/User-c16a5bad.js +++ b/web/dist/assets/User-e96c5cea.js @@ -1 +1 @@ -import{_ as pe,a as de}from"./post-item.vue_vue_type_style_index_0_lang-f7f6062b.js";import{_ as me}from"./post-skeleton-3fdfd3d1.js";import{B as he,_ as S,C as ve,D as fe,A as ge,E as we,F as ye}from"./index-43cab287.js";import{Q as T,R as A,S as D,b as N,e as q,i as V,u as ke,T as be,F as xe,G as $e,o as Ue,M as Fe,j as ze,O as Ie,k as Se,f as qe,g as We,I as Ce,H as Me}from"./naive-ui-374a973f.js";import{d as W,r as c,o,P as F,a0 as t,a as r,U as n,e as h,L as x,D as Pe,n as Be,w as Re,j as Te,c as p,Z as b,N as U,F as B,a3 as R}from"./@vue-b8d06722.js";import{_ as Ae}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{u as De}from"./vuex-613b371d.js";import{b as Ne}from"./vue-router-8af5a3a6.js";import{i as Ve}from"./@vicons-7ee3dafd.js";import"./content-bfe7958f.js";import"./paopao-video-player-b4739fc7.js";import"./formatTime-000dbebb.js";import"./moment-b7869f98.js";import"./copy-to-clipboard-1dd3075d.js";import"./toggle-selection-93f4ad84.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./evtd-b614532e.js";import"./@css-render-4f82e6dd.js";import"./vooks-423a5f30.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";const Le={class:"whisper-wrap"},je={class:"whisper-line"},Ee={class:"whisper-line send-wrap"},He=W({__name:"whisper",props:{show:{type:Boolean,default:!1},user:{}},emits:["success"],setup(I,{emit:$}){const u=I,a=c(""),i=c(!1),e=()=>{$("success")},_=()=>{i.value=!0,he({user_id:u.user.id,content:a.value}).then(l=>{window.$message.success("发送成功"),i.value=!1,a.value="",e()}).catch(l=>{i.value=!1})};return(l,d)=>{const m=T,v=A,f=D,g=N,w=q,y=V;return o(),F(y,{show:l.show,"onUpdate:show":e,class:"whisper-card",preset:"card",size:"small",title:"私信","mask-closable":!1,bordered:!1,style:{width:"360px"}},{default:t(()=>[r("div",Le,[n(f,{"show-icon":!1},{default:t(()=>[h(" 即将发送私信给: "),n(v,{style:{"max-width":"100%"}},{default:t(()=>[n(m,{type:"success"},{default:t(()=>[h(x(l.user.nickname)+"@"+x(l.user.username),1)]),_:1})]),_:1})]),_:1}),r("div",je,[n(g,{type:"textarea",placeholder:"请输入私信内容(请勿发送不和谐内容,否则将会被封号)",autosize:{minRows:5,maxRows:10},value:a.value,"onUpdate:value":d[0]||(d[0]=k=>a.value=k),maxlength:"200","show-count":""},null,8,["value"])]),r("div",Ee,[n(w,{strong:"",secondary:"",type:"primary",loading:i.value,onClick:_},{default:t(()=>[h(" 发送 ")]),_:1},8,["loading"])])])]),_:1},8,["show"])}}});const Oe=S(He,[["__scopeId","data-v-0cbfe47c"]]),Ge={class:"whisper-wrap"},Qe={class:"whisper-line"},Ze={class:"whisper-line send-wrap"},Je=W({__name:"whisper-add-friend",props:{show:{type:Boolean,default:!1},user:{}},emits:["success"],setup(I,{emit:$}){const u=I,a=c(""),i=c(!1),e=()=>{$("success")},_=()=>{i.value=!0,ve({user_id:u.user.id,greetings:a.value}).then(l=>{window.$message.success("发送成功"),i.value=!1,a.value="",e()}).catch(l=>{i.value=!1})};return(l,d)=>{const m=T,v=A,f=D,g=N,w=q,y=V;return o(),F(y,{show:l.show,"onUpdate:show":e,class:"whisper-card",preset:"card",size:"small",title:"申请添加朋友","mask-closable":!1,bordered:!1,style:{width:"360px"}},{default:t(()=>[r("div",Ge,[n(f,{"show-icon":!1},{default:t(()=>[h(" 发送添加朋友申请给: "),n(v,{style:{"max-width":"100%"}},{default:t(()=>[n(m,{type:"success"},{default:t(()=>[h(x(l.user.nickname)+"@"+x(l.user.username),1)]),_:1})]),_:1})]),_:1}),r("div",Qe,[n(g,{type:"textarea",placeholder:"请输入真挚的问候语",autosize:{minRows:5,maxRows:10},value:a.value,"onUpdate:value":d[0]||(d[0]=k=>a.value=k),maxlength:"120","show-count":""},null,8,["value"])]),r("div",Ze,[n(w,{strong:"",secondary:"",type:"primary",loading:i.value,onClick:_},{default:t(()=>[h(" 发送 ")]),_:1},8,["loading"])])])]),_:1},8,["show"])}}});const Ke=S(Je,[["__scopeId","data-v-60be56a2"]]),Xe={key:0,class:"profile-baseinfo"},Ye={class:"avatar"},es={class:"base-info"},ss={class:"username"},ns={class:"uid"},ts={key:0,class:"user-opts"},os={key:0,class:"skeleton-wrap"},as={key:1},ls={key:0,class:"empty-wrap"},is={key:1},_s={key:2},cs={key:0,class:"pagination-wrap"},rs=W({__name:"User",setup(I){ke();const $=be(),u=De(),a=Ne(),i=c(!1),e=Pe({id:0,avatar:"",username:"",nickname:"",is_admin:!1,is_friend:!0,status:1}),_=c(!1),l=c(!1),d=c(!1),m=c([]),v=c(a.query.username||""),f=c(+a.query.p||1),g=c(20),w=c(0),y=()=>{i.value=!0,ge({username:v.value,page:f.value,page_size:g.value}).then(s=>{i.value=!1,m.value=s.list,w.value=Math.ceil(s.pager.total_rows/g.value),window.scrollTo(0,0)}).catch(s=>{i.value=!1})},k=()=>{_.value=!0,fe({username:v.value}).then(s=>{_.value=!1,e.id=s.id,e.avatar=s.avatar,e.username=s.username,e.nickname=s.nickname,e.is_admin=s.is_admin,e.is_friend=s.is_friend,e.status=s.status,y()}).catch(s=>{_.value=!1,console.log(s)})},L=s=>{f.value=s,y()},j=()=>{l.value=!0},E=()=>{d.value=!0},H=()=>{l.value=!1},O=()=>{d.value=!1},G=Be(()=>{let s=[{label:"私信",key:"whisper"}];return u.state.userInfo.is_admin&&(e.status===1?s.push({label:"禁言",key:"banned"}):s.push({label:"解封",key:"deblocking"})),e.is_friend?s.push({label:"删除好友",key:"delete"}):s.push({label:"添加朋友",key:"requesting"}),s}),Q=s=>{switch(s){case"whisper":j();break;case"delete":Z();break;case"requesting":E();break;case"banned":case"deblocking":J();break}},Z=()=>{$.warning({title:"删除好友",content:"将好友 “"+e.nickname+"” 删除,将同时删除 点赞/收藏 列表中关于该朋友的 “好友可见” 推文",positiveText:"确定",negativeText:"取消",onPositiveClick:()=>{_.value=!0,we({user_id:e.id}).then(s=>{_.value=!1,e.is_friend=!1,y()}).catch(s=>{_.value=!1,console.log(s)})}})},J=()=>{$.warning({title:"警告",content:"确定对该用户进行"+(e.status===1?"禁言":"解封")+"处理吗?",positiveText:"确定",negativeText:"取消",onPositiveClick:()=>{_.value=!0,ye({id:e.id,status:e.status===1?2:1}).then(s=>{_.value=!1,k()}).catch(s=>{_.value=!1,console.log(s)})}})};return Re(()=>({path:a.path,query:a.query}),(s,C)=>{C.path==="/user"&&s.path==="/user"&&(v.value=a.query.username||"",k())}),Te(()=>{k()}),(s,C)=>{const K=Ae,X=Ue,M=Fe,Y=ze,ee=q,se=Ie,ne=Oe,te=Se,oe=qe,ae=We,le=me,ie=Ce,_e=pe,P=Me,ce=de,re=xe,ue=$e;return o(),p("div",null,[n(K,{title:"用户详情"}),n(re,{class:"main-content-wrap profile-wrap",bordered:""},{default:t(()=>[n(te,{show:_.value},{default:t(()=>[e.id>0?(o(),p("div",Xe,[r("div",Ye,[n(X,{size:"large",src:e.avatar},null,8,["src"])]),r("div",es,[r("div",ss,[r("strong",null,x(e.nickname),1),r("span",null," @"+x(e.username),1),b(u).state.userInfo.id>0&&b(u).state.userInfo.username!=e.username&&e.is_friend?(o(),F(M,{key:0,class:"top-tag",type:"info",size:"small",round:""},{default:t(()=>[h(" 好友 ")]),_:1})):U("",!0),e.is_admin?(o(),F(M,{key:1,class:"top-tag",type:"error",size:"small",round:""},{default:t(()=>[h(" 管理员 ")]),_:1})):U("",!0)]),r("div",ns,"UID. "+x(e.id),1)]),b(u).state.userInfo.id>0&&b(u).state.userInfo.username!=e.username?(o(),p("div",ts,[n(se,{placement:"bottom-end",trigger:"click",size:"small",options:G.value,onSelect:Q},{default:t(()=>[n(ee,{quaternary:"",circle:""},{icon:t(()=>[n(Y,null,{default:t(()=>[n(b(Ve))]),_:1})]),_:1})]),_:1},8,["options"])])):U("",!0)])):U("",!0),n(ne,{show:l.value,user:e,onSuccess:H},null,8,["show","user"]),n(Ke,{show:d.value,user:e,onSuccess:O},null,8,["show","user"])]),_:1},8,["show"]),n(ae,{class:"profile-tabs-wrap",animated:""},{default:t(()=>[n(oe,{name:"post",tab:"泡泡"})]),_:1}),i.value?(o(),p("div",os,[n(le,{num:g.value},null,8,["num"])])):(o(),p("div",as,[m.value.length===0?(o(),p("div",ls,[n(ie,{size:"large",description:"暂无数据"})])):U("",!0),b(u).state.desktopModelShow?(o(),p("div",is,[(o(!0),p(B,null,R(m.value,z=>(o(),F(P,{key:z.id},{default:t(()=>[n(_e,{post:z},null,8,["post"])]),_:2},1024))),128))])):(o(),p("div",_s,[(o(!0),p(B,null,R(m.value,z=>(o(),F(P,{key:z.id},{default:t(()=>[n(ce,{post:z},null,8,["post"])]),_:2},1024))),128))]))]))]),_:1}),w.value>0?(o(),p("div",cs,[n(ue,{page:f.value,"onUpdate:page":L,"page-slot":b(u).state.collapsedRight?5:8,"page-count":w.value},null,8,["page","page-slot","page-count"])])):U("",!0)])}}});const Vs=S(rs,[["__scopeId","data-v-31cfec9c"]]);export{Vs as default}; +import{_ as pe,a as de}from"./post-item.vue_vue_type_style_index_0_lang-bc760886.js";import{_ as me}from"./post-skeleton-49f18127.js";import{B as he,_ as S,C as ve,D as fe,A as ge,E as we,F as ye}from"./index-5fa3c6e0.js";import{R as T,K as A,S as D,b as N,e as q,i as V,u as ke,T as be,F as xe,G as $e,o as Ue,O as Fe,j as ze,P as Ie,k as Se,f as qe,g as Pe,I as We,H as Ce}from"./naive-ui-d02aa0d7.js";import{d as P,r as c,o,P as F,a0 as t,a as r,U as n,e as h,L as x,D as Be,n as Me,w as Re,j as Te,c as p,Z as b,N as U,F as M,a3 as R}from"./@vue-d002002f.js";import{_ as Ae}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{u as De}from"./vuex-4d2f7b35.js";import{b as Ne}from"./vue-router-29e6667f.js";import{i as Ve}from"./@vicons-4022100b.js";import"./content-1ad34d0c.js";import"./paopao-video-player-d47e9bf6.js";import"./formatTime-000dbebb.js";import"./moment-b7869f98.js";import"./copy-to-clipboard-1dd3075d.js";import"./toggle-selection-93f4ad84.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./evtd-b614532e.js";import"./@css-render-6b6cdab1.js";import"./vooks-77bdadbd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";const Le={class:"whisper-wrap"},je={class:"whisper-line"},Ee={class:"whisper-line send-wrap"},He=P({__name:"whisper",props:{show:{type:Boolean,default:!1},user:{}},emits:["success"],setup(I,{emit:$}){const u=I,a=c(""),i=c(!1),e=()=>{$("success")},_=()=>{i.value=!0,he({user_id:u.user.id,content:a.value}).then(l=>{window.$message.success("发送成功"),i.value=!1,a.value="",e()}).catch(l=>{i.value=!1})};return(l,d)=>{const m=T,v=A,f=D,g=N,w=q,y=V;return o(),F(y,{show:l.show,"onUpdate:show":e,class:"whisper-card",preset:"card",size:"small",title:"私信","mask-closable":!1,bordered:!1,style:{width:"360px"}},{default:t(()=>[r("div",Le,[n(f,{"show-icon":!1},{default:t(()=>[h(" 即将发送私信给: "),n(v,{style:{"max-width":"100%"}},{default:t(()=>[n(m,{type:"success"},{default:t(()=>[h(x(l.user.nickname)+"@"+x(l.user.username),1)]),_:1})]),_:1})]),_:1}),r("div",je,[n(g,{type:"textarea",placeholder:"请输入私信内容(请勿发送不和谐内容,否则将会被封号)",autosize:{minRows:5,maxRows:10},value:a.value,"onUpdate:value":d[0]||(d[0]=k=>a.value=k),maxlength:"200","show-count":""},null,8,["value"])]),r("div",Ee,[n(w,{strong:"",secondary:"",type:"primary",loading:i.value,onClick:_},{default:t(()=>[h(" 发送 ")]),_:1},8,["loading"])])])]),_:1},8,["show"])}}});const Oe=S(He,[["__scopeId","data-v-0cbfe47c"]]),Ge={class:"whisper-wrap"},Ke={class:"whisper-line"},Ze={class:"whisper-line send-wrap"},Je=P({__name:"whisper-add-friend",props:{show:{type:Boolean,default:!1},user:{}},emits:["success"],setup(I,{emit:$}){const u=I,a=c(""),i=c(!1),e=()=>{$("success")},_=()=>{i.value=!0,ve({user_id:u.user.id,greetings:a.value}).then(l=>{window.$message.success("发送成功"),i.value=!1,a.value="",e()}).catch(l=>{i.value=!1})};return(l,d)=>{const m=T,v=A,f=D,g=N,w=q,y=V;return o(),F(y,{show:l.show,"onUpdate:show":e,class:"whisper-card",preset:"card",size:"small",title:"申请添加朋友","mask-closable":!1,bordered:!1,style:{width:"360px"}},{default:t(()=>[r("div",Ge,[n(f,{"show-icon":!1},{default:t(()=>[h(" 发送添加朋友申请给: "),n(v,{style:{"max-width":"100%"}},{default:t(()=>[n(m,{type:"success"},{default:t(()=>[h(x(l.user.nickname)+"@"+x(l.user.username),1)]),_:1})]),_:1})]),_:1}),r("div",Ke,[n(g,{type:"textarea",placeholder:"请输入真挚的问候语",autosize:{minRows:5,maxRows:10},value:a.value,"onUpdate:value":d[0]||(d[0]=k=>a.value=k),maxlength:"120","show-count":""},null,8,["value"])]),r("div",Ze,[n(w,{strong:"",secondary:"",type:"primary",loading:i.value,onClick:_},{default:t(()=>[h(" 发送 ")]),_:1},8,["loading"])])])]),_:1},8,["show"])}}});const Qe=S(Je,[["__scopeId","data-v-60be56a2"]]),Xe={key:0,class:"profile-baseinfo"},Ye={class:"avatar"},es={class:"base-info"},ss={class:"username"},ns={class:"uid"},ts={key:0,class:"user-opts"},os={key:0,class:"skeleton-wrap"},as={key:1},ls={key:0,class:"empty-wrap"},is={key:1},_s={key:2},cs={key:0,class:"pagination-wrap"},rs=P({__name:"User",setup(I){ke();const $=be(),u=De(),a=Ne(),i=c(!1),e=Be({id:0,avatar:"",username:"",nickname:"",is_admin:!1,is_friend:!0,status:1}),_=c(!1),l=c(!1),d=c(!1),m=c([]),v=c(a.query.username||""),f=c(+a.query.p||1),g=c(20),w=c(0),y=()=>{i.value=!0,ge({username:v.value,page:f.value,page_size:g.value}).then(s=>{i.value=!1,m.value=s.list,w.value=Math.ceil(s.pager.total_rows/g.value),window.scrollTo(0,0)}).catch(s=>{i.value=!1})},k=()=>{_.value=!0,fe({username:v.value}).then(s=>{_.value=!1,e.id=s.id,e.avatar=s.avatar,e.username=s.username,e.nickname=s.nickname,e.is_admin=s.is_admin,e.is_friend=s.is_friend,e.status=s.status,y()}).catch(s=>{_.value=!1,console.log(s)})},L=s=>{f.value=s,y()},j=()=>{l.value=!0},E=()=>{d.value=!0},H=()=>{l.value=!1},O=()=>{d.value=!1},G=Me(()=>{let s=[{label:"私信",key:"whisper"}];return u.state.userInfo.is_admin&&(e.status===1?s.push({label:"禁言",key:"banned"}):s.push({label:"解封",key:"deblocking"})),e.is_friend?s.push({label:"删除好友",key:"delete"}):s.push({label:"添加朋友",key:"requesting"}),s}),K=s=>{switch(s){case"whisper":j();break;case"delete":Z();break;case"requesting":E();break;case"banned":case"deblocking":J();break}},Z=()=>{$.warning({title:"删除好友",content:"将好友 “"+e.nickname+"” 删除,将同时删除 点赞/收藏 列表中关于该朋友的 “好友可见” 推文",positiveText:"确定",negativeText:"取消",onPositiveClick:()=>{_.value=!0,we({user_id:e.id}).then(s=>{_.value=!1,e.is_friend=!1,y()}).catch(s=>{_.value=!1,console.log(s)})}})},J=()=>{$.warning({title:"警告",content:"确定对该用户进行"+(e.status===1?"禁言":"解封")+"处理吗?",positiveText:"确定",negativeText:"取消",onPositiveClick:()=>{_.value=!0,ye({id:e.id,status:e.status===1?2:1}).then(s=>{_.value=!1,k()}).catch(s=>{_.value=!1,console.log(s)})}})};return Re(()=>({path:a.path,query:a.query}),(s,W)=>{W.path==="/user"&&s.path==="/user"&&(v.value=a.query.username||"",k())}),Te(()=>{k()}),(s,W)=>{const Q=Ae,X=Ue,C=Fe,Y=ze,ee=q,se=Ie,ne=Oe,te=Se,oe=qe,ae=Pe,le=me,ie=We,_e=pe,B=Ce,ce=de,re=xe,ue=$e;return o(),p("div",null,[n(Q,{title:"用户详情"}),n(re,{class:"main-content-wrap profile-wrap",bordered:""},{default:t(()=>[n(te,{show:_.value},{default:t(()=>[e.id>0?(o(),p("div",Xe,[r("div",Ye,[n(X,{size:"large",src:e.avatar},null,8,["src"])]),r("div",es,[r("div",ss,[r("strong",null,x(e.nickname),1),r("span",null," @"+x(e.username),1),b(u).state.userInfo.id>0&&b(u).state.userInfo.username!=e.username&&e.is_friend?(o(),F(C,{key:0,class:"top-tag",type:"info",size:"small",round:""},{default:t(()=>[h(" 好友 ")]),_:1})):U("",!0),e.is_admin?(o(),F(C,{key:1,class:"top-tag",type:"error",size:"small",round:""},{default:t(()=>[h(" 管理员 ")]),_:1})):U("",!0)]),r("div",ns,"UID. "+x(e.id),1)]),b(u).state.userInfo.id>0&&b(u).state.userInfo.username!=e.username?(o(),p("div",ts,[n(se,{placement:"bottom-end",trigger:"click",size:"small",options:G.value,onSelect:K},{default:t(()=>[n(ee,{quaternary:"",circle:""},{icon:t(()=>[n(Y,null,{default:t(()=>[n(b(Ve))]),_:1})]),_:1})]),_:1},8,["options"])])):U("",!0)])):U("",!0),n(ne,{show:l.value,user:e,onSuccess:H},null,8,["show","user"]),n(Qe,{show:d.value,user:e,onSuccess:O},null,8,["show","user"])]),_:1},8,["show"]),n(ae,{class:"profile-tabs-wrap",animated:""},{default:t(()=>[n(oe,{name:"post",tab:"泡泡"})]),_:1}),i.value?(o(),p("div",os,[n(le,{num:g.value},null,8,["num"])])):(o(),p("div",as,[m.value.length===0?(o(),p("div",ls,[n(ie,{size:"large",description:"暂无数据"})])):U("",!0),b(u).state.desktopModelShow?(o(),p("div",is,[(o(!0),p(M,null,R(m.value,z=>(o(),F(B,{key:z.id},{default:t(()=>[n(_e,{post:z},null,8,["post"])]),_:2},1024))),128))])):(o(),p("div",_s,[(o(!0),p(M,null,R(m.value,z=>(o(),F(B,{key:z.id},{default:t(()=>[n(ce,{post:z},null,8,["post"])]),_:2},1024))),128))]))]))]),_:1}),w.value>0?(o(),p("div",cs,[n(ue,{page:f.value,"onUpdate:page":L,"page-slot":b(u).state.collapsedRight?5:8,"page-count":w.value},null,8,["page","page-slot","page-count"])])):U("",!0)])}}});const Vs=S(rs,[["__scopeId","data-v-31cfec9c"]]);export{Vs as default}; diff --git a/web/dist/assets/Wallet-6f8e141c.js b/web/dist/assets/Wallet-6f8e141c.js new file mode 100644 index 00000000..1f1dd697 --- /dev/null +++ b/web/dist/assets/Wallet-6f8e141c.js @@ -0,0 +1 @@ +import{_ as H}from"./post-skeleton-49f18127.js";import{_ as Y}from"./main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js";import{d as J,r as c,j as X,c as _,U as e,a0 as o,o as n,Z as y,N as w,a,e as k,F as N,a3 as P,z as ee,v as te,L as r,P as $,K as oe,a1 as ae,V as ne,W as se}from"./@vue-d002002f.js";import{u as le}from"./vuex-4d2f7b35.js";import{b as ce}from"./vue-router-29e6667f.js";import{b as ie}from"./qrcode-bd5089a5.js";import{O as _e,P as re,Q as ue,R as pe,_ as de}from"./index-5fa3c6e0.js";import{a as me}from"./formatTime-000dbebb.js";import{w as ge}from"./@vicons-4022100b.js";import{F as ve,i as he,Y as fe,Z as ye,e as we,a as ke,G as be,I as xe,j as Ce,l as Ie,h as Se,H as Re}from"./naive-ui-d02aa0d7.js";import"./vooks-77bdadbd.js";import"./evtd-b614532e.js";import"./encode-utf8-f813de00.js";import"./dijkstrajs-f906a09e.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./@css-render-6b6cdab1.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./moment-b7869f98.js";const q=m=>(ne("data-v-870bd246"),m=m(),se(),m),Ae={class:"balance-wrap"},ze={class:"balance-line"},Ne={class:"balance-opts"},Pe={key:0,class:"pagination-wrap"},$e={key:0,class:"skeleton-wrap"},qe={key:1},We={key:0,class:"empty-wrap"},Be={class:"bill-line"},Fe={key:0,class:"amount-options"},Le={key:1,style:{"margin-top":"10px"}},Oe={class:"qrcode-wrap"},Te=q(()=>a("canvas",{id:"qrcode-container"},null,-1)),Ue={class:"pay-tips"},Ve={class:"pay-sub-tips"},Ee=q(()=>a("span",{style:{"margin-left":"6px"}}," 支付结果实时同步中... ",-1)),De=J({__name:"Wallet",setup(m){const i=le(),W=ce(),g=c(!1),u=c(100),v=c(!1),p=c(""),h=c(!1),b=c([]),x=c(+W.query.p||1),C=c(20),I=c(0),B=c([100,200,300,500,1e3,3e3,5e3,1e4,5e4]),R=()=>{h.value=!0,re({page:x.value,page_size:C.value}).then(s=>{h.value=!1,b.value=s.list,I.value=Math.ceil(s.pager.total_rows/C.value),window.scrollTo(0,0)}).catch(s=>{h.value=!1})},F=s=>{x.value=s,R()},A=()=>{const s=localStorage.getItem("PAOPAO_TOKEN")||"";s?_e(s).then(l=>{i.commit("updateUserinfo",l),i.commit("triggerAuth",!1),R()}).catch(l=>{i.commit("triggerAuth",!0),i.commit("userLogout")}):(i.commit("triggerAuth",!0),i.commit("userLogout"))},L=()=>{g.value=!0},O=s=>{v.value=!0,ue({amount:u.value}).then(l=>{v.value=!1,p.value=l.pay,ie.toCanvas(document.querySelector("#qrcode-container"),l.pay,{width:150,margin:2});const S=setInterval(()=>{pe({id:l.id}).then(d=>{d.status==="TRADE_SUCCESS"&&(clearInterval(S),window.$message.success("充值成功"),g.value=!1,p.value="",A())}).catch(d=>{console.log(d)})},2e3)}).catch(l=>{v.value=!1})},T=()=>{i.state.userInfo.balance==0?window.$message.warning("您暂无可提现资金"):window.$message.warning("该功能即将开放")};return X(()=>{A()}),(s,l)=>{const S=Y,d=fe,U=ye,f=we,z=ke,V=be,E=H,D=xe,M=Re,j=ve,K=Ce,Q=Ie,Z=Se,G=he;return n(),_("div",null,[e(S,{title:"钱包"}),e(j,{class:"main-content-wrap",bordered:""},{footer:o(()=>[I.value>1?(n(),_("div",Pe,[e(V,{page:x.value,"onUpdate:page":F,"page-slot":y(i).state.collapsedRight?5:8,"page-count":I.value},null,8,["page","page-slot","page-count"])])):w("",!0)]),default:o(()=>[a("div",Ae,[a("div",ze,[e(U,{label:"账户余额 (元)"},{default:o(()=>[e(d,{from:0,to:(y(i).state.userInfo.balance||0)/100,duration:500,precision:2},null,8,["to"])]),_:1}),a("div",Ne,[e(z,{vertical:""},{default:o(()=>[e(f,{size:"small",secondary:"",type:"primary",onClick:L},{default:o(()=>[k(" 充值 ")]),_:1}),e(f,{size:"small",secondary:"",type:"tertiary",onClick:T},{default:o(()=>[k(" 提现 ")]),_:1})]),_:1})])])]),h.value?(n(),_("div",$e,[e(E,{num:C.value},null,8,["num"])])):(n(),_("div",qe,[b.value.length===0?(n(),_("div",We,[e(D,{size:"large",description:"暂无数据"})])):w("",!0),(n(!0),_(N,null,P(b.value,t=>(n(),$(M,{key:t.id},{default:o(()=>[a("div",Be,[a("div",null,"NO."+r(t.id),1),a("div",null,r(t.reason),1),a("div",{class:oe({income:t.change_amount>=0,out:t.change_amount<0})},r((t.change_amount>0?"+":"")+(t.change_amount/100).toFixed(2)),3),a("div",null,r(y(me)(t.created_on)),1)])]),_:2},1024))),128))]))]),_:1}),e(G,{show:g.value,"onUpdate:show":l[0]||(l[0]=t=>g.value=t)},{default:o(()=>[e(Z,{bordered:!1,title:"请选择充值金额",role:"dialog","aria-modal":"true",style:{width:"100%","max-width":"330px"}},{default:o(()=>[p.value.length===0?(n(),_("div",Fe,[e(z,{align:"baseline"},{default:o(()=>[(n(!0),_(N,null,P(B.value,t=>(n(),$(f,{key:t,size:"small",secondary:"",type:u.value===t?"info":"default",onClick:ae(Me=>u.value=t,["stop"])},{default:o(()=>[k(r(t/100)+"元 ",1)]),_:2},1032,["type","onClick"]))),128))]),_:1})])):w("",!0),u.value>0&&p.value.length===0?(n(),_("div",Le,[e(f,{loading:v.value,strong:"",secondary:"",type:"info",style:{width:"100%"},onClick:O},{icon:o(()=>[e(K,null,{default:o(()=>[e(y(ge))]),_:1})]),default:o(()=>[k(" 前往支付 ")]),_:1},8,["loading"])])):w("",!0),ee(a("div",Oe,[Te,a("div",Ue," 请使用支付宝扫码支付"+r((u.value/100).toFixed(2))+"元 ",1),a("div",Ve,[e(Q,{value:100,type:"info",dot:"",processing:""}),Ee])],512),[[te,p.value.length>0]])]),_:1})]),_:1},8,["show"])])}}});const yt=de(De,[["__scopeId","data-v-870bd246"]]);export{yt as default}; diff --git a/web/dist/assets/Wallet-bb7e4a82.js b/web/dist/assets/Wallet-bb7e4a82.js deleted file mode 100644 index c30dfe5b..00000000 --- a/web/dist/assets/Wallet-bb7e4a82.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as H}from"./post-skeleton-3fdfd3d1.js";import{_ as Y}from"./main-nav.vue_vue_type_style_index_0_lang-6c037963.js";import{d as J,r as c,j as X,c as _,U as e,a0 as o,o as n,Z as y,N as w,a,e as k,F as N,a3 as P,z as ee,v as te,L as r,P as $,K as oe,a1 as ae,V as ne,W as se}from"./@vue-b8d06722.js";import{u as le}from"./vuex-613b371d.js";import{b as ce}from"./vue-router-8af5a3a6.js";import{b as ie}from"./qrcode-bd5089a5.js";import{O as _e,P as re,Q as ue,R as pe,_ as me}from"./index-43cab287.js";import{a as de}from"./formatTime-000dbebb.js";import{w as ge}from"./@vicons-7ee3dafd.js";import{F as ve,i as he,Y as fe,Z as ye,e as we,a as ke,G as be,I as xe,j as Ce,l as Ie,h as Se,H as Re}from"./naive-ui-374a973f.js";import"./vooks-423a5f30.js";import"./evtd-b614532e.js";import"./encode-utf8-f813de00.js";import"./dijkstrajs-f906a09e.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./@css-render-4f82e6dd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./moment-b7869f98.js";const q=d=>(ne("data-v-870bd246"),d=d(),se(),d),Ae={class:"balance-wrap"},ze={class:"balance-line"},Ne={class:"balance-opts"},Pe={key:0,class:"pagination-wrap"},$e={key:0,class:"skeleton-wrap"},qe={key:1},We={key:0,class:"empty-wrap"},Be={class:"bill-line"},Fe={key:0,class:"amount-options"},Le={key:1,style:{"margin-top":"10px"}},Oe={class:"qrcode-wrap"},Te=q(()=>a("canvas",{id:"qrcode-container"},null,-1)),Ue={class:"pay-tips"},Ve={class:"pay-sub-tips"},Ee=q(()=>a("span",{style:{"margin-left":"6px"}}," 支付结果实时同步中... ",-1)),De=J({__name:"Wallet",setup(d){const i=le(),W=ce(),g=c(!1),u=c(100),v=c(!1),p=c(""),h=c(!1),b=c([]),x=c(+W.query.p||1),C=c(20),I=c(0),B=c([100,200,300,500,1e3,3e3,5e3,1e4,5e4]),R=()=>{h.value=!0,re({page:x.value,page_size:C.value}).then(s=>{h.value=!1,b.value=s.list,I.value=Math.ceil(s.pager.total_rows/C.value),window.scrollTo(0,0)}).catch(s=>{h.value=!1})},F=s=>{x.value=s,R()},A=()=>{const s=localStorage.getItem("PAOPAO_TOKEN")||"";s?_e(s).then(l=>{i.commit("updateUserinfo",l),i.commit("triggerAuth",!1),R()}).catch(l=>{i.commit("triggerAuth",!0),i.commit("userLogout")}):(i.commit("triggerAuth",!0),i.commit("userLogout"))},L=()=>{g.value=!0},O=s=>{v.value=!0,ue({amount:u.value}).then(l=>{v.value=!1,p.value=l.pay,ie.toCanvas(document.querySelector("#qrcode-container"),l.pay,{width:150,margin:2});const S=setInterval(()=>{pe({id:l.id}).then(m=>{m.status==="TRADE_SUCCESS"&&(clearInterval(S),window.$message.success("充值成功"),g.value=!1,p.value="",A())}).catch(m=>{console.log(m)})},2e3)}).catch(l=>{v.value=!1})},T=()=>{i.state.userInfo.balance==0?window.$message.warning("您暂无可提现资金"):window.$message.warning("该功能即将开放")};return X(()=>{A()}),(s,l)=>{const S=Y,m=fe,U=ye,f=we,z=ke,V=be,E=H,D=xe,M=Re,j=ve,K=Ce,Q=Ie,Z=Se,G=he;return n(),_("div",null,[e(S,{title:"钱包"}),e(j,{class:"main-content-wrap",bordered:""},{footer:o(()=>[I.value>1?(n(),_("div",Pe,[e(V,{page:x.value,"onUpdate:page":F,"page-slot":y(i).state.collapsedRight?5:8,"page-count":I.value},null,8,["page","page-slot","page-count"])])):w("",!0)]),default:o(()=>[a("div",Ae,[a("div",ze,[e(U,{label:"账户余额 (元)"},{default:o(()=>[e(m,{from:0,to:(y(i).state.userInfo.balance||0)/100,duration:500,precision:2},null,8,["from","to"])]),_:1}),a("div",Ne,[e(z,{vertical:""},{default:o(()=>[e(f,{size:"small",secondary:"",type:"primary",onClick:L},{default:o(()=>[k(" 充值 ")]),_:1}),e(f,{size:"small",secondary:"",type:"tertiary",onClick:T},{default:o(()=>[k(" 提现 ")]),_:1})]),_:1})])])]),h.value?(n(),_("div",$e,[e(E,{num:C.value},null,8,["num"])])):(n(),_("div",qe,[b.value.length===0?(n(),_("div",We,[e(D,{size:"large",description:"暂无数据"})])):w("",!0),(n(!0),_(N,null,P(b.value,t=>(n(),$(M,{key:t.id},{default:o(()=>[a("div",Be,[a("div",null,"NO."+r(t.id),1),a("div",null,r(t.reason),1),a("div",{class:oe({income:t.change_amount>=0,out:t.change_amount<0})},r((t.change_amount>0?"+":"")+(t.change_amount/100).toFixed(2)),3),a("div",null,r(y(de)(t.created_on)),1)])]),_:2},1024))),128))]))]),_:1}),e(G,{show:g.value,"onUpdate:show":l[0]||(l[0]=t=>g.value=t)},{default:o(()=>[e(Z,{bordered:!1,title:"请选择充值金额",role:"dialog","aria-modal":"true",style:{width:"100%","max-width":"330px"}},{default:o(()=>[p.value.length===0?(n(),_("div",Fe,[e(z,{align:"baseline"},{default:o(()=>[(n(!0),_(N,null,P(B.value,t=>(n(),$(f,{key:t,size:"small",secondary:"",type:u.value===t?"info":"default",onClick:ae(Me=>u.value=t,["stop"])},{default:o(()=>[k(r(t/100)+"元 ",1)]),_:2},1032,["type","onClick"]))),128))]),_:1})])):w("",!0),u.value>0&&p.value.length===0?(n(),_("div",Le,[e(f,{loading:v.value,strong:"",secondary:"",type:"info",style:{width:"100%"},onClick:O},{icon:o(()=>[e(K,null,{default:o(()=>[e(y(ge))]),_:1})]),default:o(()=>[k(" 前往支付 ")]),_:1},8,["loading"])])):w("",!0),ee(a("div",Oe,[Te,a("div",Ue," 请使用支付宝扫码支付"+r((u.value/100).toFixed(2))+"元 ",1),a("div",Ve,[e(Q,{value:100,type:"info",dot:"",processing:""}),Ee])],512),[[te,p.value.length>0]])]),_:1})]),_:1},8,["show"])])}}});const yt=me(De,[["__scopeId","data-v-870bd246"]]);export{yt as default}; diff --git a/web/dist/assets/content-bfe7958f.js b/web/dist/assets/content-1ad34d0c.js similarity index 97% rename from web/dist/assets/content-bfe7958f.js rename to web/dist/assets/content-1ad34d0c.js index 7414fd28..c54520b8 100644 --- a/web/dist/assets/content-bfe7958f.js +++ b/web/dist/assets/content-1ad34d0c.js @@ -1 +1 @@ -import{d as h,o as e,c as r,F as a,a3 as m,U as s,a0 as o,Z as c,a as C,a1 as k,L as I,P as d,N as g,r as j,e as D,s as b}from"./@vue-b8d06722.js";import{u as L,v as V}from"./@vicons-7ee3dafd.js";import{j as $,V as N,W as A,m as U,X as z,e as F,i as M}from"./naive-ui-374a973f.js";import{_ as B,L as P,M as T}from"./index-43cab287.js";import{e as O}from"./paopao-video-player-b4739fc7.js";const R={class:"link-wrap"},Z={class:"link-txt-wrap"},S=["href"],W={class:"link-txt"},X=h({__name:"post-link",props:{links:{default:()=>[]}},setup(y){const l=y;return(p,u)=>{const x=$;return e(),r("div",R,[(e(!0),r(a,null,m(l.links,n=>(e(),r("div",{class:"link-item",key:n.id},[s(x,{class:"hash-link"},{default:o(()=>[s(c(L))]),_:1}),C("div",Z,[C("a",{href:n.content,class:"hash-link",target:"_blank",onClick:u[0]||(u[0]=k(()=>{},["stop"]))},[C("span",W,I(n.content),1)],8,S)])]))),128))])}}});const ot=B(X,[["__scopeId","data-v-36eef76b"]]),q={key:0},st=h({__name:"post-video",props:{videos:{default:()=>[]},full:{type:Boolean,default:!1}},setup(y){const l=y;return(p,u)=>{const x=N,n=A;return l.videos.length>0?(e(),r("div",q,[s(n,{"x-gap":4,"y-gap":4,cols:p.full?1:5},{default:o(()=>[s(x,{span:p.full?1:3},{default:o(()=>[(e(!0),r(a,null,m(l.videos,v=>(e(),d(c(O),{onClick:u[0]||(u[0]=k(()=>{},["stop"])),key:v.id,src:v.content,colors:["#18a058","#2aca75"],hoverable:!0,theme:"gradient"},null,8,["src"]))),128))]),_:1},8,["span"])]),_:1},8,["cols"])])):g("",!0)}}}),G={class:"images-wrap"},rt=h({__name:"post-image",props:{imgs:{default:()=>[]}},setup(y){const l=y,p="https://paopao-assets.oss-cn-shanghai.aliyuncs.com/public/404.png",u="?x-oss-process=image/resize,m_fill,w_300,h_300,limit_0/auto-orient,1/format,png";return(x,n)=>{const v=U,_=N,f=A,w=z;return e(),r("div",G,[[1].includes(l.imgs.length)?(e(),d(w,{key:0},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:2},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,t=>(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[0]||(n[0]=k(()=>{},["stop"])),class:"post-img x1","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024))),128))]),_:1})]),_:1})):g("",!0),[2,3].includes(l.imgs.length)?(e(),d(w,{key:1},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:3},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,t=>(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[1]||(n[1]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024))),128))]),_:1})]),_:1})):g("",!0),[4].includes(l.imgs.length)?(e(),d(w,{key:2},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:4},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,t=>(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[2]||(n[2]=k(()=>{},["stop"])),class:"post-img x3","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024))),128))]),_:1})]),_:1})):g("",!0),[5].includes(l.imgs.length)?(e(),d(w,{key:3},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:3},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,{key:t.id},[i<3?(e(),d(_,{key:0},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[3]||(n[3]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),128))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:2,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,{key:t.id},[i>=3?(e(),d(_,{key:0},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[4]||(n[4]=k(()=>{},["stop"])),class:"post-img x1","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),128))]),_:1})]),_:1})):g("",!0),[6].includes(l.imgs.length)?(e(),d(w,{key:4},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:3},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,{key:t.id},[i<3?(e(),d(_,{key:0},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[5]||(n[5]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),128))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:3,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,{key:t.id},[i>=3?(e(),d(_,{key:0},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[6]||(n[6]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),128))]),_:1})]),_:1})):g("",!0),l.imgs.length===7?(e(),d(w,{key:5},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:4},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i<4?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[7]||(n[7]=k(()=>{},["stop"])),class:"post-img x3","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:3,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i>=4?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[8]||(n[8]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1})]),_:1})):g("",!0),l.imgs.length===8?(e(),d(w,{key:6},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:4},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i<4?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[9]||(n[9]=k(()=>{},["stop"])),class:"post-img x3","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:4,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i>=4?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[10]||(n[10]=k(()=>{},["stop"])),class:"post-img x3","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1})]),_:1})):g("",!0),l.imgs.length===9?(e(),d(w,{key:7},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:3},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i<3?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[11]||(n[11]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:3,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i>=3&&i<6?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[12]||(n[12]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:3,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i>=6?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[13]||(n[13]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1})]),_:1})):g("",!0)])}}});const H={class:"attachment-wrap"},J=h({__name:"post-attachment",props:{attachments:{default:()=>[]},price:{default:0}},setup(y){const l=y,p=j(!1),u=j(""),x=j(0),n=_=>{p.value=!0,x.value=_.id,u.value="这是一个免费附件,您可以直接下载?",_.type===8&&(u.value=()=>b("div",{},[b("p",{},"这是一个收费附件,下载将收取"+(l.price/100).toFixed(2)+"元")]),P({id:x.value}).then(f=>{f.paid&&(u.value=()=>b("div",{},[b("p",{},"此次下载您已支付或无需付费,请确认下载")]))}).catch(f=>{p.value=!1}))},v=()=>{T({id:x.value}).then(_=>{window.open(_.signed_url.replace("http://","https://"),"_blank")}).catch(_=>{console.log(_)})};return(_,f)=>{const w=$,t=F,i=M;return e(),r("div",H,[(e(!0),r(a,null,m(_.attachments,E=>(e(),r("div",{class:"attach-item",key:E.id},[s(t,{onClick:k(K=>n(E),["stop"]),type:"primary",size:"tiny",dashed:""},{icon:o(()=>[s(w,null,{default:o(()=>[s(c(V))]),_:1})]),default:o(()=>[D(" "+I(E.type===8?"收费":"免费")+"附件 ",1)]),_:2},1032,["onClick"])]))),128)),s(i,{show:p.value,"onUpdate:show":f[0]||(f[0]=E=>p.value=E),"mask-closable":!1,preset:"dialog",title:"下载提示",content:u.value,"positive-text":"确认下载","negative-text":"取消","icon-placement":"top",onPositiveClick:v},null,8,["show","content"])])}}});const lt=B(J,[["__scopeId","data-v-22563084"]]),ct=y=>{const l=[],p=[];var u=/(#|#)([^#@\s])+?\s+?/g,x=/@([a-zA-Z0-9])+?\s+?/g;return y=y.replace(/<[^>]*?>/gi,"").replace(/(.*?)<\/[^>]*?>/gi,"").replace(u,n=>(l.push(n.substr(1).trim()),''+n.trim()+" ")).replace(x,n=>(p.push(n.substr(1).trim()),''+n.trim()+" ")),{content:y,tags:l,users:p}};export{rt as _,lt as a,st as b,ot as c,ct as p}; +import{d as h,o as e,c as r,F as a,a3 as m,U as s,a0 as o,Z as c,a as C,a1 as k,L as I,P as d,N as g,r as j,e as D,s as b}from"./@vue-d002002f.js";import{u as L,v as V}from"./@vicons-4022100b.js";import{j as $,V as N,W as A,m as U,X as z,e as F,i as M}from"./naive-ui-d02aa0d7.js";import{_ as B,L as P,M as T}from"./index-5fa3c6e0.js";import{e as O}from"./paopao-video-player-d47e9bf6.js";const R={class:"link-wrap"},Z={class:"link-txt-wrap"},S=["href"],W={class:"link-txt"},X=h({__name:"post-link",props:{links:{default:()=>[]}},setup(y){const l=y;return(p,u)=>{const x=$;return e(),r("div",R,[(e(!0),r(a,null,m(l.links,n=>(e(),r("div",{class:"link-item",key:n.id},[s(x,{class:"hash-link"},{default:o(()=>[s(c(L))]),_:1}),C("div",Z,[C("a",{href:n.content,class:"hash-link",target:"_blank",onClick:u[0]||(u[0]=k(()=>{},["stop"]))},[C("span",W,I(n.content),1)],8,S)])]))),128))])}}});const ot=B(X,[["__scopeId","data-v-36eef76b"]]),q={key:0},st=h({__name:"post-video",props:{videos:{default:()=>[]},full:{type:Boolean,default:!1}},setup(y){const l=y;return(p,u)=>{const x=N,n=A;return l.videos.length>0?(e(),r("div",q,[s(n,{"x-gap":4,"y-gap":4,cols:p.full?1:5},{default:o(()=>[s(x,{span:p.full?1:3},{default:o(()=>[(e(!0),r(a,null,m(l.videos,v=>(e(),d(c(O),{onClick:u[0]||(u[0]=k(()=>{},["stop"])),key:v.id,src:v.content,colors:["#18a058","#2aca75"],hoverable:!0,theme:"gradient"},null,8,["src"]))),128))]),_:1},8,["span"])]),_:1},8,["cols"])])):g("",!0)}}}),G={class:"images-wrap"},rt=h({__name:"post-image",props:{imgs:{default:()=>[]}},setup(y){const l=y,p="https://paopao-assets.oss-cn-shanghai.aliyuncs.com/public/404.png",u="?x-oss-process=image/resize,m_fill,w_300,h_300,limit_0/auto-orient,1/format,png";return(x,n)=>{const v=U,_=N,f=A,w=z;return e(),r("div",G,[[1].includes(l.imgs.length)?(e(),d(w,{key:0},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:2},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,t=>(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[0]||(n[0]=k(()=>{},["stop"])),class:"post-img x1","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024))),128))]),_:1})]),_:1})):g("",!0),[2,3].includes(l.imgs.length)?(e(),d(w,{key:1},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:3},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,t=>(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[1]||(n[1]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024))),128))]),_:1})]),_:1})):g("",!0),[4].includes(l.imgs.length)?(e(),d(w,{key:2},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:4},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,t=>(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[2]||(n[2]=k(()=>{},["stop"])),class:"post-img x3","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024))),128))]),_:1})]),_:1})):g("",!0),[5].includes(l.imgs.length)?(e(),d(w,{key:3},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:3},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,{key:t.id},[i<3?(e(),d(_,{key:0},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[3]||(n[3]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),128))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:2,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,{key:t.id},[i>=3?(e(),d(_,{key:0},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[4]||(n[4]=k(()=>{},["stop"])),class:"post-img x1","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),128))]),_:1})]),_:1})):g("",!0),[6].includes(l.imgs.length)?(e(),d(w,{key:4},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:3},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,{key:t.id},[i<3?(e(),d(_,{key:0},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[5]||(n[5]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),128))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:3,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,{key:t.id},[i>=3?(e(),d(_,{key:0},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[6]||(n[6]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),128))]),_:1})]),_:1})):g("",!0),l.imgs.length===7?(e(),d(w,{key:5},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:4},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i<4?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[7]||(n[7]=k(()=>{},["stop"])),class:"post-img x3","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:3,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i>=4?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[8]||(n[8]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1})]),_:1})):g("",!0),l.imgs.length===8?(e(),d(w,{key:6},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:4},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i<4?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[9]||(n[9]=k(()=>{},["stop"])),class:"post-img x3","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:4,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i>=4?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[10]||(n[10]=k(()=>{},["stop"])),class:"post-img x3","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1})]),_:1})):g("",!0),l.imgs.length===9?(e(),d(w,{key:7},{default:o(()=>[s(f,{"x-gap":4,"y-gap":4,cols:3},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i<3?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[11]||(n[11]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:3,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i>=3&&i<6?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[12]||(n[12]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1}),s(f,{"x-gap":4,"y-gap":4,cols:3,style:{"margin-top":"4px"}},{default:o(()=>[(e(!0),r(a,null,m(l.imgs,(t,i)=>(e(),r(a,null,[i>=6?(e(),d(_,{key:t.id},{default:o(()=>[s(v,{onError:()=>t.content=c(p),onClick:n[13]||(n[13]=k(()=>{},["stop"])),class:"post-img x2","object-fit":"cover",src:t.content+c(u),"preview-src":t.content},null,8,["onError","src","preview-src"])]),_:2},1024)):g("",!0)],64))),256))]),_:1})]),_:1})):g("",!0)])}}});const H={class:"attachment-wrap"},J=h({__name:"post-attachment",props:{attachments:{default:()=>[]},price:{default:0}},setup(y){const l=y,p=j(!1),u=j(""),x=j(0),n=_=>{p.value=!0,x.value=_.id,u.value="这是一个免费附件,您可以直接下载?",_.type===8&&(u.value=()=>b("div",{},[b("p",{},"这是一个收费附件,下载将收取"+(l.price/100).toFixed(2)+"元")]),P({id:x.value}).then(f=>{f.paid&&(u.value=()=>b("div",{},[b("p",{},"此次下载您已支付或无需付费,请确认下载")]))}).catch(f=>{p.value=!1}))},v=()=>{T({id:x.value}).then(_=>{window.open(_.signed_url.replace("http://","https://"),"_blank")}).catch(_=>{console.log(_)})};return(_,f)=>{const w=$,t=F,i=M;return e(),r("div",H,[(e(!0),r(a,null,m(_.attachments,E=>(e(),r("div",{class:"attach-item",key:E.id},[s(t,{onClick:k(K=>n(E),["stop"]),type:"primary",size:"tiny",dashed:""},{icon:o(()=>[s(w,null,{default:o(()=>[s(c(V))]),_:1})]),default:o(()=>[D(" "+I(E.type===8?"收费":"免费")+"附件 ",1)]),_:2},1032,["onClick"])]))),128)),s(i,{show:p.value,"onUpdate:show":f[0]||(f[0]=E=>p.value=E),"mask-closable":!1,preset:"dialog",title:"下载提示",content:u.value,"positive-text":"确认下载","negative-text":"取消","icon-placement":"top",onPositiveClick:v},null,8,["show","content"])])}}});const lt=B(J,[["__scopeId","data-v-22563084"]]),ct=y=>{const l=[],p=[];var u=/(#|#)([^#@\s])+?\s+?/g,x=/@([a-zA-Z0-9])+?\s+?/g;return y=y.replace(/<[^>]*?>/gi,"").replace(/(.*?)<\/[^>]*?>/gi,"").replace(u,n=>(l.push(n.substr(1).trim()),''+n.trim()+" ")).replace(x,n=>(p.push(n.substr(1).trim()),''+n.trim()+" ")),{content:y,tags:l,users:p}};export{rt as _,lt as a,st as b,ot as c,ct as p}; diff --git a/web/dist/assets/content-5ea7b681.css b/web/dist/assets/content-2fda112b.css similarity index 68% rename from web/dist/assets/content-5ea7b681.css rename to web/dist/assets/content-2fda112b.css index 7d8876e5..dcd03a9d 100644 --- a/web/dist/assets/content-5ea7b681.css +++ b/web/dist/assets/content-2fda112b.css @@ -1 +1 @@ -.link-wrap[data-v-36eef76b]{margin-bottom:10px;position:relative}.link-wrap .link-item[data-v-36eef76b]{height:22px;display:flex;align-items:center;position:relative}.link-wrap .link-item .link-txt-wrap[data-v-36eef76b]{left:calc(1em + 4px);width:calc(100% - 1em);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute}.link-wrap .link-item .link-txt-wrap .hash-link .link-txt[data-v-36eef76b]{word-break:break-all}.images-wrap{margin-top:10px}.post-img{display:flex;margin:0;border-radius:3px;overflow:hidden;background:rgba(0,0,0,.1);border:1px solid #eee}.post-img img{width:100%;height:100%}.x1{height:152px}.x2{height:98px}.x3{height:87px}.dark .post-img{border:1px solid #333}@media screen and (max-width: 821px){.x1{height:100px}.x2{height:70px}.x3{height:50px}}.attach-item[data-v-22563084]{margin:10px 0} +.link-wrap[data-v-36eef76b]{margin-bottom:10px;position:relative}.link-wrap .link-item[data-v-36eef76b]{height:22px;display:flex;align-items:center;position:relative}.link-wrap .link-item .link-txt-wrap[data-v-36eef76b]{left:calc(1em + 4px);width:calc(100% - 1em);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute}.link-wrap .link-item .link-txt-wrap .hash-link .link-txt[data-v-36eef76b]{word-break:break-all}.images-wrap{margin-top:10px}.post-img{display:flex;margin:0;border-radius:3px;overflow:hidden;background:rgba(0,0,0,.1);border:1px solid #eee}.post-img img{width:100%;height:100%}.x1{height:168px}.x2{height:108px}.x3{height:96px}.dark .post-img{border:1px solid #333}@media screen and (max-width: 821px){.x1{height:100px}.x2{height:70px}.x3{height:50px}}.attach-item[data-v-22563084]{margin:10px 0} diff --git a/web/dist/assets/index-43cab287.js b/web/dist/assets/index-43cab287.js deleted file mode 100644 index 0d19743a..00000000 --- a/web/dist/assets/index-43cab287.js +++ /dev/null @@ -1 +0,0 @@ -import{d as z,r as R,D as Z,j,o as v,P as D,a0 as a,a as k,U as o,c as T,e as S,O as q,a1 as N,N as U,Z as h,n as Q,w as H,a2 as ae,F as J,a3 as X,L as $,s as P,a4 as he,Q as Y,K as ge,a5 as fe}from"./@vue-b8d06722.js";import{c as ve,a as we,u as le,b as ye}from"./vue-router-8af5a3a6.js";import{c as ke,u as B}from"./vuex-613b371d.js";import{a as be}from"./axios-4a70c6fc.js";import{_ as Pe,N as Le,a as ue,b as ce,c as Oe,d as Ae,e as ie,f as Te,g as Re,h as de,i as Ce,j as F,k as Ee,u as Ie,l as $e,m as Se,n as Ue,o as Me,p as Ke,q as qe,r as Ne,s as De,t as xe}from"./naive-ui-374a973f.js";import{S as Fe,M as Ve,L as ze,C as Be,B as We,P as He,W as je,a as Qe,H as ee,b as te,c as oe}from"./@vicons-7ee3dafd.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-556279b6.js";import"./evtd-b614532e.js";import"./@css-render-4f82e6dd.js";import"./vooks-423a5f30.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))i(c);new MutationObserver(c=>{for(const n of c)if(n.type==="childList")for(const m of n.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&i(m)}).observe(document,{childList:!0,subtree:!0});function l(c){const n={};return c.integrity&&(n.integrity=c.integrity),c.referrerPolicy&&(n.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?n.credentials="include":c.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(c){if(c.ep)return;c.ep=!0;const n=l(c);fetch(c.href,n)}})();const Ge="modulepreload",Ze=function(e){return"/"+e},se={},A=function(t,l,i){if(!l||l.length===0)return t();const c=document.getElementsByTagName("link");return Promise.all(l.map(n=>{if(n=Ze(n),n in se)return;se[n]=!0;const m=n.endsWith(".css"),d=m?'[rel="stylesheet"]':"";if(!!i)for(let b=c.length-1;b>=0;b--){const _=c[b];if(_.href===n&&(!m||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${n}"]${d}`))return;const g=document.createElement("link");if(g.rel=m?"stylesheet":Ge,m||(g.as="script",g.crossOrigin=""),g.href=n,document.head.appendChild(g),m)return new Promise((b,_)=>{g.addEventListener("load",b),g.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${n}`)))})})).then(()=>t())},Je=[{path:"/",name:"home",meta:{title:"广场",keepAlive:!0},component:()=>A(()=>import("./Home-398b71c7.js"),["assets/Home-398b71c7.js","assets/post-item.vue_vue_type_style_index_0_lang-f7f6062b.js","assets/content-bfe7958f.js","assets/@vue-b8d06722.js","assets/@vicons-7ee3dafd.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/vueuc-556279b6.js","assets/evtd-b614532e.js","assets/@css-render-4f82e6dd.js","assets/vooks-423a5f30.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/paopao-video-player-b4739fc7.js","assets/content-5ea7b681.css","assets/vuex-613b371d.js","assets/vue-router-8af5a3a6.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/copy-to-clipboard-1dd3075d.js","assets/toggle-selection-93f4ad84.js","assets/post-item-593ff254.css","assets/post-skeleton-3fdfd3d1.js","assets/post-skeleton-f1900002.css","assets/lodash-94eb5868.js","assets/IEnum-a180d93e.js","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Home-c075a37e.css","assets/vfonts-7afd136d.css"])},{path:"/post",name:"post",meta:{title:"话题详情"},component:()=>A(()=>import("./Post-b5c82479.js"),["assets/Post-b5c82479.js","assets/@vue-b8d06722.js","assets/vuex-613b371d.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/IEnum-a180d93e.js","assets/@vicons-7ee3dafd.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/vueuc-556279b6.js","assets/evtd-b614532e.js","assets/@css-render-4f82e6dd.js","assets/vooks-423a5f30.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/content-bfe7958f.js","assets/paopao-video-player-b4739fc7.js","assets/content-5ea7b681.css","assets/vue-router-8af5a3a6.js","assets/post-skeleton-3fdfd3d1.js","assets/post-skeleton-f1900002.css","assets/lodash-94eb5868.js","assets/copy-to-clipboard-1dd3075d.js","assets/toggle-selection-93f4ad84.js","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/main-nav-3ef9bae6.css","assets/v3-infinite-loading-e8a7ab9d.js","assets/v3-infinite-loading-7d241236.css","assets/axios-4a70c6fc.js","assets/Post-521adc02.css","assets/vfonts-7afd136d.css"])},{path:"/topic",name:"topic",meta:{title:"话题"},component:()=>A(()=>import("./Topic-1e3989cd.js"),["assets/Topic-1e3989cd.js","assets/@vicons-7ee3dafd.js","assets/@vue-b8d06722.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/vueuc-556279b6.js","assets/evtd-b614532e.js","assets/@css-render-4f82e6dd.js","assets/vooks-423a5f30.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/vuex-613b371d.js","assets/vue-router-8af5a3a6.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Topic-8dbcebb5.css","assets/vfonts-7afd136d.css"])},{path:"/anouncement",name:"anouncement",meta:{title:"公告"},component:()=>A(()=>import("./Anouncement-c1b36ed4.js"),["assets/Anouncement-c1b36ed4.js","assets/post-skeleton-3fdfd3d1.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/@vue-b8d06722.js","assets/vueuc-556279b6.js","assets/evtd-b614532e.js","assets/@css-render-4f82e6dd.js","assets/vooks-423a5f30.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/vuex-613b371d.js","assets/vue-router-8af5a3a6.js","assets/@vicons-7ee3dafd.js","assets/main-nav-3ef9bae6.css","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/axios-4a70c6fc.js","assets/Anouncement-662e2d95.css","assets/vfonts-7afd136d.css"])},{path:"/profile",name:"profile",meta:{title:"主页"},component:()=>A(()=>import("./Profile-8f13b93f.js"),["assets/Profile-8f13b93f.js","assets/post-item.vue_vue_type_style_index_0_lang-f7f6062b.js","assets/content-bfe7958f.js","assets/@vue-b8d06722.js","assets/@vicons-7ee3dafd.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/vueuc-556279b6.js","assets/evtd-b614532e.js","assets/@css-render-4f82e6dd.js","assets/vooks-423a5f30.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/paopao-video-player-b4739fc7.js","assets/content-5ea7b681.css","assets/vuex-613b371d.js","assets/vue-router-8af5a3a6.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/copy-to-clipboard-1dd3075d.js","assets/toggle-selection-93f4ad84.js","assets/post-item-593ff254.css","assets/post-skeleton-3fdfd3d1.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Profile-87e8712d.css","assets/vfonts-7afd136d.css"])},{path:"/user",name:"user",meta:{title:"用户详情"},component:()=>A(()=>import("./User-c16a5bad.js"),["assets/User-c16a5bad.js","assets/post-item.vue_vue_type_style_index_0_lang-f7f6062b.js","assets/content-bfe7958f.js","assets/@vue-b8d06722.js","assets/@vicons-7ee3dafd.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/vueuc-556279b6.js","assets/evtd-b614532e.js","assets/@css-render-4f82e6dd.js","assets/vooks-423a5f30.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/paopao-video-player-b4739fc7.js","assets/content-5ea7b681.css","assets/vuex-613b371d.js","assets/vue-router-8af5a3a6.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/copy-to-clipboard-1dd3075d.js","assets/toggle-selection-93f4ad84.js","assets/post-item-593ff254.css","assets/post-skeleton-3fdfd3d1.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/User-dfc90f68.css","assets/vfonts-7afd136d.css"])},{path:"/messages",name:"messages",meta:{title:"消息"},component:()=>A(()=>import("./Messages-4036bf90.js"),["assets/Messages-4036bf90.js","assets/@vue-b8d06722.js","assets/vue-router-8af5a3a6.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/@vicons-7ee3dafd.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/vueuc-556279b6.js","assets/evtd-b614532e.js","assets/@css-render-4f82e6dd.js","assets/vooks-423a5f30.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/vuex-613b371d.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Messages-7ed31ecd.css","assets/vfonts-7afd136d.css"])},{path:"/collection",name:"collection",meta:{title:"收藏"},component:()=>A(()=>import("./Collection-653778e5.js"),["assets/Collection-653778e5.js","assets/post-item.vue_vue_type_style_index_0_lang-f7f6062b.js","assets/content-bfe7958f.js","assets/@vue-b8d06722.js","assets/@vicons-7ee3dafd.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/vueuc-556279b6.js","assets/evtd-b614532e.js","assets/@css-render-4f82e6dd.js","assets/vooks-423a5f30.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/paopao-video-player-b4739fc7.js","assets/content-5ea7b681.css","assets/vuex-613b371d.js","assets/vue-router-8af5a3a6.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/copy-to-clipboard-1dd3075d.js","assets/toggle-selection-93f4ad84.js","assets/post-item-593ff254.css","assets/post-skeleton-3fdfd3d1.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Collection-b97b3cf7.css","assets/vfonts-7afd136d.css"])},{path:"/contacts",name:"contacts",meta:{title:"好友"},component:()=>A(()=>import("./Contacts-c762cdd3.js"),["assets/Contacts-c762cdd3.js","assets/vue-router-8af5a3a6.js","assets/@vue-b8d06722.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/vueuc-556279b6.js","assets/evtd-b614532e.js","assets/@css-render-4f82e6dd.js","assets/vooks-423a5f30.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/post-skeleton-3fdfd3d1.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/vuex-613b371d.js","assets/@vicons-7ee3dafd.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Contacts-b60e5e0d.css","assets/vfonts-7afd136d.css"])},{path:"/wallet",name:"wallet",meta:{title:"钱包"},component:()=>A(()=>import("./Wallet-bb7e4a82.js"),["assets/Wallet-bb7e4a82.js","assets/post-skeleton-3fdfd3d1.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/@vue-b8d06722.js","assets/vueuc-556279b6.js","assets/evtd-b614532e.js","assets/@css-render-4f82e6dd.js","assets/vooks-423a5f30.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/vuex-613b371d.js","assets/vue-router-8af5a3a6.js","assets/@vicons-7ee3dafd.js","assets/main-nav-3ef9bae6.css","assets/qrcode-bd5089a5.js","assets/encode-utf8-f813de00.js","assets/dijkstrajs-f906a09e.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/axios-4a70c6fc.js","assets/Wallet-77044929.css","assets/vfonts-7afd136d.css"])},{path:"/setting",name:"setting",meta:{title:"设置"},component:()=>A(()=>import("./Setting-8c94862d.js"),["assets/Setting-8c94862d.js","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/vuex-613b371d.js","assets/@vue-b8d06722.js","assets/vue-router-8af5a3a6.js","assets/vooks-423a5f30.js","assets/evtd-b614532e.js","assets/@vicons-7ee3dafd.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/vueuc-556279b6.js","assets/@css-render-4f82e6dd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Setting-bfd24152.css","assets/vfonts-7afd136d.css"])},{path:"/404",name:"404",meta:{title:"404"},component:()=>A(()=>import("./404-73601eaa.js"),["assets/404-73601eaa.js","assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js","assets/vuex-613b371d.js","assets/@vue-b8d06722.js","assets/vue-router-8af5a3a6.js","assets/vooks-423a5f30.js","assets/evtd-b614532e.js","assets/@vicons-7ee3dafd.js","assets/naive-ui-374a973f.js","assets/seemly-76b7b838.js","assets/vueuc-556279b6.js","assets/@css-render-4f82e6dd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/404-020b2afd.css","assets/vfonts-7afd136d.css"])},{path:"/:pathMatch(.*)",redirect:"/404"}],pe=ve({history:we(),routes:Je});pe.beforeEach((e,t,l)=>{document.title=`${e.meta.title} | 泡泡 - 一个清新文艺的微社区`,l()});const Xe=ke({state:{refresh:Date.now(),refreshTopicFollow:Date.now(),theme:localStorage.getItem("PAOPAO_THEME"),collapsedLeft:document.body.clientWidth<=821,collapsedRight:document.body.clientWidth<=821,drawerModelShow:document.body.clientWidth<=821,desktopModelShow:document.body.clientWidth>821,authModalShow:!1,authModelTab:"signin",userLogined:!1,userInfo:{id:0,username:"",nickname:""}},mutations:{refresh(e,t){e.refresh=t||Date.now()},refreshTopicFollow(e){e.refreshTopicFollow=Date.now()},triggerTheme(e,t){e.theme=t},triggerAuth(e,t){e.authModalShow=t},triggerAuthKey(e,t){e.authModelTab=t},triggerCollapsedLeft(e,t){e.collapsedLeft=t,e.drawerModelShow=t,e.desktopModelShow=!t},triggerCollapsedRight(e,t){e.collapsedRight=t},updateUserinfo(e,t){e.userInfo=t,e.userInfo.id>0&&(e.userLogined=!0)},userLogout(e){localStorage.removeItem("PAOPAO_TOKEN"),e.userInfo={id:0,nickname:"",username:""},e.userLogined=!1}},actions:{},modules:{}}),G=be.create({baseURL:"",timeout:3e4});G.interceptors.request.use(e=>(localStorage.getItem("PAOPAO_TOKEN")&&(e.headers.Authorization="Bearer "+localStorage.getItem("PAOPAO_TOKEN")),e),e=>Promise.reject(e));G.interceptors.response.use(e=>{const{data:t={},code:l=0}=(e==null?void 0:e.data)||{};if(+l==0)return t||{};Promise.reject((e==null?void 0:e.data)||{})},(e={})=>{var l;const{response:t={}}=e||{};return+(t==null?void 0:t.status)==401?(localStorage.removeItem("PAOPAO_TOKEN"),(t==null?void 0:t.data.code)!==10005?window.$message.warning((t==null?void 0:t.data.msg)||"鉴权失败"):window.$store.commit("triggerAuth",!0)):window.$message.error(((l=t==null?void 0:t.data)==null?void 0:l.msg)||"请求失败"),Promise.reject((t==null?void 0:t.data)||{})});function s(e){return G(e)}const ne=e=>s({method:"post",url:"/v1/auth/login",data:e}),Ye=e=>s({method:"post",url:"/v1/auth/register",data:e}),W=(e="")=>s({method:"get",url:"/v1/user/info",headers:{Authorization:`Bearer ${e}`}}),et={class:"auth-wrap"},tt={key:0},ot=z({__name:"auth",setup(e){const t=R("true".toLowerCase()==="true"),l=B(),i=R(!1),c=R(),n=Z({username:"",password:""}),m=R(),d=Z({username:"",password:"",repassword:""}),M={username:{required:!0,message:"请输入账户名"},password:{required:!0,message:"请输入密码"},repassword:[{required:!0,message:"请输入密码"},{validator:(_,u)=>!!d.password&&d.password.startsWith(u)&&d.password.length>=u.length,message:"两次密码输入不一致",trigger:"input"}]},g=_=>{var u;_.preventDefault(),_.stopPropagation(),(u=c.value)==null||u.validate(L=>{L||(i.value=!0,ne({username:n.username,password:n.password}).then(p=>{const O=(p==null?void 0:p.token)||"";return localStorage.setItem("PAOPAO_TOKEN",O),W(O)}).then(p=>{window.$message.success("登录成功"),i.value=!1,l.commit("updateUserinfo",p),l.commit("triggerAuth",!1),l.commit("refresh"),n.username="",n.password=""}).catch(p=>{i.value=!1}))})},b=_=>{var u;_.preventDefault(),_.stopPropagation(),(u=m.value)==null||u.validate(L=>{L||(i.value=!0,Ye({username:d.username,password:d.password}).then(p=>ne({username:d.username,password:d.password})).then(p=>{const O=(p==null?void 0:p.token)||"";return localStorage.setItem("PAOPAO_TOKEN",O),W(O)}).then(p=>{window.$message.success("注册成功"),i.value=!1,l.commit("updateUserinfo",p),l.commit("triggerAuth",!1),d.username="",d.password="",d.repassword=""}).catch(p=>{i.value=!1}))})};return j(()=>{const _=localStorage.getItem("PAOPAO_TOKEN")||"";_?W(_).then(u=>{l.commit("updateUserinfo",u),l.commit("triggerAuth",!1)}).catch(u=>{l.commit("userLogout")}):l.commit("userLogout")}),(_,u)=>{const L=Pe,p=Le,O=ue,r=ce,w=Oe,y=Ae,E=ie,x=Te,I=Re,K=de,V=Ce;return v(),D(V,{show:h(l).state.authModalShow,"onUpdate:show":u[7]||(u[7]=f=>h(l).state.authModalShow=f),class:"auth-card",preset:"card",size:"small","mask-closable":!1,bordered:!1,style:{width:"360px"}},{default:a(()=>[k("div",et,[o(K,{bordered:!1},{default:a(()=>[t.value?U("",!0):(v(),T("div",tt,[o(O,{justify:"center"},{default:a(()=>[o(p,null,{default:a(()=>[o(L,{type:"success"},{default:a(()=>[S("账号登录")]),_:1})]),_:1})]),_:1}),o(y,{ref_key:"loginRef",ref:c,model:n,rules:{username:{required:!0,message:"请输入账户名"},password:{required:!0,message:"请输入密码"}}},{default:a(()=>[o(w,{label:"账户",path:"username"},{default:a(()=>[o(r,{value:n.username,"onUpdate:value":u[0]||(u[0]=f=>n.username=f),placeholder:"请输入用户名",onKeyup:q(N(g,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1}),o(w,{label:"密码",path:"password"},{default:a(()=>[o(r,{type:"password","show-password-on":"mousedown",value:n.password,"onUpdate:value":u[1]||(u[1]=f=>n.password=f),placeholder:"请输入账户密码",onKeyup:q(N(g,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1})]),_:1},8,["model"]),o(E,{type:"primary",block:"",secondary:"",strong:"",loading:i.value,onClick:g},{default:a(()=>[S(" 登录 ")]),_:1},8,["loading"])])),t.value?(v(),D(I,{key:1,"default-value":h(l).state.authModelTab,size:"large","justify-content":"space-evenly"},{default:a(()=>[o(x,{name:"signin",tab:"登录"},{default:a(()=>[o(y,{ref_key:"loginRef",ref:c,model:n,rules:{username:{required:!0,message:"请输入账户名"},password:{required:!0,message:"请输入密码"}}},{default:a(()=>[o(w,{label:"账户",path:"username"},{default:a(()=>[o(r,{value:n.username,"onUpdate:value":u[2]||(u[2]=f=>n.username=f),placeholder:"请输入用户名",onKeyup:q(N(g,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1}),o(w,{label:"密码",path:"password"},{default:a(()=>[o(r,{type:"password","show-password-on":"mousedown",value:n.password,"onUpdate:value":u[3]||(u[3]=f=>n.password=f),placeholder:"请输入账户密码",onKeyup:q(N(g,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1})]),_:1},8,["model"]),o(E,{type:"primary",block:"",secondary:"",strong:"",loading:i.value,onClick:g},{default:a(()=>[S(" 登录 ")]),_:1},8,["loading"])]),_:1}),o(x,{name:"signup",tab:"注册"},{default:a(()=>[o(y,{ref_key:"registerRef",ref:m,model:d,rules:M},{default:a(()=>[o(w,{label:"用户名",path:"username"},{default:a(()=>[o(r,{value:d.username,"onUpdate:value":u[4]||(u[4]=f=>d.username=f),placeholder:"用户名注册后无法修改"},null,8,["value"])]),_:1}),o(w,{label:"密码",path:"password"},{default:a(()=>[o(r,{type:"password","show-password-on":"mousedown",placeholder:"密码不少于6位",value:d.password,"onUpdate:value":u[5]||(u[5]=f=>d.password=f),onKeyup:q(N(b,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1}),o(w,{label:"重复密码",path:"repassword"},{default:a(()=>[o(r,{type:"password","show-password-on":"mousedown",placeholder:"请再次输入密码",value:d.repassword,"onUpdate:value":u[6]||(u[6]=f=>d.repassword=f),onKeyup:q(N(b,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1})]),_:1},8,["model"]),o(E,{type:"primary",block:"",secondary:"",strong:"",loading:i.value,onClick:b},{default:a(()=>[S(" 注册 ")]),_:1},8,["loading"])]),_:1})]),_:1},8,["default-value"])):U("",!0)]),_:1})])]),_:1},8,["show"])}}});const me=(e,t)=>{const l=e.__vccOpts||e;for(const[i,c]of t)l[i]=c;return l},st=me(ot,[["__scopeId","data-v-053dfa44"]]),Jt=e=>s({method:"get",url:"/v1/posts",params:e}),nt=e=>s({method:"get",url:"/v1/tags",params:e}),Xt=e=>s({method:"get",url:"/v1/post",params:e}),Yt=e=>s({method:"get",url:"/v1/post/star",params:e}),eo=e=>s({method:"post",url:"/v1/post/star",data:e}),to=e=>s({method:"get",url:"/v1/post/collection",params:e}),oo=e=>s({method:"post",url:"/v1/post/collection",data:e}),so=e=>s({method:"get",url:"/v1/post/comments",params:e}),no=e=>s({method:"get",url:"/v1/user/contacts",params:e}),ro=e=>s({method:"post",url:"/v1/post",data:e}),ao=e=>s({method:"delete",url:"/v1/post",data:e}),lo=e=>s({method:"post",url:"/v1/post/lock",data:e}),uo=e=>s({method:"post",url:"/v1/post/stick",data:e}),co=e=>s({method:"post",url:"/v1/post/visibility",data:e}),io=e=>s({method:"post",url:"/v1/tweet/comment/thumbsup",data:e}),po=e=>s({method:"post",url:"/v1/tweet/comment/thumbsdown",data:e}),mo=e=>s({method:"post",url:"/v1/tweet/reply/thumbsup",data:e}),_o=e=>s({method:"post",url:"/v1/tweet/reply/thumbsdown",data:e}),ho=e=>s({method:"post",url:"/v1/post/comment",data:e}),go=e=>s({method:"delete",url:"/v1/post/comment",data:e}),fo=e=>s({method:"post",url:"/v1/post/comment/reply",data:e}),vo=e=>s({method:"delete",url:"/v1/post/comment/reply",data:e}),wo=e=>s({method:"post",url:"/v1/topic/stick",data:e}),yo=e=>s({method:"post",url:"/v1/topic/follow",data:e}),ko=e=>s({method:"post",url:"/v1/topic/unfollow",data:e}),rt={key:0,class:"rightbar-wrap"},at={class:"search-wrap"},lt={class:"post-num"},ut={class:"post-num"},ct={class:"copyright"},it=["href"],dt=["href"],pt=z({__name:"rightbar",setup(e){const t=R([]),l=R([]),i=R(!1),c=R(""),n=B(),m=le(),d="2023 paopao.info",M="Roc's Me",g="",b="泡泡(PaoPao)开源社区",_="https://www.paopao.info",u=+"6",L=+"12",p=()=>{i.value=!0,nt({type:"hot_extral",num:L,extral_num:u}).then(y=>{t.value=y.topics,l.value=y.extral_topics??[],w.value=!0,i.value=!1}).catch(y=>{i.value=!1})},O=y=>y>=1e3?(y/1e3).toFixed(1)+"k":y,r=()=>{m.push({name:"home",query:{q:c.value}})},w=Q({get:()=>n.state.userLogined&&l.value.length!==0,set:y=>{}});return H(()=>({refreshTopicFollow:n.state.refreshTopicFollow,userLogined:n.state.userLogined}),(y,E)=>{(y.refreshTopicFollow!==E.refreshTopicFollow||y.userLogined)&&p()}),j(()=>{p()}),(y,E)=>{const x=F,I=ce,K=ae("router-link"),V=Ee,f=de,_e=ue;return h(n).state.collapsedRight?U("",!0):(v(),T("div",rt,[k("div",at,[o(I,{round:"",clearable:"",placeholder:"搜一搜...",value:c.value,"onUpdate:value":E[0]||(E[0]=C=>c.value=C),onKeyup:q(N(r,["prevent"]),["enter"])},{prefix:a(()=>[o(x,{component:h(Fe)},null,8,["component"])]),_:1},8,["value","onKeyup"])]),w.value?(v(),D(f,{key:0,class:"hottopic-wrap",title:"关注话题",embedded:"",bordered:!1,size:"small"},{default:a(()=>[o(V,{show:i.value},{default:a(()=>[(v(!0),T(J,null,X(l.value,C=>(v(),T("div",{class:"hot-tag-item",key:C.id},[o(K,{class:"hash-link",to:{name:"home",query:{q:C.tag,t:"tag"}}},{default:a(()=>[S(" #"+$(C.tag),1)]),_:2},1032,["to"]),k("div",lt,$(O(C.quote_num)),1)]))),128))]),_:1},8,["show"])]),_:1})):U("",!0),o(f,{class:"hottopic-wrap",title:"热门话题",embedded:"",bordered:!1,size:"small"},{default:a(()=>[o(V,{show:i.value},{default:a(()=>[(v(!0),T(J,null,X(t.value,C=>(v(),T("div",{class:"hot-tag-item",key:C.id},[o(K,{class:"hash-link",to:{name:"home",query:{q:C.tag,t:"tag"}}},{default:a(()=>[S(" #"+$(C.tag),1)]),_:2},1032,["to"]),k("div",ut,$(O(C.quote_num)),1)]))),128))]),_:1},8,["show"])]),_:1}),o(f,{class:"copyright-wrap",embedded:"",bordered:!1,size:"small"},{default:a(()=>[k("div",ct,"© "+$(h(d)),1),k("div",null,[o(_e,null,{default:a(()=>[k("a",{href:h(g),target:"_blank",class:"hash-link"},$(h(M)),9,it),k("a",{href:h(_),target:"_blank",class:"hash-link"},$(h(b)),9,dt)]),_:1})])]),_:1})]))}}});const mt=me(pt,[["__scopeId","data-v-f4a84024"]]),bo=(e={})=>s({method:"get",url:"/v1/captcha",params:e}),Po=e=>s({method:"post",url:"/v1/captcha",data:e}),Lo=e=>s({method:"post",url:"/v1/user/whisper",data:e}),Oo=e=>s({method:"post",url:"/v1/friend/requesting",data:e}),Ao=e=>s({method:"post",url:"/v1/friend/add",data:e}),To=e=>s({method:"post",url:"/v1/friend/reject",data:e}),Ro=e=>s({method:"post",url:"/v1/friend/delete",data:e}),Co=e=>s({method:"post",url:"/v1/user/phone",data:e}),Eo=e=>s({method:"post",url:"/v1/user/activate",data:e}),Io=e=>s({method:"post",url:"/v1/user/password",data:e}),$o=e=>s({method:"post",url:"/v1/user/nickname",data:e}),So=e=>s({method:"post",url:"/v1/user/avatar",data:e}),re=(e={})=>s({method:"get",url:"/v1/user/msgcount/unread",params:e}),Uo=e=>s({method:"get",url:"/v1/user/messages",params:e}),Mo=e=>s({method:"post",url:"/v1/user/message/read",data:e}),Ko=e=>s({method:"get",url:"/v1/user/collections",params:e}),qo=e=>s({method:"get",url:"/v1/user/profile",params:e}),No=e=>s({method:"get",url:"/v1/user/posts",params:e}),Do=e=>s({method:"get",url:"/v1/user/wallet/bills",params:e}),xo=e=>s({method:"post",url:"/v1/user/recharge",data:e}),Fo=e=>s({method:"get",url:"/v1/user/recharge",params:e}),Vo=e=>s({method:"get",url:"/v1/suggest/users",params:e}),zo=e=>s({method:"get",url:"/v1/suggest/tags",params:e}),Bo=e=>s({method:"get",url:"/v1/attachment/precheck",params:e}),Wo=e=>s({method:"get",url:"/v1/attachment",params:e}),Ho=e=>s({method:"post",url:"/v1/admin/user/status",data:e}),_t="/assets/logo-52afee68.png",ht={class:"sidebar-wrap"},gt={class:"logo-wrap"},ft={key:0,class:"user-wrap"},vt={class:"user-info"},wt={class:"nickname"},yt={class:"nickname-txt"},kt={class:"username"},bt={class:"user-mini-wrap"},Pt={key:1,class:"user-wrap"},Lt={key:0,class:"login-only-wrap"},Ot={key:1,class:"login-wrap"},At=z({__name:"sidebar",setup(e){const t=B(),l=ye(),i=le(),c=R(!1),n=R(l.name||""),m=R(),d=R("true".toLowerCase()==="true"),M=+"5000";H(l,()=>{n.value=l.name}),H(t.state,()=>{t.state.userInfo.id>0?m.value||(re().then(r=>{c.value=r.count>0}).catch(r=>{console.log(r)}),m.value=setInterval(()=>{re().then(r=>{c.value=r.count>0}).catch(r=>{console.log(r)})},M)):m.value&&clearInterval(m.value)}),j(()=>{window.onresize=()=>{t.commit("triggerCollapsedLeft",document.body.clientWidth<=821),t.commit("triggerCollapsedRight",document.body.clientWidth<=821)}});const g=Q(()=>{const r=[{label:"广场",key:"home",icon:()=>P(ee),href:"/"},{label:"话题",key:"topic",icon:()=>P(te),href:"/topic"}];return"false".toLowerCase()==="true"&&r.push({label:"公告",key:"anouncement",icon:()=>P(Ve),href:"/anouncement"}),r.push({label:"主页",key:"profile",icon:()=>P(ze),href:"/profile"}),r.push({label:"消息",key:"messages",icon:()=>P(Be),href:"/messages"}),r.push({label:"收藏",key:"collection",icon:()=>P(We),href:"/collection"}),r.push({label:"好友",key:"contacts",icon:()=>P(He),href:"/contacts"}),"false".toLocaleLowerCase()==="true"&&r.push({label:"钱包",key:"wallet",icon:()=>P(je),href:"/wallet"}),r.push({label:"设置",key:"setting",icon:()=>P(Qe),href:"/setting"}),t.state.userInfo.id>0?r:[{label:"广场",key:"home",icon:()=>P(ee),href:"/"},{label:"话题",key:"topic",icon:()=>P(te),href:"/topic"}]}),b=r=>"href"in r?P("div",{},r.label):r.label,_=r=>r.key==="messages"?P($e,{dot:!0,show:c.value,processing:!0},{default:()=>P(F,{color:r.key===n.value?"var(--n-item-icon-color-active)":"var(--n-item-icon-color)"},{default:r.icon})}):P(F,null,{default:r.icon}),u=(r,w={})=>{n.value=r,i.push({name:r})},L=()=>{l.path==="/"&&t.commit("refresh"),u("home")},p=r=>{t.commit("triggerAuth",!0),t.commit("triggerAuthKey",r)},O=()=>{t.commit("userLogout"),t.commit("refresh"),L()};return window.$store=t,window.$message=Ie(),(r,w)=>{const y=Se,E=Ue,x=Me,I=ie;return v(),T("div",ht,[k("div",gt,[o(y,{class:"logo-img",width:"36",src:h(_t),"preview-disabled":!0,onClick:L},null,8,["src"])]),o(E,{accordion:!0,"icon-size":24,options:g.value,"render-label":b,"render-icon":_,value:n.value,"onUpdate:value":u},null,8,["options","value"]),h(t).state.userInfo.id>0?(v(),T("div",ft,[o(x,{class:"user-avatar",round:"",size:34,src:h(t).state.userInfo.avatar},null,8,["src"]),k("div",vt,[k("div",wt,[k("span",yt,$(h(t).state.userInfo.nickname),1),o(I,{class:"logout",quaternary:"",circle:"",size:"tiny",onClick:O},{icon:a(()=>[o(h(F),null,{default:a(()=>[o(h(oe))]),_:1})]),_:1})]),k("div",kt,"@"+$(h(t).state.userInfo.username),1)]),k("div",bt,[o(I,{class:"logout",quaternary:"",circle:"",onClick:O},{icon:a(()=>[o(h(F),{size:24},{default:a(()=>[o(h(oe))]),_:1})]),_:1})])])):(v(),T("div",Pt,[d.value?U("",!0):(v(),T("div",Lt,[o(I,{strong:"",secondary:"",round:"",type:"primary",onClick:w[0]||(w[0]=K=>p("signin"))},{default:a(()=>[S(" 登录 ")]),_:1})])),d.value?(v(),T("div",Ot,[o(I,{strong:"",secondary:"",round:"",type:"primary",onClick:w[1]||(w[1]=K=>p("signin"))},{default:a(()=>[S(" 登录 ")]),_:1}),o(I,{strong:"",secondary:"",round:"",type:"info",onClick:w[2]||(w[2]=K=>p("signup"))},{default:a(()=>[S(" 注册 ")]),_:1})])):U("",!0)]))])}}});const Tt={"has-sider":"",class:"main-wrap",position:"static"},Rt={key:0},Ct={class:"content-wrap"},Et=z({__name:"App",setup(e){const t=B(),l=Q(()=>t.state.theme==="dark"?qe:null);return(i,c)=>{const n=At,m=ae("router-view"),d=mt,M=st,g=Ne,b=De,_=xe,u=Ke;return v(),D(u,{theme:l.value},{default:a(()=>[o(b,null,{default:a(()=>[o(g,null,{default:a(()=>{var L;return[k("div",{class:ge(["app-container",{dark:((L=l.value)==null?void 0:L.name)==="dark",mobile:!h(t).state.desktopModelShow}])},[k("div",Tt,[h(t).state.desktopModelShow?(v(),T("div",Rt,[o(n)])):U("",!0),k("div",Ct,[o(m,{class:"app-wrap"},{default:a(({Component:p})=>[(v(),D(he,null,[i.$route.meta.keepAlive?(v(),D(Y(p),{key:0})):U("",!0)],1024)),i.$route.meta.keepAlive?U("",!0):(v(),D(Y(p),{key:0}))]),_:1})]),o(d)]),o(M)],2)]}),_:1})]),_:1}),o(_)]),_:1},8,["theme"])}}});fe(Et).use(pe).use(Xe).mount("#app");export{No as A,Lo as B,Oo as C,qo as D,Ro as E,Ho as F,Ao as G,To as H,Mo as I,Uo as J,Ko as K,Bo as L,Wo as M,no as N,W as O,Do as P,xo as Q,Fo as R,bo as S,So as T,Io as U,Co as V,Eo as W,$o as X,Po as Y,At as Z,me as _,zo as a,Jt as b,ro as c,_o as d,vo as e,io as f,Vo as g,po as h,fo as i,go as j,ho as k,Yt as l,to as m,ao as n,lo as o,eo as p,oo as q,Xt as r,uo as s,mo as t,so as u,co as v,wo as w,ko as x,yo as y,nt as z}; diff --git a/web/dist/assets/index-5fa3c6e0.js b/web/dist/assets/index-5fa3c6e0.js new file mode 100644 index 00000000..83e951b8 --- /dev/null +++ b/web/dist/assets/index-5fa3c6e0.js @@ -0,0 +1 @@ +import{d as z,r as R,D as Z,j,o as v,P as D,a0 as a,a as k,U as o,c as T,e as S,O as q,a1 as N,N as U,Z as h,n as Q,w as H,a2 as ae,F as J,a3 as X,L as $,s as P,a4 as he,Q as Y,K as ge,a5 as fe}from"./@vue-d002002f.js";import{c as ve,a as we,u as le,b as ye}from"./vue-router-29e6667f.js";import{c as ke,u as B}from"./vuex-4d2f7b35.js";import{a as be}from"./axios-4a70c6fc.js";import{_ as Pe,N as Le,a as ue,b as ie,c as Oe,d as Ae,e as ce,f as Te,g as Re,h as de,i as Ce,j as F,k as Ee,u as Ie,l as $e,m as Se,n as Ue,o as Me,p as Ke,q as qe,r as Ne,s as De,t as xe}from"./naive-ui-d02aa0d7.js";import{S as Fe,M as Ve,L as ze,C as Be,B as We,P as He,W as je,a as Qe,H as ee,b as te,c as oe}from"./@vicons-4022100b.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-0232e3b9.js";import"./evtd-b614532e.js";import"./@css-render-6b6cdab1.js";import"./vooks-77bdadbd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))c(i);new MutationObserver(i=>{for(const n of i)if(n.type==="childList")for(const m of n.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&c(m)}).observe(document,{childList:!0,subtree:!0});function l(i){const n={};return i.integrity&&(n.integrity=i.integrity),i.referrerPolicy&&(n.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?n.credentials="include":i.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function c(i){if(i.ep)return;i.ep=!0;const n=l(i);fetch(i.href,n)}})();const Ge="modulepreload",Ze=function(e){return"/"+e},se={},A=function(t,l,c){if(!l||l.length===0)return t();const i=document.getElementsByTagName("link");return Promise.all(l.map(n=>{if(n=Ze(n),n in se)return;se[n]=!0;const m=n.endsWith(".css"),d=m?'[rel="stylesheet"]':"";if(!!c)for(let b=i.length-1;b>=0;b--){const _=i[b];if(_.href===n&&(!m||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${n}"]${d}`))return;const g=document.createElement("link");if(g.rel=m?"stylesheet":Ge,m||(g.as="script",g.crossOrigin=""),g.href=n,document.head.appendChild(g),m)return new Promise((b,_)=>{g.addEventListener("load",b),g.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${n}`)))})})).then(()=>t())},Je=[{path:"/",name:"home",meta:{title:"广场",keepAlive:!0},component:()=>A(()=>import("./Home-20128b51.js"),["assets/Home-20128b51.js","assets/post-item.vue_vue_type_style_index_0_lang-bc760886.js","assets/content-1ad34d0c.js","assets/@vue-d002002f.js","assets/@vicons-4022100b.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/vueuc-0232e3b9.js","assets/evtd-b614532e.js","assets/@css-render-6b6cdab1.js","assets/vooks-77bdadbd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/paopao-video-player-d47e9bf6.js","assets/content-2fda112b.css","assets/vuex-4d2f7b35.js","assets/vue-router-29e6667f.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/copy-to-clipboard-1dd3075d.js","assets/toggle-selection-93f4ad84.js","assets/post-item-593ff254.css","assets/post-skeleton-49f18127.js","assets/post-skeleton-f1900002.css","assets/lodash-94eb5868.js","assets/IEnum-a180d93e.js","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Home-c075a37e.css","assets/vfonts-7afd136d.css"])},{path:"/post",name:"post",meta:{title:"话题详情"},component:()=>A(()=>import("./Post-1ec9984a.js"),["assets/Post-1ec9984a.js","assets/@vue-d002002f.js","assets/vuex-4d2f7b35.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/IEnum-a180d93e.js","assets/@vicons-4022100b.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/vueuc-0232e3b9.js","assets/evtd-b614532e.js","assets/@css-render-6b6cdab1.js","assets/vooks-77bdadbd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/content-1ad34d0c.js","assets/paopao-video-player-d47e9bf6.js","assets/content-2fda112b.css","assets/vue-router-29e6667f.js","assets/post-skeleton-49f18127.js","assets/post-skeleton-f1900002.css","assets/lodash-94eb5868.js","assets/copy-to-clipboard-1dd3075d.js","assets/toggle-selection-93f4ad84.js","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/main-nav-3ef9bae6.css","assets/v3-infinite-loading-58f64a4e.js","assets/v3-infinite-loading-7d241236.css","assets/axios-4a70c6fc.js","assets/Post-00695942.css","assets/vfonts-7afd136d.css"])},{path:"/topic",name:"topic",meta:{title:"话题"},component:()=>A(()=>import("./Topic-09053135.js"),["assets/Topic-09053135.js","assets/@vicons-4022100b.js","assets/@vue-d002002f.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/vueuc-0232e3b9.js","assets/evtd-b614532e.js","assets/@css-render-6b6cdab1.js","assets/vooks-77bdadbd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/vuex-4d2f7b35.js","assets/vue-router-29e6667f.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Topic-8dbcebb5.css","assets/vfonts-7afd136d.css"])},{path:"/anouncement",name:"anouncement",meta:{title:"公告"},component:()=>A(()=>import("./Anouncement-f2146181.js"),["assets/Anouncement-f2146181.js","assets/post-skeleton-49f18127.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/@vue-d002002f.js","assets/vueuc-0232e3b9.js","assets/evtd-b614532e.js","assets/@css-render-6b6cdab1.js","assets/vooks-77bdadbd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/vuex-4d2f7b35.js","assets/vue-router-29e6667f.js","assets/@vicons-4022100b.js","assets/main-nav-3ef9bae6.css","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/axios-4a70c6fc.js","assets/Anouncement-662e2d95.css","assets/vfonts-7afd136d.css"])},{path:"/profile",name:"profile",meta:{title:"主页"},component:()=>A(()=>import("./Profile-536bb0b1.js"),["assets/Profile-536bb0b1.js","assets/post-item.vue_vue_type_style_index_0_lang-bc760886.js","assets/content-1ad34d0c.js","assets/@vue-d002002f.js","assets/@vicons-4022100b.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/vueuc-0232e3b9.js","assets/evtd-b614532e.js","assets/@css-render-6b6cdab1.js","assets/vooks-77bdadbd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/paopao-video-player-d47e9bf6.js","assets/content-2fda112b.css","assets/vuex-4d2f7b35.js","assets/vue-router-29e6667f.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/copy-to-clipboard-1dd3075d.js","assets/toggle-selection-93f4ad84.js","assets/post-item-593ff254.css","assets/post-skeleton-49f18127.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Profile-87e8712d.css","assets/vfonts-7afd136d.css"])},{path:"/user",name:"user",meta:{title:"用户详情"},component:()=>A(()=>import("./User-e96c5cea.js"),["assets/User-e96c5cea.js","assets/post-item.vue_vue_type_style_index_0_lang-bc760886.js","assets/content-1ad34d0c.js","assets/@vue-d002002f.js","assets/@vicons-4022100b.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/vueuc-0232e3b9.js","assets/evtd-b614532e.js","assets/@css-render-6b6cdab1.js","assets/vooks-77bdadbd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/paopao-video-player-d47e9bf6.js","assets/content-2fda112b.css","assets/vuex-4d2f7b35.js","assets/vue-router-29e6667f.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/copy-to-clipboard-1dd3075d.js","assets/toggle-selection-93f4ad84.js","assets/post-item-593ff254.css","assets/post-skeleton-49f18127.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/User-dfc90f68.css","assets/vfonts-7afd136d.css"])},{path:"/messages",name:"messages",meta:{title:"消息"},component:()=>A(()=>import("./Messages-8bfe7f3b.js"),["assets/Messages-8bfe7f3b.js","assets/@vue-d002002f.js","assets/vue-router-29e6667f.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/@vicons-4022100b.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/vueuc-0232e3b9.js","assets/evtd-b614532e.js","assets/@css-render-6b6cdab1.js","assets/vooks-77bdadbd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/vuex-4d2f7b35.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Messages-7ed31ecd.css","assets/vfonts-7afd136d.css"])},{path:"/collection",name:"collection",meta:{title:"收藏"},component:()=>A(()=>import("./Collection-f0c6a1aa.js"),["assets/Collection-f0c6a1aa.js","assets/post-item.vue_vue_type_style_index_0_lang-bc760886.js","assets/content-1ad34d0c.js","assets/@vue-d002002f.js","assets/@vicons-4022100b.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/vueuc-0232e3b9.js","assets/evtd-b614532e.js","assets/@css-render-6b6cdab1.js","assets/vooks-77bdadbd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/paopao-video-player-d47e9bf6.js","assets/content-2fda112b.css","assets/vuex-4d2f7b35.js","assets/vue-router-29e6667f.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/copy-to-clipboard-1dd3075d.js","assets/toggle-selection-93f4ad84.js","assets/post-item-593ff254.css","assets/post-skeleton-49f18127.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Collection-b97b3cf7.css","assets/vfonts-7afd136d.css"])},{path:"/contacts",name:"contacts",meta:{title:"好友"},component:()=>A(()=>import("./Contacts-ba6816c8.js"),["assets/Contacts-ba6816c8.js","assets/vue-router-29e6667f.js","assets/@vue-d002002f.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/vueuc-0232e3b9.js","assets/evtd-b614532e.js","assets/@css-render-6b6cdab1.js","assets/vooks-77bdadbd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/post-skeleton-49f18127.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/vuex-4d2f7b35.js","assets/@vicons-4022100b.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Contacts-b60e5e0d.css","assets/vfonts-7afd136d.css"])},{path:"/wallet",name:"wallet",meta:{title:"钱包"},component:()=>A(()=>import("./Wallet-6f8e141c.js"),["assets/Wallet-6f8e141c.js","assets/post-skeleton-49f18127.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/@vue-d002002f.js","assets/vueuc-0232e3b9.js","assets/evtd-b614532e.js","assets/@css-render-6b6cdab1.js","assets/vooks-77bdadbd.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/post-skeleton-f1900002.css","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/vuex-4d2f7b35.js","assets/vue-router-29e6667f.js","assets/@vicons-4022100b.js","assets/main-nav-3ef9bae6.css","assets/qrcode-bd5089a5.js","assets/encode-utf8-f813de00.js","assets/dijkstrajs-f906a09e.js","assets/formatTime-000dbebb.js","assets/moment-b7869f98.js","assets/axios-4a70c6fc.js","assets/Wallet-77044929.css","assets/vfonts-7afd136d.css"])},{path:"/setting",name:"setting",meta:{title:"设置"},component:()=>A(()=>import("./Setting-bb44f792.js"),["assets/Setting-bb44f792.js","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/vuex-4d2f7b35.js","assets/@vue-d002002f.js","assets/vue-router-29e6667f.js","assets/vooks-77bdadbd.js","assets/evtd-b614532e.js","assets/@vicons-4022100b.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/vueuc-0232e3b9.js","assets/@css-render-6b6cdab1.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/Setting-bfd24152.css","assets/vfonts-7afd136d.css"])},{path:"/404",name:"404",meta:{title:"404"},component:()=>A(()=>import("./404-3f4651e7.js"),["assets/404-3f4651e7.js","assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js","assets/vuex-4d2f7b35.js","assets/@vue-d002002f.js","assets/vue-router-29e6667f.js","assets/vooks-77bdadbd.js","assets/evtd-b614532e.js","assets/@vicons-4022100b.js","assets/naive-ui-d02aa0d7.js","assets/seemly-76b7b838.js","assets/vueuc-0232e3b9.js","assets/@css-render-6b6cdab1.js","assets/vdirs-b0483831.js","assets/@juggle-41516555.js","assets/css-render-6a5c5852.js","assets/@emotion-8a8e73f6.js","assets/lodash-es-8412e618.js","assets/treemate-25c27bff.js","assets/async-validator-dee29e8b.js","assets/date-fns-975a2d8f.js","assets/main-nav-3ef9bae6.css","assets/axios-4a70c6fc.js","assets/404-020b2afd.css","assets/vfonts-7afd136d.css"])},{path:"/:pathMatch(.*)",redirect:"/404"}],pe=ve({history:we(),routes:Je});pe.beforeEach((e,t,l)=>{document.title=`${e.meta.title} | 泡泡 - 一个清新文艺的微社区`,l()});const Xe=ke({state:{refresh:Date.now(),refreshTopicFollow:Date.now(),theme:localStorage.getItem("PAOPAO_THEME"),collapsedLeft:document.body.clientWidth<=821,collapsedRight:document.body.clientWidth<=821,drawerModelShow:document.body.clientWidth<=821,desktopModelShow:document.body.clientWidth>821,authModalShow:!1,authModelTab:"signin",userLogined:!1,userInfo:{id:0,username:"",nickname:""}},mutations:{refresh(e,t){e.refresh=t||Date.now()},refreshTopicFollow(e){e.refreshTopicFollow=Date.now()},triggerTheme(e,t){e.theme=t},triggerAuth(e,t){e.authModalShow=t},triggerAuthKey(e,t){e.authModelTab=t},triggerCollapsedLeft(e,t){e.collapsedLeft=t,e.drawerModelShow=t,e.desktopModelShow=!t},triggerCollapsedRight(e,t){e.collapsedRight=t},updateUserinfo(e,t){e.userInfo=t,e.userInfo.id>0&&(e.userLogined=!0)},userLogout(e){localStorage.removeItem("PAOPAO_TOKEN"),e.userInfo={id:0,nickname:"",username:""},e.userLogined=!1}},actions:{},modules:{}}),G=be.create({baseURL:"https://iibiubiu.com",timeout:3e4});G.interceptors.request.use(e=>(localStorage.getItem("PAOPAO_TOKEN")&&(e.headers.Authorization="Bearer "+localStorage.getItem("PAOPAO_TOKEN")),e),e=>Promise.reject(e));G.interceptors.response.use(e=>{const{data:t={},code:l=0}=(e==null?void 0:e.data)||{};if(+l==0)return t||{};Promise.reject((e==null?void 0:e.data)||{})},(e={})=>{var l;const{response:t={}}=e||{};return+(t==null?void 0:t.status)==401?(localStorage.removeItem("PAOPAO_TOKEN"),(t==null?void 0:t.data.code)!==10005?window.$message.warning((t==null?void 0:t.data.msg)||"鉴权失败"):window.$store.commit("triggerAuth",!0)):window.$message.error(((l=t==null?void 0:t.data)==null?void 0:l.msg)||"请求失败"),Promise.reject((t==null?void 0:t.data)||{})});function s(e){return G(e)}const ne=e=>s({method:"post",url:"/v1/auth/login",data:e}),Ye=e=>s({method:"post",url:"/v1/auth/register",data:e}),W=(e="")=>s({method:"get",url:"/v1/user/info",headers:{Authorization:`Bearer ${e}`}}),et={class:"auth-wrap"},tt={key:0},ot=z({__name:"auth",setup(e){const t=R("true".toLowerCase()==="true"),l=B(),c=R(!1),i=R(),n=Z({username:"",password:""}),m=R(),d=Z({username:"",password:"",repassword:""}),M={username:{required:!0,message:"请输入账户名"},password:{required:!0,message:"请输入密码"},repassword:[{required:!0,message:"请输入密码"},{validator:(_,u)=>!!d.password&&d.password.startsWith(u)&&d.password.length>=u.length,message:"两次密码输入不一致",trigger:"input"}]},g=_=>{var u;_.preventDefault(),_.stopPropagation(),(u=i.value)==null||u.validate(L=>{L||(c.value=!0,ne({username:n.username,password:n.password}).then(p=>{const O=(p==null?void 0:p.token)||"";return localStorage.setItem("PAOPAO_TOKEN",O),W(O)}).then(p=>{window.$message.success("登录成功"),c.value=!1,l.commit("updateUserinfo",p),l.commit("triggerAuth",!1),l.commit("refresh"),n.username="",n.password=""}).catch(p=>{c.value=!1}))})},b=_=>{var u;_.preventDefault(),_.stopPropagation(),(u=m.value)==null||u.validate(L=>{L||(c.value=!0,Ye({username:d.username,password:d.password}).then(p=>ne({username:d.username,password:d.password})).then(p=>{const O=(p==null?void 0:p.token)||"";return localStorage.setItem("PAOPAO_TOKEN",O),W(O)}).then(p=>{window.$message.success("注册成功"),c.value=!1,l.commit("updateUserinfo",p),l.commit("triggerAuth",!1),d.username="",d.password="",d.repassword=""}).catch(p=>{c.value=!1}))})};return j(()=>{const _=localStorage.getItem("PAOPAO_TOKEN")||"";_?W(_).then(u=>{l.commit("updateUserinfo",u),l.commit("triggerAuth",!1)}).catch(u=>{l.commit("userLogout")}):l.commit("userLogout")}),(_,u)=>{const L=Pe,p=Le,O=ue,r=ie,w=Oe,y=Ae,E=ce,x=Te,I=Re,K=de,V=Ce;return v(),D(V,{show:h(l).state.authModalShow,"onUpdate:show":u[7]||(u[7]=f=>h(l).state.authModalShow=f),class:"auth-card",preset:"card",size:"small","mask-closable":!1,bordered:!1,style:{width:"360px"}},{default:a(()=>[k("div",et,[o(K,{bordered:!1},{default:a(()=>[t.value?U("",!0):(v(),T("div",tt,[o(O,{justify:"center"},{default:a(()=>[o(p,null,{default:a(()=>[o(L,{type:"success"},{default:a(()=>[S("账号登录")]),_:1})]),_:1})]),_:1}),o(y,{ref_key:"loginRef",ref:i,model:n,rules:{username:{required:!0,message:"请输入账户名"},password:{required:!0,message:"请输入密码"}}},{default:a(()=>[o(w,{label:"账户",path:"username"},{default:a(()=>[o(r,{value:n.username,"onUpdate:value":u[0]||(u[0]=f=>n.username=f),placeholder:"请输入用户名",onKeyup:q(N(g,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1}),o(w,{label:"密码",path:"password"},{default:a(()=>[o(r,{type:"password","show-password-on":"mousedown",value:n.password,"onUpdate:value":u[1]||(u[1]=f=>n.password=f),placeholder:"请输入账户密码",onKeyup:q(N(g,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1})]),_:1},8,["model"]),o(E,{type:"primary",block:"",secondary:"",strong:"",loading:c.value,onClick:g},{default:a(()=>[S(" 登录 ")]),_:1},8,["loading"])])),t.value?(v(),D(I,{key:1,"default-value":h(l).state.authModelTab,size:"large","justify-content":"space-evenly"},{default:a(()=>[o(x,{name:"signin",tab:"登录"},{default:a(()=>[o(y,{ref_key:"loginRef",ref:i,model:n,rules:{username:{required:!0,message:"请输入账户名"},password:{required:!0,message:"请输入密码"}}},{default:a(()=>[o(w,{label:"账户",path:"username"},{default:a(()=>[o(r,{value:n.username,"onUpdate:value":u[2]||(u[2]=f=>n.username=f),placeholder:"请输入用户名",onKeyup:q(N(g,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1}),o(w,{label:"密码",path:"password"},{default:a(()=>[o(r,{type:"password","show-password-on":"mousedown",value:n.password,"onUpdate:value":u[3]||(u[3]=f=>n.password=f),placeholder:"请输入账户密码",onKeyup:q(N(g,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1})]),_:1},8,["model"]),o(E,{type:"primary",block:"",secondary:"",strong:"",loading:c.value,onClick:g},{default:a(()=>[S(" 登录 ")]),_:1},8,["loading"])]),_:1}),o(x,{name:"signup",tab:"注册"},{default:a(()=>[o(y,{ref_key:"registerRef",ref:m,model:d,rules:M},{default:a(()=>[o(w,{label:"用户名",path:"username"},{default:a(()=>[o(r,{value:d.username,"onUpdate:value":u[4]||(u[4]=f=>d.username=f),placeholder:"用户名注册后无法修改"},null,8,["value"])]),_:1}),o(w,{label:"密码",path:"password"},{default:a(()=>[o(r,{type:"password","show-password-on":"mousedown",placeholder:"密码不少于6位",value:d.password,"onUpdate:value":u[5]||(u[5]=f=>d.password=f),onKeyup:q(N(b,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1}),o(w,{label:"重复密码",path:"repassword"},{default:a(()=>[o(r,{type:"password","show-password-on":"mousedown",placeholder:"请再次输入密码",value:d.repassword,"onUpdate:value":u[6]||(u[6]=f=>d.repassword=f),onKeyup:q(N(b,["prevent"]),["enter"])},null,8,["value","onKeyup"])]),_:1})]),_:1},8,["model"]),o(E,{type:"primary",block:"",secondary:"",strong:"",loading:c.value,onClick:b},{default:a(()=>[S(" 注册 ")]),_:1},8,["loading"])]),_:1})]),_:1},8,["default-value"])):U("",!0)]),_:1})])]),_:1},8,["show"])}}});const me=(e,t)=>{const l=e.__vccOpts||e;for(const[c,i]of t)l[c]=i;return l},st=me(ot,[["__scopeId","data-v-053dfa44"]]),Jt=e=>s({method:"get",url:"/v1/posts",params:e}),nt=e=>s({method:"get",url:"/v1/tags",params:e}),Xt=e=>s({method:"get",url:"/v1/post",params:e}),Yt=e=>s({method:"get",url:"/v1/post/star",params:e}),eo=e=>s({method:"post",url:"/v1/post/star",data:e}),to=e=>s({method:"get",url:"/v1/post/collection",params:e}),oo=e=>s({method:"post",url:"/v1/post/collection",data:e}),so=e=>s({method:"get",url:"/v1/post/comments",params:e}),no=e=>s({method:"get",url:"/v1/user/contacts",params:e}),ro=e=>s({method:"post",url:"/v1/post",data:e}),ao=e=>s({method:"delete",url:"/v1/post",data:e}),lo=e=>s({method:"post",url:"/v1/post/lock",data:e}),uo=e=>s({method:"post",url:"/v1/post/stick",data:e}),io=e=>s({method:"post",url:"/v1/post/visibility",data:e}),co=e=>s({method:"post",url:"/v1/tweet/comment/thumbsup",data:e}),po=e=>s({method:"post",url:"/v1/tweet/comment/thumbsdown",data:e}),mo=e=>s({method:"post",url:"/v1/tweet/reply/thumbsup",data:e}),_o=e=>s({method:"post",url:"/v1/tweet/reply/thumbsdown",data:e}),ho=e=>s({method:"post",url:"/v1/post/comment",data:e}),go=e=>s({method:"delete",url:"/v1/post/comment",data:e}),fo=e=>s({method:"post",url:"/v1/post/comment/reply",data:e}),vo=e=>s({method:"delete",url:"/v1/post/comment/reply",data:e}),wo=e=>s({method:"post",url:"/v1/topic/stick",data:e}),yo=e=>s({method:"post",url:"/v1/topic/follow",data:e}),ko=e=>s({method:"post",url:"/v1/topic/unfollow",data:e}),rt={key:0,class:"rightbar-wrap"},at={class:"search-wrap"},lt={class:"post-num"},ut={class:"post-num"},it={class:"copyright"},ct=["href"],dt=["href"],pt=z({__name:"rightbar",setup(e){const t=R([]),l=R([]),c=R(!1),i=R(""),n=B(),m=le(),d="2023 paopao.info",M="Roc's Me",g="",b="泡泡(PaoPao)开源社区",_="https://www.paopao.info",u=+"6",L=+"12",p=()=>{c.value=!0,nt({type:"hot_extral",num:L,extral_num:u}).then(y=>{t.value=y.topics,l.value=y.extral_topics??[],w.value=!0,c.value=!1}).catch(y=>{c.value=!1})},O=y=>y>=1e3?(y/1e3).toFixed(1)+"k":y,r=()=>{m.push({name:"home",query:{q:i.value}})},w=Q({get:()=>n.state.userLogined&&l.value.length!==0,set:y=>{}});return H(()=>({refreshTopicFollow:n.state.refreshTopicFollow,userLogined:n.state.userLogined}),(y,E)=>{(y.refreshTopicFollow!==E.refreshTopicFollow||y.userLogined)&&p()}),j(()=>{p()}),(y,E)=>{const x=F,I=ie,K=ae("router-link"),V=Ee,f=de,_e=ue;return h(n).state.collapsedRight?U("",!0):(v(),T("div",rt,[k("div",at,[o(I,{round:"",clearable:"",placeholder:"搜一搜...",value:i.value,"onUpdate:value":E[0]||(E[0]=C=>i.value=C),onKeyup:q(N(r,["prevent"]),["enter"])},{prefix:a(()=>[o(x,{component:h(Fe)},null,8,["component"])]),_:1},8,["value","onKeyup"])]),w.value?(v(),D(f,{key:0,class:"hottopic-wrap",title:"关注话题",embedded:"",bordered:!1,size:"small"},{default:a(()=>[o(V,{show:c.value},{default:a(()=>[(v(!0),T(J,null,X(l.value,C=>(v(),T("div",{class:"hot-tag-item",key:C.id},[o(K,{class:"hash-link",to:{name:"home",query:{q:C.tag,t:"tag"}}},{default:a(()=>[S(" #"+$(C.tag),1)]),_:2},1032,["to"]),k("div",lt,$(O(C.quote_num)),1)]))),128))]),_:1},8,["show"])]),_:1})):U("",!0),o(f,{class:"hottopic-wrap",title:"热门话题",embedded:"",bordered:!1,size:"small"},{default:a(()=>[o(V,{show:c.value},{default:a(()=>[(v(!0),T(J,null,X(t.value,C=>(v(),T("div",{class:"hot-tag-item",key:C.id},[o(K,{class:"hash-link",to:{name:"home",query:{q:C.tag,t:"tag"}}},{default:a(()=>[S(" #"+$(C.tag),1)]),_:2},1032,["to"]),k("div",ut,$(O(C.quote_num)),1)]))),128))]),_:1},8,["show"])]),_:1}),o(f,{class:"copyright-wrap",embedded:"",bordered:!1,size:"small"},{default:a(()=>[k("div",it,"© "+$(h(d)),1),k("div",null,[o(_e,null,{default:a(()=>[k("a",{href:h(g),target:"_blank",class:"hash-link"},$(h(M)),9,ct),k("a",{href:h(_),target:"_blank",class:"hash-link"},$(h(b)),9,dt)]),_:1})])]),_:1})]))}}});const mt=me(pt,[["__scopeId","data-v-f4a84024"]]),bo=(e={})=>s({method:"get",url:"/v1/captcha",params:e}),Po=e=>s({method:"post",url:"/v1/captcha",data:e}),Lo=e=>s({method:"post",url:"/v1/user/whisper",data:e}),Oo=e=>s({method:"post",url:"/v1/friend/requesting",data:e}),Ao=e=>s({method:"post",url:"/v1/friend/add",data:e}),To=e=>s({method:"post",url:"/v1/friend/reject",data:e}),Ro=e=>s({method:"post",url:"/v1/friend/delete",data:e}),Co=e=>s({method:"post",url:"/v1/user/phone",data:e}),Eo=e=>s({method:"post",url:"/v1/user/activate",data:e}),Io=e=>s({method:"post",url:"/v1/user/password",data:e}),$o=e=>s({method:"post",url:"/v1/user/nickname",data:e}),So=e=>s({method:"post",url:"/v1/user/avatar",data:e}),re=(e={})=>s({method:"get",url:"/v1/user/msgcount/unread",params:e}),Uo=e=>s({method:"get",url:"/v1/user/messages",params:e}),Mo=e=>s({method:"post",url:"/v1/user/message/read",data:e}),Ko=e=>s({method:"get",url:"/v1/user/collections",params:e}),qo=e=>s({method:"get",url:"/v1/user/profile",params:e}),No=e=>s({method:"get",url:"/v1/user/posts",params:e}),Do=e=>s({method:"get",url:"/v1/user/wallet/bills",params:e}),xo=e=>s({method:"post",url:"/v1/user/recharge",data:e}),Fo=e=>s({method:"get",url:"/v1/user/recharge",params:e}),Vo=e=>s({method:"get",url:"/v1/suggest/users",params:e}),zo=e=>s({method:"get",url:"/v1/suggest/tags",params:e}),Bo=e=>s({method:"get",url:"/v1/attachment/precheck",params:e}),Wo=e=>s({method:"get",url:"/v1/attachment",params:e}),Ho=e=>s({method:"post",url:"/v1/admin/user/status",data:e}),_t="/assets/logo-52afee68.png",ht={class:"sidebar-wrap"},gt={class:"logo-wrap"},ft={key:0,class:"user-wrap"},vt={class:"user-info"},wt={class:"nickname"},yt={class:"nickname-txt"},kt={class:"username"},bt={class:"user-mini-wrap"},Pt={key:1,class:"user-wrap"},Lt={key:0,class:"login-only-wrap"},Ot={key:1,class:"login-wrap"},At=z({__name:"sidebar",setup(e){const t=B(),l=ye(),c=le(),i=R(!1),n=R(l.name||""),m=R(),d=R("true".toLowerCase()==="true"),M=+"5000";H(l,()=>{n.value=l.name}),H(t.state,()=>{t.state.userInfo.id>0?m.value||(re().then(r=>{i.value=r.count>0}).catch(r=>{console.log(r)}),m.value=setInterval(()=>{re().then(r=>{i.value=r.count>0}).catch(r=>{console.log(r)})},M)):m.value&&clearInterval(m.value)}),j(()=>{window.onresize=()=>{t.commit("triggerCollapsedLeft",document.body.clientWidth<=821),t.commit("triggerCollapsedRight",document.body.clientWidth<=821)}});const g=Q(()=>{const r=[{label:"广场",key:"home",icon:()=>P(ee),href:"/"},{label:"话题",key:"topic",icon:()=>P(te),href:"/topic"}];return"false".toLowerCase()==="true"&&r.push({label:"公告",key:"anouncement",icon:()=>P(Ve),href:"/anouncement"}),r.push({label:"主页",key:"profile",icon:()=>P(ze),href:"/profile"}),r.push({label:"消息",key:"messages",icon:()=>P(Be),href:"/messages"}),r.push({label:"收藏",key:"collection",icon:()=>P(We),href:"/collection"}),r.push({label:"好友",key:"contacts",icon:()=>P(He),href:"/contacts"}),"false".toLocaleLowerCase()==="true"&&r.push({label:"钱包",key:"wallet",icon:()=>P(je),href:"/wallet"}),r.push({label:"设置",key:"setting",icon:()=>P(Qe),href:"/setting"}),t.state.userInfo.id>0?r:[{label:"广场",key:"home",icon:()=>P(ee),href:"/"},{label:"话题",key:"topic",icon:()=>P(te),href:"/topic"}]}),b=r=>"href"in r?P("div",{},r.label):r.label,_=r=>r.key==="messages"?P($e,{dot:!0,show:i.value,processing:!0},{default:()=>P(F,{color:r.key===n.value?"var(--n-item-icon-color-active)":"var(--n-item-icon-color)"},{default:r.icon})}):P(F,null,{default:r.icon}),u=(r,w={})=>{n.value=r,c.push({name:r})},L=()=>{l.path==="/"&&t.commit("refresh"),u("home")},p=r=>{t.commit("triggerAuth",!0),t.commit("triggerAuthKey",r)},O=()=>{t.commit("userLogout"),t.commit("refresh"),L()};return window.$store=t,window.$message=Ie(),(r,w)=>{const y=Se,E=Ue,x=Me,I=ce;return v(),T("div",ht,[k("div",gt,[o(y,{class:"logo-img",width:"36",src:h(_t),"preview-disabled":!0,onClick:L},null,8,["src"])]),o(E,{accordion:!0,"icon-size":24,options:g.value,"render-label":b,"render-icon":_,value:n.value,"onUpdate:value":u},null,8,["options","value"]),h(t).state.userInfo.id>0?(v(),T("div",ft,[o(x,{class:"user-avatar",round:"",size:34,src:h(t).state.userInfo.avatar},null,8,["src"]),k("div",vt,[k("div",wt,[k("span",yt,$(h(t).state.userInfo.nickname),1),o(I,{class:"logout",quaternary:"",circle:"",size:"tiny",onClick:O},{icon:a(()=>[o(h(F),null,{default:a(()=>[o(h(oe))]),_:1})]),_:1})]),k("div",kt,"@"+$(h(t).state.userInfo.username),1)]),k("div",bt,[o(I,{class:"logout",quaternary:"",circle:"",onClick:O},{icon:a(()=>[o(h(F),{size:24},{default:a(()=>[o(h(oe))]),_:1})]),_:1})])])):(v(),T("div",Pt,[d.value?U("",!0):(v(),T("div",Lt,[o(I,{strong:"",secondary:"",round:"",type:"primary",onClick:w[0]||(w[0]=K=>p("signin"))},{default:a(()=>[S(" 登录 ")]),_:1})])),d.value?(v(),T("div",Ot,[o(I,{strong:"",secondary:"",round:"",type:"primary",onClick:w[1]||(w[1]=K=>p("signin"))},{default:a(()=>[S(" 登录 ")]),_:1}),o(I,{strong:"",secondary:"",round:"",type:"info",onClick:w[2]||(w[2]=K=>p("signup"))},{default:a(()=>[S(" 注册 ")]),_:1})])):U("",!0)]))])}}});const Tt={"has-sider":"",class:"main-wrap",position:"static"},Rt={key:0},Ct={class:"content-wrap"},Et=z({__name:"App",setup(e){const t=B(),l=Q(()=>t.state.theme==="dark"?qe:null);return(c,i)=>{const n=At,m=ae("router-view"),d=mt,M=st,g=Ne,b=De,_=xe,u=Ke;return v(),D(u,{theme:l.value},{default:a(()=>[o(b,null,{default:a(()=>[o(g,null,{default:a(()=>{var L;return[k("div",{class:ge(["app-container",{dark:((L=l.value)==null?void 0:L.name)==="dark",mobile:!h(t).state.desktopModelShow}])},[k("div",Tt,[h(t).state.desktopModelShow?(v(),T("div",Rt,[o(n)])):U("",!0),k("div",Ct,[o(m,{class:"app-wrap"},{default:a(({Component:p})=>[(v(),D(he,null,[c.$route.meta.keepAlive?(v(),D(Y(p),{key:0})):U("",!0)],1024)),c.$route.meta.keepAlive?U("",!0):(v(),D(Y(p),{key:0}))]),_:1})]),o(d)]),o(M)],2)]}),_:1})]),_:1}),o(_)]),_:1},8,["theme"])}}});fe(Et).use(pe).use(Xe).mount("#app");export{No as A,Lo as B,Oo as C,qo as D,Ro as E,Ho as F,Ao as G,To as H,Mo as I,Uo as J,Ko as K,Bo as L,Wo as M,no as N,W as O,Do as P,xo as Q,Fo as R,bo as S,So as T,Io as U,Co as V,Eo as W,$o as X,Po as Y,At as Z,me as _,zo as a,Jt as b,ro as c,_o as d,vo as e,co as f,Vo as g,po as h,fo as i,go as j,ho as k,Yt as l,to as m,ao as n,lo as o,eo as p,oo as q,Xt as r,uo as s,mo as t,so as u,io as v,wo as w,ko as x,yo as y,nt as z}; diff --git a/web/dist/assets/index-df729f44.css b/web/dist/assets/index-c5cff9e7.css similarity index 98% rename from web/dist/assets/index-df729f44.css rename to web/dist/assets/index-c5cff9e7.css index fc9ed789..9526b802 100644 --- a/web/dist/assets/index-df729f44.css +++ b/web/dist/assets/index-c5cff9e7.css @@ -1 +1 @@ -.auth-wrap[data-v-053dfa44]{margin-top:-30px}.dark .auth-wrap[data-v-053dfa44]{background-color:#101014bf}.rightbar-wrap[data-v-f4a84024]{width:240px;position:fixed;left:calc(50% + var(--content-main) / 2 + 10px)}.rightbar-wrap .search-wrap[data-v-f4a84024]{margin:12px 0}.rightbar-wrap .hot-tag-item[data-v-f4a84024]{line-height:2;position:relative}.rightbar-wrap .hot-tag-item .hash-link[data-v-f4a84024]{width:calc(100% - 60px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.rightbar-wrap .hot-tag-item .post-num[data-v-f4a84024]{position:absolute;right:0;top:0;width:60px;text-align:right;line-height:2;opacity:.5}.rightbar-wrap .hottopic-wrap[data-v-f4a84024]{margin-bottom:10px}.rightbar-wrap .copyright-wrap .copyright[data-v-f4a84024]{font-size:12px;opacity:.75}.rightbar-wrap .copyright-wrap .hash-link[data-v-f4a84024]{font-size:12px}.dark .hottopic-wrap[data-v-f4a84024],.dark .copyright-wrap[data-v-f4a84024]{background-color:#18181c}.sidebar-wrap{z-index:99;width:200px;height:100vh;position:fixed;right:calc(50% + var(--content-main) / 2 + 10px);padding:12px 0;box-sizing:border-box}.sidebar-wrap .n-menu .n-menu-item-content:before{border-radius:21px}.logo-wrap{display:flex;justify-content:flex-start;margin-bottom:12px}.logo-wrap .logo-img{margin-left:24px}.logo-wrap .logo-img:hover{cursor:pointer}.user-wrap{display:flex;align-items:center;position:absolute;bottom:12px;left:12px;right:12px}.user-wrap .user-mini-wrap{display:none}.user-wrap .user-avatar{margin-right:8px}.user-wrap .user-info{display:flex;flex-direction:column}.user-wrap .user-info .nickname{font-size:16px;font-weight:700;line-height:16px;height:16px;margin-bottom:2px;display:flex;align-items:center}.user-wrap .user-info .nickname .nickname-txt{max-width:90px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.user-wrap .user-info .nickname .logout{margin-left:6px}.user-wrap .user-info .username{font-size:14px;line-height:16px;height:16px;width:120px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;opacity:.75}.user-wrap .login-only-wrap{display:flex;justify-content:center;width:100%}.user-wrap .login-only-wrap button{margin:0 4px;width:80%}.user-wrap .login-wrap{display:flex;justify-content:center;width:100%}.user-wrap .login-wrap button{margin:0 4px}.auth-card .n-card-header{z-index:999}@media screen and (max-width: 821px){.sidebar-wrap{width:200px;right:calc(100% - 200px)}.logo-wrap .logo-img{margin-left:12px!important}.user-wrap .user-avatar,.user-wrap .user-info,.user-wrap .login-only-wrap,.user-wrap .login-wrap{margin-bottom:32px}}:root{--content-main: 544px}.app-container{margin:0}.app-container .app-wrap{width:100%;margin:0 auto}.main-wrap{min-height:100vh;display:flex;flex-direction:row;justify-content:center}.main-wrap .content-wrap{width:100%;max-width:var(--content-main);position:relative}.main-wrap .main-content-wrap{margin:0;border-top:none;border-radius:0}.main-wrap .main-content-wrap .n-list-item{padding:0}.empty-wrap{min-height:300px;display:flex;align-items:center;justify-content:center}.hash-link,.user-link{color:#18a058;text-decoration:none;cursor:pointer}.hash-link:hover,.user-link:hover{opacity:.8}.beian-link{color:#333;text-decoration:none}.beian-link:hover{opacity:.75}.username-link{color:#000;color:none;text-decoration:none;cursor:pointer}.username-link:hover{text-decoration:underline}.dark .hash-link,.dark .user-link{color:#63e2b7}.dark .username-link{color:#eee}.dark .beian-link{color:#ddd}@media screen and (max-width: 821px){.content-wrap{top:0;position:absolute!important}} +.auth-wrap[data-v-053dfa44]{margin-top:-30px}.dark .auth-wrap[data-v-053dfa44]{background-color:#101014bf}.rightbar-wrap[data-v-f4a84024]{width:240px;position:fixed;left:calc(50% + var(--content-main) / 2 + 10px)}.rightbar-wrap .search-wrap[data-v-f4a84024]{margin:12px 0}.rightbar-wrap .hot-tag-item[data-v-f4a84024]{line-height:2;position:relative}.rightbar-wrap .hot-tag-item .hash-link[data-v-f4a84024]{width:calc(100% - 60px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.rightbar-wrap .hot-tag-item .post-num[data-v-f4a84024]{position:absolute;right:0;top:0;width:60px;text-align:right;line-height:2;opacity:.5}.rightbar-wrap .hottopic-wrap[data-v-f4a84024]{margin-bottom:10px}.rightbar-wrap .copyright-wrap .copyright[data-v-f4a84024]{font-size:12px;opacity:.75}.rightbar-wrap .copyright-wrap .hash-link[data-v-f4a84024]{font-size:12px}.dark .hottopic-wrap[data-v-f4a84024],.dark .copyright-wrap[data-v-f4a84024]{background-color:#18181c}.sidebar-wrap{z-index:99;width:200px;height:100vh;position:fixed;right:calc(50% + var(--content-main) / 2 + 10px);padding:12px 0;box-sizing:border-box}.sidebar-wrap .n-menu .n-menu-item-content:before{border-radius:21px}.logo-wrap{display:flex;justify-content:flex-start;margin-bottom:12px}.logo-wrap .logo-img{margin-left:24px}.logo-wrap .logo-img:hover{cursor:pointer}.user-wrap{display:flex;align-items:center;position:absolute;bottom:12px;left:12px;right:12px}.user-wrap .user-mini-wrap{display:none}.user-wrap .user-avatar{margin-right:8px}.user-wrap .user-info{display:flex;flex-direction:column}.user-wrap .user-info .nickname{font-size:16px;font-weight:700;line-height:16px;height:16px;margin-bottom:2px;display:flex;align-items:center}.user-wrap .user-info .nickname .nickname-txt{max-width:90px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.user-wrap .user-info .nickname .logout{margin-left:6px}.user-wrap .user-info .username{font-size:14px;line-height:16px;height:16px;width:120px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;opacity:.75}.user-wrap .login-only-wrap{display:flex;justify-content:center;width:100%}.user-wrap .login-only-wrap button{margin:0 4px;width:80%}.user-wrap .login-wrap{display:flex;justify-content:center;width:100%}.user-wrap .login-wrap button{margin:0 4px}.auth-card .n-card-header{z-index:999}@media screen and (max-width: 821px){.sidebar-wrap{width:200px;right:calc(100% - 200px)}.logo-wrap .logo-img{margin-left:12px!important}.user-wrap .user-avatar,.user-wrap .user-info,.user-wrap .login-only-wrap,.user-wrap .login-wrap{margin-bottom:32px}}:root{--content-main: 600px}.app-container{margin:0}.app-container .app-wrap{width:100%;margin:0 auto}.main-wrap{min-height:100vh;display:flex;flex-direction:row;justify-content:center}.main-wrap .content-wrap{width:100%;max-width:var(--content-main);position:relative}.main-wrap .main-content-wrap{margin:0;border-top:none;border-radius:0}.main-wrap .main-content-wrap .n-list-item{padding:0}.empty-wrap{min-height:300px;display:flex;align-items:center;justify-content:center}.hash-link,.user-link{color:#18a058;text-decoration:none;cursor:pointer}.hash-link:hover,.user-link:hover{opacity:.8}.beian-link{color:#333;text-decoration:none}.beian-link:hover{opacity:.75}.username-link{color:#000;color:none;text-decoration:none;cursor:pointer}.username-link:hover{text-decoration:underline}.dark .hash-link,.dark .user-link{color:#63e2b7}.dark .username-link{color:#eee}.dark .beian-link{color:#ddd}@media screen and (max-width: 821px){.content-wrap{top:0;position:absolute!important}} diff --git a/web/dist/assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js b/web/dist/assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js similarity index 81% rename from web/dist/assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js rename to web/dist/assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js index 60cd38e5..abf1d29d 100644 --- a/web/dist/assets/main-nav.vue_vue_type_style_index_0_lang-6c037963.js +++ b/web/dist/assets/main-nav.vue_vue_type_style_index_0_lang-7d0e0feb.js @@ -1 +1 @@ -import{Z as B}from"./index-43cab287.js";import{u as E}from"./vuex-613b371d.js";import{u as N}from"./vue-router-8af5a3a6.js";import{j as P}from"./vooks-423a5f30.js";import{D as S,y as A,z as C,F as D}from"./@vicons-7ee3dafd.js";import{a3 as R,a4 as I,j as V,e as j,a5 as x,h as F}from"./naive-ui-374a973f.js";import{d as H,r as h,j as L,o as a,c as f,Z as o,U as e,a0 as t,N as c,a as U,P as _,e as q,L as Z,F as $}from"./@vue-b8d06722.js";const G={key:0},J={class:"navbar"},oe=H({__name:"main-nav",props:{title:{default:""},back:{type:Boolean,default:!1},theme:{type:Boolean,default:!0}},setup(g){const i=g,n=E(),m=N(),l=h(!1),k=h("left"),u=s=>{s?(localStorage.setItem("PAOPAO_THEME","dark"),n.commit("triggerTheme","dark")):(localStorage.setItem("PAOPAO_THEME","light"),n.commit("triggerTheme","light"))},w=()=>{window.history.length<=1?m.push({path:"/"}):m.go(-1)},v=()=>{l.value=!0};return L(()=>{localStorage.getItem("PAOPAO_THEME")||u(P()==="dark")}),(s,d)=>{const y=B,b=R,O=I,r=V,p=j,M=x,T=F;return a(),f($,null,[o(n).state.drawerModelShow?(a(),f("div",G,[e(O,{show:l.value,"onUpdate:show":d[0]||(d[0]=z=>l.value=z),width:212,placement:k.value,resizable:""},{default:t(()=>[e(b,null,{default:t(()=>[e(y)]),_:1})]),_:1},8,["show","placement"])])):c("",!0),e(T,{size:"small",bordered:!0,class:"nav-title-card"},{header:t(()=>[U("div",J,[o(n).state.drawerModelShow&&!s.back?(a(),_(p,{key:0,class:"drawer-btn",onClick:v,quaternary:"",circle:"",size:"medium"},{icon:t(()=>[e(r,null,{default:t(()=>[e(o(S))]),_:1})]),_:1})):c("",!0),s.back?(a(),_(p,{key:1,class:"back-btn",onClick:w,quaternary:"",circle:"",size:"small"},{icon:t(()=>[e(r,null,{default:t(()=>[e(o(A))]),_:1})]),_:1})):c("",!0),q(" "+Z(i.title)+" ",1),i.theme?(a(),_(M,{key:2,value:o(n).state.theme==="dark","onUpdate:value":u,size:"small",class:"theme-switch-wrap"},{"checked-icon":t(()=>[e(r,{component:o(C)},null,8,["component"])]),"unchecked-icon":t(()=>[e(r,{component:o(D)},null,8,["component"])]),_:1},8,["value"])):c("",!0)])]),_:1})],64)}}});export{oe as _}; +import{Z as B}from"./index-5fa3c6e0.js";import{u as E}from"./vuex-4d2f7b35.js";import{u as N}from"./vue-router-29e6667f.js";import{j as P}from"./vooks-77bdadbd.js";import{D as S,y as A,z as C,F as D}from"./@vicons-4022100b.js";import{a3 as R,a4 as I,j as V,e as j,a5 as x,h as F}from"./naive-ui-d02aa0d7.js";import{d as H,r as h,j as L,o as a,c as f,Z as o,U as e,a0 as t,N as c,a as U,P as _,e as q,L as Z,F as $}from"./@vue-d002002f.js";const G={key:0},J={class:"navbar"},oe=H({__name:"main-nav",props:{title:{default:""},back:{type:Boolean,default:!1},theme:{type:Boolean,default:!0}},setup(g){const i=g,n=E(),m=N(),l=h(!1),k=h("left"),u=s=>{s?(localStorage.setItem("PAOPAO_THEME","dark"),n.commit("triggerTheme","dark")):(localStorage.setItem("PAOPAO_THEME","light"),n.commit("triggerTheme","light"))},w=()=>{window.history.length<=1?m.push({path:"/"}):m.go(-1)},v=()=>{l.value=!0};return L(()=>{localStorage.getItem("PAOPAO_THEME")||u(P()==="dark")}),(s,d)=>{const y=B,b=R,O=I,r=V,p=j,M=x,T=F;return a(),f($,null,[o(n).state.drawerModelShow?(a(),f("div",G,[e(O,{show:l.value,"onUpdate:show":d[0]||(d[0]=z=>l.value=z),width:212,placement:k.value,resizable:""},{default:t(()=>[e(b,null,{default:t(()=>[e(y)]),_:1})]),_:1},8,["show","placement"])])):c("",!0),e(T,{size:"small",bordered:!0,class:"nav-title-card"},{header:t(()=>[U("div",J,[o(n).state.drawerModelShow&&!s.back?(a(),_(p,{key:0,class:"drawer-btn",onClick:v,quaternary:"",circle:"",size:"medium"},{icon:t(()=>[e(r,null,{default:t(()=>[e(o(S))]),_:1})]),_:1})):c("",!0),s.back?(a(),_(p,{key:1,class:"back-btn",onClick:w,quaternary:"",circle:"",size:"small"},{icon:t(()=>[e(r,null,{default:t(()=>[e(o(A))]),_:1})]),_:1})):c("",!0),q(" "+Z(i.title)+" ",1),i.theme?(a(),_(M,{key:2,value:o(n).state.theme==="dark","onUpdate:value":u,size:"small",class:"theme-switch-wrap"},{"checked-icon":t(()=>[e(r,{component:o(C)},null,8,["component"])]),"unchecked-icon":t(()=>[e(r,{component:o(D)},null,8,["component"])]),_:1},8,["value"])):c("",!0)])]),_:1})],64)}}});export{oe as _}; diff --git a/web/dist/assets/naive-ui-374a973f.js b/web/dist/assets/naive-ui-d02aa0d7.js similarity index 99% rename from web/dist/assets/naive-ui-374a973f.js rename to web/dist/assets/naive-ui-d02aa0d7.js index 51568cac..42e1034e 100644 --- a/web/dist/assets/naive-ui-374a973f.js +++ b/web/dist/assets/naive-ui-d02aa0d7.js @@ -1,4 +1,4 @@ -import{r as lr,s as Je,c as $e,g as Jt,d as Mo,a as Bt,h as ft,b as Q,e as nt,f as Qs,p as _o,i as Yt,j as Hi}from"./seemly-76b7b838.js";import{e as zr,F as ao,C as Ai,f as Js,v as Ko,d as q,i as Se,g as kr,w as Ke,h as wo,r as D,j as mo,k as ar,l as ed,m as Ei,p as Oe,n as R,q as oo,s as i,T as no,t as un,u as ie,x as ko,y as io,z as Lo,A as er,B as jn,D as ji,E as Vr,G as Ur,H as od,I as td,J as Wi}from"./@vue-b8d06722.js";import{r as Wn,V as ht,a as rd,b as Ir,F as fn,c as Br,d as Tr,e as Nn,L as hn,f as nd}from"./vueuc-556279b6.js";import{u as We,i as bt,a as id,b as so,c as pt,d as ld,e as Ni,f as Vi,g as ad,o as sd}from"./vooks-423a5f30.js";import{m as It,u as dd,a as cd,r as ud,g as Ui,k as fd,t as Kr}from"./lodash-es-8412e618.js";import{m as $r}from"./@emotion-8a8e73f6.js";import{c as Ft,m as hd,z as Fr}from"./vdirs-b0483831.js";import{c as pd,a as sr}from"./treemate-25c27bff.js";import{S as vd}from"./async-validator-dee29e8b.js";import{o as Do,a as Ro}from"./evtd-b614532e.js";import{p as gd,u as Or}from"./@css-render-4f82e6dd.js";import{d as md}from"./date-fns-975a2d8f.js";import{C as bd,e as xd}from"./css-render-6a5c5852.js";function pn(e,o="default",t=[]){const n=e.$slots[o];return n===void 0?t:n()}function go(e,o=[],t){const r={};return o.forEach(n=>{r[n]=e[n]}),Object.assign(r,t)}function _t(e,o=[],t){const r={};return Object.getOwnPropertyNames(e).forEach(l=>{o.includes(l)||(r[l]=e[l])}),Object.assign(r,t)}function ot(e,o=!0,t=[]){return e.forEach(r=>{if(r!==null){if(typeof r!="object"){(typeof r=="string"||typeof r=="number")&&t.push(zr(String(r)));return}if(Array.isArray(r)){ot(r,o,t);return}if(r.type===ao){if(r.children===null)return;Array.isArray(r.children)&&ot(r.children,o,t)}else r.type!==Ai&&t.push(r)}}),t}function ae(e,...o){if(Array.isArray(e))e.forEach(t=>ae(t,...o));else return e(...o)}function yo(e){return Object.keys(e)}const qe=(e,...o)=>typeof e=="function"?e(...o):typeof e=="string"?zr(e):typeof e=="number"?zr(String(e)):null;function Go(e,o){console.error(`[naive/${e}]: ${o}`)}function Eo(e,o){throw new Error(`[naive/${e}]: ${o}`)}function Vn(e){switch(e){case"tiny":return"mini";case"small":return"tiny";case"medium":return"small";case"large":return"medium";case"huge":return"large"}throw Error(`${e} has no smaller size.`)}function Ki(e){switch(typeof e){case"string":return e||void 0;case"number":return String(e);default:return}}function ln(e,o="default",t=void 0){const r=e[o];if(!r)return Go("getFirstSlotVNode",`slot[${o}] is empty`),null;const n=ot(r(t));return n.length===1?n[0]:(Go("getFirstSlotVNode",`slot[${o}] should have exactly one child`),null)}function Gi(e){return o=>{o?e.value=o.$el:e.value=null}}function dr(e){return e.some(o=>Js(o)?!(o.type===Ai||o.type===ao&&!dr(o.children)):!0)?e:null}function lo(e,o){return e&&dr(e())||o()}function qi(e,o,t){return e&&dr(e(o))||t(o)}function Ee(e,o){const t=e&&dr(e());return o(t||null)}function ut(e){return!(e&&dr(e()))}function Qt(e){const o=e.filter(t=>t!==void 0);if(o.length!==0)return o.length===1?o[0]:t=>{e.forEach(r=>{r&&r(t)})}}function Cd(e){var o;const t=(o=e.dirs)===null||o===void 0?void 0:o.find(({dir:r})=>r===Ko);return!!(t&&t.value===!1)}const an=q({render(){var e,o;return(o=(e=this.$slots).default)===null||o===void 0?void 0:o.call(e)}}),yd=/^(\d|\.)+$/,Un=/(\d|\.)+/;function eo(e,{c:o=1,offset:t=0,attachPx:r=!0}={}){if(typeof e=="number"){const n=(e+t)*o;return n===0?"0":`${n}px`}else if(typeof e=="string")if(yd.test(e)){const n=(Number(e)+t)*o;return r?n===0?"0":`${n}px`:`${n}`}else{const n=Un.exec(e);return n?e.replace(Un,String((Number(n[0])+t)*o)):e}return e}function Ot(e){return e.replace(/#|\(|\)|,|\s/g,"_")}function W(e,o){return e+(o==="default"?"":o.replace(/^[a-z]/,t=>t.toUpperCase()))}W("abc","def");const wd="n",or=`.${wd}-`,Sd="__",zd="--",Yi=bd(),Xi=gd({blockPrefix:or,elementPrefix:Sd,modifierPrefix:zd});Yi.use(Xi);const{c:y,find:u1}=Yi,{cB:g,cE:w,cM:k,cNotM:je}=Xi;function Mr(e){return y(({props:{bPrefix:o}})=>`${o||or}modal, ${o||or}drawer`,[e])}function vn(e){return y(({props:{bPrefix:o}})=>`${o||or}popover`,[e])}function Zi(e){return y(({props:{bPrefix:o}})=>`&${o||or}modal`,e)}const $d=(...e)=>y(">",[g(...e)]);let Gr;function Rd(){return Gr===void 0&&(Gr=navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),Gr}const jo=typeof document<"u"&&typeof window<"u",Qi=new WeakSet;function Pd(e){Qi.add(e)}function Ji(e){return!Qi.has(e)}function kd(e,o,t){var r;const n=Se(e,null);if(n===null)return;const l=(r=kr())===null||r===void 0?void 0:r.proxy;Ke(t,a),a(t.value),wo(()=>{a(void 0,t.value)});function a(c,u){const f=n[o];u!==void 0&&s(f,u),c!==void 0&&d(f,c)}function s(c,u){c[u]||(c[u]=[]),c[u].splice(c[u].findIndex(f=>f===l),1)}function d(c,u){c[u]||(c[u]=[]),~c[u].findIndex(f=>f===l)||c[u].push(l)}}function Id(e,o,t){if(!o)return e;const r=D(e.value);let n=null;return Ke(e,l=>{n!==null&&window.clearTimeout(n),l===!0?t&&!t.value?r.value=!0:n=window.setTimeout(()=>{r.value=!0},o):r.value=!1}),r}const gn="n-internal-select-menu",el="n-internal-select-menu-body",cr="n-modal-body",ol="n-modal",ur="n-drawer-body",mn="n-drawer",Dt="n-popover-body",tl="__disabled__";function Io(e){const o=Se(cr,null),t=Se(ur,null),r=Se(Dt,null),n=Se(el,null),l=D();if(typeof document<"u"){l.value=document.fullscreenElement;const a=()=>{l.value=document.fullscreenElement};mo(()=>{Do("fullscreenchange",document,a)}),wo(()=>{Ro("fullscreenchange",document,a)})}return We(()=>{var a;const{to:s}=e;return s!==void 0?s===!1?tl:s===!0?l.value||"body":s:o!=null&&o.value?(a=o.value.$el)!==null&&a!==void 0?a:o.value:t!=null&&t.value?t.value:r!=null&&r.value?r.value:n!=null&&n.value?n.value:s??(l.value||"body")})}Io.tdkey=tl;Io.propTo={type:[String,Object,Boolean],default:void 0};let Kn=!1;function rl(){if(jo&&window.CSS&&!Kn&&(Kn=!0,"registerProperty"in(window==null?void 0:window.CSS)))try{CSS.registerProperty({name:"--n-color-start",syntax:"",inherits:!1,initialValue:"#0000"}),CSS.registerProperty({name:"--n-color-end",syntax:"",inherits:!1,initialValue:"#0000"})}catch{}}function nl(e,o){o&&(mo(()=>{const{value:t}=e;t&&Wn.registerHandler(t,o)}),wo(()=>{const{value:t}=e;t&&Wn.unregisterHandler(t)}))}let $t=0,Gn="",qn="",Yn="",Xn="";const Zn=D("0px");function il(e){if(typeof document>"u")return;const o=document.documentElement;let t,r=!1;const n=()=>{o.style.marginRight=Gn,o.style.overflow=qn,o.style.overflowX=Yn,o.style.overflowY=Xn,Zn.value="0px"};mo(()=>{t=Ke(e,l=>{if(l){if(!$t){const a=window.innerWidth-o.offsetWidth;a>0&&(Gn=o.style.marginRight,o.style.marginRight=`${a}px`,Zn.value=`${a}px`),qn=o.style.overflow,Yn=o.style.overflowX,Xn=o.style.overflowY,o.style.overflow="hidden",o.style.overflowX="hidden",o.style.overflowY="hidden"}r=!0,$t++}else $t--,$t||n(),r=!1},{immediate:!0})}),wo(()=>{t==null||t(),r&&($t--,$t||n(),r=!1)})}const bn=D(!1),Qn=()=>{bn.value=!0},Jn=()=>{bn.value=!1};let Xt=0;const ll=()=>(jo&&(ar(()=>{Xt||(window.addEventListener("compositionstart",Qn),window.addEventListener("compositionend",Jn)),Xt++}),wo(()=>{Xt<=1?(window.removeEventListener("compositionstart",Qn),window.removeEventListener("compositionend",Jn),Xt=0):Xt--})),bn);function Bd(e){const o={isDeactivated:!1};let t=!1;return ed(()=>{if(o.isDeactivated=!1,!t){t=!0;return}e()}),Ei(()=>{o.isDeactivated=!0,t||(t=!0)}),o}const Rr="n-form-item";function tt(e,{defaultSize:o="medium",mergedSize:t,mergedDisabled:r}={}){const n=Se(Rr,null);Oe(Rr,null);const l=R(t?()=>t(n):()=>{const{size:d}=e;if(d)return d;if(n){const{mergedSize:c}=n;if(c.value!==void 0)return c.value}return o}),a=R(r?()=>r(n):()=>{const{disabled:d}=e;return d!==void 0?d:n?n.disabled.value:!1}),s=R(()=>{const{status:d}=e;return d||(n==null?void 0:n.mergedValidationStatus.value)});return wo(()=>{n&&n.restoreValidation()}),{mergedSizeRef:l,mergedDisabledRef:a,mergedStatusRef:s,nTriggerFormBlur(){n&&n.handleContentBlur()},nTriggerFormChange(){n&&n.handleContentChange()},nTriggerFormFocus(){n&&n.handleContentFocus()},nTriggerFormInput(){n&&n.handleContentInput()}}}const So={fontFamily:'v-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',fontFamilyMono:"v-mono, SFMono-Regular, Menlo, Consolas, Courier, monospace",fontWeight:"400",fontWeightStrong:"500",cubicBezierEaseInOut:"cubic-bezier(.4, 0, .2, 1)",cubicBezierEaseOut:"cubic-bezier(0, 0, .2, 1)",cubicBezierEaseIn:"cubic-bezier(.4, 0, 1, 1)",borderRadius:"3px",borderRadiusSmall:"2px",fontSize:"14px",fontSizeMini:"12px",fontSizeTiny:"12px",fontSizeSmall:"14px",fontSizeMedium:"14px",fontSizeLarge:"15px",fontSizeHuge:"16px",lineHeight:"1.6",heightMini:"16px",heightTiny:"22px",heightSmall:"28px",heightMedium:"34px",heightLarge:"40px",heightHuge:"46px"},{fontSize:Td,fontFamily:Fd,lineHeight:Od}=So,al=y("body",` +import{r as lr,s as Je,c as $e,g as Jt,d as Mo,a as Bt,h as ft,b as Q,e as nt,f as Qs,p as _o,i as Yt,j as Hi}from"./seemly-76b7b838.js";import{e as zr,F as ao,C as Ai,f as Js,v as Ko,d as q,i as Se,g as kr,w as Ke,h as wo,r as D,j as mo,k as ar,l as ed,m as Ei,p as Oe,n as R,q as oo,s as i,T as no,t as un,u as ie,x as ko,y as io,z as Lo,A as er,B as jn,D as ji,E as Vr,G as Ur,H as od,I as td,J as Wi}from"./@vue-d002002f.js";import{r as Wn,V as ht,a as rd,b as Ir,F as fn,c as Br,d as Tr,e as Nn,L as hn,f as nd}from"./vueuc-0232e3b9.js";import{u as We,i as bt,a as id,b as so,c as pt,d as ld,e as Ni,f as Vi,g as ad,o as sd}from"./vooks-77bdadbd.js";import{m as It,u as dd,a as cd,r as ud,g as Ui,k as fd,t as Kr}from"./lodash-es-8412e618.js";import{m as $r}from"./@emotion-8a8e73f6.js";import{c as Ft,m as hd,z as Fr}from"./vdirs-b0483831.js";import{c as pd,a as sr}from"./treemate-25c27bff.js";import{S as vd}from"./async-validator-dee29e8b.js";import{o as Do,a as Ro}from"./evtd-b614532e.js";import{p as gd,u as Or}from"./@css-render-6b6cdab1.js";import{d as md}from"./date-fns-975a2d8f.js";import{C as bd,e as xd}from"./css-render-6a5c5852.js";function pn(e,o="default",t=[]){const n=e.$slots[o];return n===void 0?t:n()}function go(e,o=[],t){const r={};return o.forEach(n=>{r[n]=e[n]}),Object.assign(r,t)}function _t(e,o=[],t){const r={};return Object.getOwnPropertyNames(e).forEach(l=>{o.includes(l)||(r[l]=e[l])}),Object.assign(r,t)}function ot(e,o=!0,t=[]){return e.forEach(r=>{if(r!==null){if(typeof r!="object"){(typeof r=="string"||typeof r=="number")&&t.push(zr(String(r)));return}if(Array.isArray(r)){ot(r,o,t);return}if(r.type===ao){if(r.children===null)return;Array.isArray(r.children)&&ot(r.children,o,t)}else r.type!==Ai&&t.push(r)}}),t}function ae(e,...o){if(Array.isArray(e))e.forEach(t=>ae(t,...o));else return e(...o)}function yo(e){return Object.keys(e)}const qe=(e,...o)=>typeof e=="function"?e(...o):typeof e=="string"?zr(e):typeof e=="number"?zr(String(e)):null;function Go(e,o){console.error(`[naive/${e}]: ${o}`)}function Eo(e,o){throw new Error(`[naive/${e}]: ${o}`)}function Vn(e){switch(e){case"tiny":return"mini";case"small":return"tiny";case"medium":return"small";case"large":return"medium";case"huge":return"large"}throw Error(`${e} has no smaller size.`)}function Ki(e){switch(typeof e){case"string":return e||void 0;case"number":return String(e);default:return}}function ln(e,o="default",t=void 0){const r=e[o];if(!r)return Go("getFirstSlotVNode",`slot[${o}] is empty`),null;const n=ot(r(t));return n.length===1?n[0]:(Go("getFirstSlotVNode",`slot[${o}] should have exactly one child`),null)}function Gi(e){return o=>{o?e.value=o.$el:e.value=null}}function dr(e){return e.some(o=>Js(o)?!(o.type===Ai||o.type===ao&&!dr(o.children)):!0)?e:null}function lo(e,o){return e&&dr(e())||o()}function qi(e,o,t){return e&&dr(e(o))||t(o)}function Ee(e,o){const t=e&&dr(e());return o(t||null)}function ut(e){return!(e&&dr(e()))}function Qt(e){const o=e.filter(t=>t!==void 0);if(o.length!==0)return o.length===1?o[0]:t=>{e.forEach(r=>{r&&r(t)})}}function Cd(e){var o;const t=(o=e.dirs)===null||o===void 0?void 0:o.find(({dir:r})=>r===Ko);return!!(t&&t.value===!1)}const an=q({render(){var e,o;return(o=(e=this.$slots).default)===null||o===void 0?void 0:o.call(e)}}),yd=/^(\d|\.)+$/,Un=/(\d|\.)+/;function eo(e,{c:o=1,offset:t=0,attachPx:r=!0}={}){if(typeof e=="number"){const n=(e+t)*o;return n===0?"0":`${n}px`}else if(typeof e=="string")if(yd.test(e)){const n=(Number(e)+t)*o;return r?n===0?"0":`${n}px`:`${n}`}else{const n=Un.exec(e);return n?e.replace(Un,String((Number(n[0])+t)*o)):e}return e}function Ot(e){return e.replace(/#|\(|\)|,|\s/g,"_")}function W(e,o){return e+(o==="default"?"":o.replace(/^[a-z]/,t=>t.toUpperCase()))}W("abc","def");const wd="n",or=`.${wd}-`,Sd="__",zd="--",Yi=bd(),Xi=gd({blockPrefix:or,elementPrefix:Sd,modifierPrefix:zd});Yi.use(Xi);const{c:y,find:u1}=Yi,{cB:g,cE:w,cM:k,cNotM:je}=Xi;function Mr(e){return y(({props:{bPrefix:o}})=>`${o||or}modal, ${o||or}drawer`,[e])}function vn(e){return y(({props:{bPrefix:o}})=>`${o||or}popover`,[e])}function Zi(e){return y(({props:{bPrefix:o}})=>`&${o||or}modal`,e)}const $d=(...e)=>y(">",[g(...e)]);let Gr;function Rd(){return Gr===void 0&&(Gr=navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),Gr}const jo=typeof document<"u"&&typeof window<"u",Qi=new WeakSet;function Pd(e){Qi.add(e)}function Ji(e){return!Qi.has(e)}function kd(e,o,t){var r;const n=Se(e,null);if(n===null)return;const l=(r=kr())===null||r===void 0?void 0:r.proxy;Ke(t,a),a(t.value),wo(()=>{a(void 0,t.value)});function a(c,u){const f=n[o];u!==void 0&&s(f,u),c!==void 0&&d(f,c)}function s(c,u){c[u]||(c[u]=[]),c[u].splice(c[u].findIndex(f=>f===l),1)}function d(c,u){c[u]||(c[u]=[]),~c[u].findIndex(f=>f===l)||c[u].push(l)}}function Id(e,o,t){if(!o)return e;const r=D(e.value);let n=null;return Ke(e,l=>{n!==null&&window.clearTimeout(n),l===!0?t&&!t.value?r.value=!0:n=window.setTimeout(()=>{r.value=!0},o):r.value=!1}),r}const gn="n-internal-select-menu",el="n-internal-select-menu-body",cr="n-modal-body",ol="n-modal",ur="n-drawer-body",mn="n-drawer",Dt="n-popover-body",tl="__disabled__";function Io(e){const o=Se(cr,null),t=Se(ur,null),r=Se(Dt,null),n=Se(el,null),l=D();if(typeof document<"u"){l.value=document.fullscreenElement;const a=()=>{l.value=document.fullscreenElement};mo(()=>{Do("fullscreenchange",document,a)}),wo(()=>{Ro("fullscreenchange",document,a)})}return We(()=>{var a;const{to:s}=e;return s!==void 0?s===!1?tl:s===!0?l.value||"body":s:o!=null&&o.value?(a=o.value.$el)!==null&&a!==void 0?a:o.value:t!=null&&t.value?t.value:r!=null&&r.value?r.value:n!=null&&n.value?n.value:s??(l.value||"body")})}Io.tdkey=tl;Io.propTo={type:[String,Object,Boolean],default:void 0};let Kn=!1;function rl(){if(jo&&window.CSS&&!Kn&&(Kn=!0,"registerProperty"in(window==null?void 0:window.CSS)))try{CSS.registerProperty({name:"--n-color-start",syntax:"",inherits:!1,initialValue:"#0000"}),CSS.registerProperty({name:"--n-color-end",syntax:"",inherits:!1,initialValue:"#0000"})}catch{}}function nl(e,o){o&&(mo(()=>{const{value:t}=e;t&&Wn.registerHandler(t,o)}),wo(()=>{const{value:t}=e;t&&Wn.unregisterHandler(t)}))}let $t=0,Gn="",qn="",Yn="",Xn="";const Zn=D("0px");function il(e){if(typeof document>"u")return;const o=document.documentElement;let t,r=!1;const n=()=>{o.style.marginRight=Gn,o.style.overflow=qn,o.style.overflowX=Yn,o.style.overflowY=Xn,Zn.value="0px"};mo(()=>{t=Ke(e,l=>{if(l){if(!$t){const a=window.innerWidth-o.offsetWidth;a>0&&(Gn=o.style.marginRight,o.style.marginRight=`${a}px`,Zn.value=`${a}px`),qn=o.style.overflow,Yn=o.style.overflowX,Xn=o.style.overflowY,o.style.overflow="hidden",o.style.overflowX="hidden",o.style.overflowY="hidden"}r=!0,$t++}else $t--,$t||n(),r=!1},{immediate:!0})}),wo(()=>{t==null||t(),r&&($t--,$t||n(),r=!1)})}const bn=D(!1),Qn=()=>{bn.value=!0},Jn=()=>{bn.value=!1};let Xt=0;const ll=()=>(jo&&(ar(()=>{Xt||(window.addEventListener("compositionstart",Qn),window.addEventListener("compositionend",Jn)),Xt++}),wo(()=>{Xt<=1?(window.removeEventListener("compositionstart",Qn),window.removeEventListener("compositionend",Jn),Xt=0):Xt--})),bn);function Bd(e){const o={isDeactivated:!1};let t=!1;return ed(()=>{if(o.isDeactivated=!1,!t){t=!0;return}e()}),Ei(()=>{o.isDeactivated=!0,t||(t=!0)}),o}const Rr="n-form-item";function tt(e,{defaultSize:o="medium",mergedSize:t,mergedDisabled:r}={}){const n=Se(Rr,null);Oe(Rr,null);const l=R(t?()=>t(n):()=>{const{size:d}=e;if(d)return d;if(n){const{mergedSize:c}=n;if(c.value!==void 0)return c.value}return o}),a=R(r?()=>r(n):()=>{const{disabled:d}=e;return d!==void 0?d:n?n.disabled.value:!1}),s=R(()=>{const{status:d}=e;return d||(n==null?void 0:n.mergedValidationStatus.value)});return wo(()=>{n&&n.restoreValidation()}),{mergedSizeRef:l,mergedDisabledRef:a,mergedStatusRef:s,nTriggerFormBlur(){n&&n.handleContentBlur()},nTriggerFormChange(){n&&n.handleContentChange()},nTriggerFormFocus(){n&&n.handleContentFocus()},nTriggerFormInput(){n&&n.handleContentInput()}}}const So={fontFamily:'v-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',fontFamilyMono:"v-mono, SFMono-Regular, Menlo, Consolas, Courier, monospace",fontWeight:"400",fontWeightStrong:"500",cubicBezierEaseInOut:"cubic-bezier(.4, 0, .2, 1)",cubicBezierEaseOut:"cubic-bezier(0, 0, .2, 1)",cubicBezierEaseIn:"cubic-bezier(.4, 0, 1, 1)",borderRadius:"3px",borderRadiusSmall:"2px",fontSize:"14px",fontSizeMini:"12px",fontSizeTiny:"12px",fontSizeSmall:"14px",fontSizeMedium:"14px",fontSizeLarge:"15px",fontSizeHuge:"16px",lineHeight:"1.6",heightMini:"16px",heightTiny:"22px",heightSmall:"28px",heightMedium:"34px",heightLarge:"40px",heightHuge:"46px"},{fontSize:Td,fontFamily:Fd,lineHeight:Od}=So,al=y("body",` margin: 0; font-size: ${Td}; font-family: ${Fd}; @@ -3610,4 +3610,4 @@ import{r as lr,s as Je,c as $e,g as Jt,d as Mo,a as Bt,h as ft,b as Q,e as nt,f width: 0; height: 0; opacity: 0; - `)]);var Li=globalThis&&globalThis.__awaiter||function(e,o,t,r){function n(l){return l instanceof t?l:new t(function(a){a(l)})}return new(t||(t=Promise))(function(l,a){function s(u){try{c(r.next(u))}catch(f){a(f)}}function d(u){try{c(r.throw(u))}catch(f){a(f)}}function c(u){u.done?l(u.value):n(u.value).then(s,d)}c((r=r.apply(e,o||[])).next())})};function W0(e,o,t){const{doChange:r,xhrMap:n}=e;let l=0;function a(d){var c;let u=Object.assign({},o,{status:"error",percentage:l});n.delete(o.id),u=ir(((c=e.onError)===null||c===void 0?void 0:c.call(e,{file:u,event:d}))||u),r(u,d)}function s(d){var c;if(e.isErrorState){if(e.isErrorState(t)){a(d);return}}else if(t.status<200||t.status>=300){a(d);return}let u=Object.assign({},o,{status:"finished",percentage:l});n.delete(o.id),u=ir(((c=e.onFinish)===null||c===void 0?void 0:c.call(e,{file:u,event:d}))||u),r(u,d)}return{handleXHRLoad:s,handleXHRError:a,handleXHRAbort(d){const c=Object.assign({},o,{status:"removed",file:null,percentage:l});n.delete(o.id),r(c,d)},handleXHRProgress(d){const c=Object.assign({},o,{status:"uploading"});if(d.lengthComputable){const u=Math.ceil(d.loaded/d.total*100);c.percentage=u,l=u}r(c,d)}}}function N0(e){const{inst:o,file:t,data:r,headers:n,withCredentials:l,action:a,customRequest:s}=e,{doChange:d}=e.inst;let c=0;s({file:t,data:r,headers:n,withCredentials:l,action:a,onProgress(u){const f=Object.assign({},t,{status:"uploading"}),p=u.percent;f.percentage=p,c=p,d(f)},onFinish(){var u;let f=Object.assign({},t,{status:"finished",percentage:c});f=ir(((u=o.onFinish)===null||u===void 0?void 0:u.call(o,{file:f}))||f),d(f)},onError(){var u;let f=Object.assign({},t,{status:"error",percentage:c});f=ir(((u=o.onError)===null||u===void 0?void 0:u.call(o,{file:f}))||f),d(f)}})}function V0(e,o,t){const r=W0(e,o,t);t.onabort=r.handleXHRAbort,t.onerror=r.handleXHRError,t.onload=r.handleXHRLoad,t.upload&&(t.upload.onprogress=r.handleXHRProgress)}function gs(e,o){return typeof e=="function"?e({file:o}):e||{}}function U0(e,o,t){const r=gs(o,t);r&&Object.keys(r).forEach(n=>{e.setRequestHeader(n,r[n])})}function K0(e,o,t){const r=gs(o,t);r&&Object.keys(r).forEach(n=>{e.append(n,r[n])})}function G0(e,o,t,{method:r,action:n,withCredentials:l,responseType:a,headers:s,data:d}){const c=new XMLHttpRequest;c.responseType=a,e.xhrMap.set(t.id,c),c.withCredentials=l;const u=new FormData;if(K0(u,d,t),u.append(o,t.file),V0(e,t,c),n!==void 0){c.open(r.toUpperCase(),n),U0(c,s,t),c.send(u);const f=Object.assign({},t,{status:"uploading"});e.doChange(f)}}const q0=Object.assign(Object.assign({},re.props),{name:{type:String,default:"file"},accept:String,action:String,customRequest:Function,directory:Boolean,directoryDnd:{type:Boolean,default:void 0},method:{type:String,default:"POST"},multiple:Boolean,showFileList:{type:Boolean,default:!0},data:[Object,Function],headers:[Object,Function],withCredentials:Boolean,responseType:{type:String,default:""},disabled:{type:Boolean,default:void 0},onChange:Function,onRemove:Function,onFinish:Function,onError:Function,onBeforeUpload:Function,isErrorState:Function,onDownload:Function,defaultUpload:{type:Boolean,default:!0},fileList:Array,"onUpdate:fileList":[Function,Array],onUpdateFileList:[Function,Array],fileListStyle:[String,Object],defaultFileList:{type:Array,default:()=>[]},showCancelButton:{type:Boolean,default:!0},showRemoveButton:{type:Boolean,default:!0},showDownloadButton:Boolean,showRetryButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},listType:{type:String,default:"text"},onPreview:Function,shouldUseThumbnailUrl:{type:Function,default:e=>I0?ps(e):!1},createThumbnailUrl:Function,abstract:Boolean,max:Number,showTrigger:{type:Boolean,default:!0},imageGroupProps:Object,inputProps:Object,triggerStyle:[String,Object],renderIcon:Object}),J1=q({name:"Upload",props:q0,setup(e){e.abstract&&e.listType==="image-card"&&Eo("upload","when the list-type is image-card, abstract is not supported.");const{mergedClsPrefixRef:o,inlineThemeDisabled:t}=ke(e),r=re("Upload","-upload",j0,Zm,e,o),n=tt(e),l=R(()=>{const{max:P}=e;return P!==void 0?v.value.length>=P:!1}),a=D(e.defaultFileList),s=ie(e,"fileList"),d=D(null),c={value:!1},u=D(!1),f=new Map,p=so(s,a),v=R(()=>p.value.map(ir));function h(){var P;(P=d.value)===null||P===void 0||P.click()}function m(P){const z=P.target;x(z.files?Array.from(z.files).map(L=>({file:L,entry:null,source:"input"})):null,P),z.value=""}function b(P){const{"onUpdate:fileList":z,onUpdateFileList:L}=e;z&&ae(z,P),L&&ae(L,P),a.value=P}const C=R(()=>e.multiple||e.directory);function x(P,z){if(!P||P.length===0)return;const{onBeforeUpload:L}=e;P=C.value?P:[P[0]];const{max:M,accept:j}=e;P=P.filter(({file:U,source:_})=>_==="dnd"&&(j!=null&&j.trim())?O0(U.name,U.type,j):!0),M&&(P=P.slice(0,M-v.value.length));const E=nt();Promise.all(P.map(({file:U,entry:_})=>Li(this,void 0,void 0,function*(){var V;const te={id:nt(),batchId:E,name:U.name,status:"pending",percentage:0,file:U,url:null,type:U.type,thumbnailUrl:null,fullPath:(V=_==null?void 0:_.fullPath)!==null&&V!==void 0?V:`/${U.webkitRelativePath||U.name}`};return!L||(yield L({file:te,fileList:v.value}))!==!1?te:null}))).then(U=>Li(this,void 0,void 0,function*(){let _=Promise.resolve();return U.forEach(V=>{_=_.then(io).then(()=>{V&&B(V,z,{append:!0})})}),yield _})).then(()=>{e.defaultUpload&&I()})}function I(P){const{method:z,action:L,withCredentials:M,headers:j,data:E,name:U}=e,_=P!==void 0?v.value.filter(te=>te.id===P):v.value,V=P!==void 0;_.forEach(te=>{const{status:N}=te;(N==="pending"||N==="error"&&V)&&(e.customRequest?N0({inst:{doChange:B,xhrMap:f,onFinish:e.onFinish,onError:e.onError},file:te,action:L,withCredentials:M,headers:j,data:E,customRequest:e.customRequest}):G0({doChange:B,xhrMap:f,onFinish:e.onFinish,onError:e.onError,isErrorState:e.isErrorState},U,te,{method:z,action:L,withCredentials:M,responseType:e.responseType,headers:j,data:E}))})}const B=(P,z,L={append:!1,remove:!1})=>{const{append:M,remove:j}=L,E=Array.from(v.value),U=E.findIndex(_=>_.id===P.id);if(M||j||~U){M?E.push(P):j?E.splice(U,1):E.splice(U,1,P);const{onChange:_}=e;_&&_({file:P,fileList:E,event:z}),b(E)}};function $(P){var z;if(P.thumbnailUrl)return P.thumbnailUrl;const{createThumbnailUrl:L}=e;return L?(z=L(P.file,P))!==null&&z!==void 0?z:P.url||"":P.url?P.url:P.file?k0(P.file):""}const T=R(()=>{const{common:{cubicBezierEaseInOut:P},self:{draggerColor:z,draggerBorder:L,draggerBorderHover:M,itemColorHover:j,itemColorHoverError:E,itemTextColorError:U,itemTextColorSuccess:_,itemTextColor:V,itemIconColor:te,itemDisabledOpacity:N,lineHeight:G,borderRadius:Ce,fontSize:X,itemBorderImageCardError:pe,itemBorderImageCard:fe}}=r.value;return{"--n-bezier":P,"--n-border-radius":Ce,"--n-dragger-border":L,"--n-dragger-border-hover":M,"--n-dragger-color":z,"--n-font-size":X,"--n-item-color-hover":j,"--n-item-color-hover-error":E,"--n-item-disabled-opacity":N,"--n-item-icon-color":te,"--n-item-text-color":V,"--n-item-text-color-error":U,"--n-item-text-color-success":_,"--n-line-height":G,"--n-item-border-image-card-error":pe,"--n-item-border-image-card":fe}}),S=t?Ae("upload",void 0,T,e):void 0;Oe(Ut,{mergedClsPrefixRef:o,mergedThemeRef:r,showCancelButtonRef:ie(e,"showCancelButton"),showDownloadButtonRef:ie(e,"showDownloadButton"),showRemoveButtonRef:ie(e,"showRemoveButton"),showRetryButtonRef:ie(e,"showRetryButton"),onRemoveRef:ie(e,"onRemove"),onDownloadRef:ie(e,"onDownload"),mergedFileListRef:v,triggerStyleRef:ie(e,"triggerStyle"),shouldUseThumbnailUrlRef:ie(e,"shouldUseThumbnailUrl"),renderIconRef:ie(e,"renderIcon"),xhrMap:f,submit:I,doChange:B,showPreviewButtonRef:ie(e,"showPreviewButton"),onPreviewRef:ie(e,"onPreview"),getFileThumbnailUrlResolver:$,listTypeRef:ie(e,"listType"),dragOverRef:u,openOpenFileDialog:h,draggerInsideRef:c,handleFileAddition:x,mergedDisabledRef:n.mergedDisabledRef,maxReachedRef:l,fileListStyleRef:ie(e,"fileListStyle"),abstractRef:ie(e,"abstract"),acceptRef:ie(e,"accept"),cssVarsRef:t?void 0:T,themeClassRef:S==null?void 0:S.themeClass,onRender:S==null?void 0:S.onRender,showTriggerRef:ie(e,"showTrigger"),imageGroupPropsRef:ie(e,"imageGroupProps"),mergedDirectoryDndRef:R(()=>{var P;return(P=e.directoryDnd)!==null&&P!==void 0?P:e.directory})});const O={clear:()=>{a.value=[]},submit:I,openOpenFileDialog:h};return Object.assign({mergedClsPrefix:o,draggerInsideRef:c,inputElRef:d,mergedTheme:r,dragOver:u,mergedMultiple:C,cssVars:t?void 0:T,themeClass:S==null?void 0:S.themeClass,onRender:S==null?void 0:S.onRender,handleFileInputChange:m},O)},render(){var e,o;const{draggerInsideRef:t,mergedClsPrefix:r,$slots:n,directory:l,onRender:a}=this;if(n.default&&!this.abstract){const d=n.default()[0];!((e=d==null?void 0:d.type)===null||e===void 0)&&e[us]&&(t.value=!0)}const s=i("input",Object.assign({},this.inputProps,{ref:"inputElRef",type:"file",class:`${r}-upload-file-input`,accept:this.accept,multiple:this.mergedMultiple,onChange:this.handleFileInputChange,webkitdirectory:l||void 0,directory:l||void 0}));return this.abstract?i(ao,null,(o=n.default)===null||o===void 0?void 0:o.call(n),i(Wi,{to:"body"},s)):(a==null||a(),i("div",{class:[`${r}-upload`,t.value&&`${r}-upload--dragger-inside`,this.dragOver&&`${r}-upload--drag-over`,this.themeClass],style:this.cssVars},s,this.showTrigger&&this.listType!=="image-card"&&i(vs,null,n),this.showFileList&&i(E0,null,n)))}}),Y0=()=>({}),X0={name:"Equation",common:ue,self:Y0},Z0=X0,ex={name:"dark",common:ue,Alert:lu,Anchor:mu,AutoComplete:Ou,Avatar:Ll,AvatarGroup:Nu,BackTop:Ku,Badge:qu,Breadcrumb:rf,Button:$o,ButtonGroup:pg,Calendar:gf,Card:Vl,Carousel:If,Cascader:_f,Checkbox:Nt,Code:Ul,Collapse:Af,CollapseTransition:Wf,ColorPicker:xf,DataTable:Ph,DatePicker:lp,Descriptions:cp,Dialog:va,Divider:Fp,Drawer:Hp,Dropdown:$n,DynamicInput:tv,DynamicTags:mv,Element:xv,Empty:wt,Ellipsis:ea,Equation:Z0,Form:Sv,GradientText:Uv,Icon:Eh,IconWrapper:og,Image:nb,Input:Ho,InputNumber:gg,LegacyTransfer:Cb,Layout:yg,List:$g,LoadingBar:Pg,Log:Ig,Menu:Ag,Mention:Tg,Message:fg,Modal:Cp,Notification:ag,PageHeader:Wg,Pagination:Ql,Popconfirm:Gg,Popover:St,Popselect:Kl,Progress:Ea,Radio:ta,Rate:Zg,Result:tm,Row:rb,Scrollbar:zo,Select:Xl,Skeleton:l0,Slider:im,Space:$a,Spin:dm,Statistic:hm,Steps:mm,Switch:xm,Table:Rm,Tabs:Tm,Tag:Sl,Thing:_m,TimePicker:fa,Timeline:Hm,Tooltip:Lr,Transfer:jm,Tree:Ga,TreeSelect:Um,Typography:Ym,Upload:Jm,Watermark:ob};export{Ov as $,_1 as A,J1 as B,C1 as C,y1 as D,P1 as E,D1 as F,b1 as G,L1 as H,wc as I,W1 as J,h1 as K,X1 as L,Yr as M,Z1 as N,Jh as O,z1 as P,O1 as Q,x1 as R,f1 as S,S1 as T,V1 as U,B1 as V,M1 as W,cb as X,m1 as Y,K1 as Z,Q1 as _,k1 as a,Ev as a0,Hv as a1,N1 as a2,R1 as a3,$1 as a4,G1 as a5,mt as b,T1 as c,I1 as d,Po as e,q1 as f,Y1 as g,Rf as h,$p as i,Nh as j,U1 as k,v1 as l,fb as m,H1 as n,p1 as o,g1 as p,ex as q,w1 as r,E1 as s,F1 as t,j1 as u,A1 as v,vs as w,Qb as x,Rn as y,E0 as z}; + `)]);var Li=globalThis&&globalThis.__awaiter||function(e,o,t,r){function n(l){return l instanceof t?l:new t(function(a){a(l)})}return new(t||(t=Promise))(function(l,a){function s(u){try{c(r.next(u))}catch(f){a(f)}}function d(u){try{c(r.throw(u))}catch(f){a(f)}}function c(u){u.done?l(u.value):n(u.value).then(s,d)}c((r=r.apply(e,o||[])).next())})};function W0(e,o,t){const{doChange:r,xhrMap:n}=e;let l=0;function a(d){var c;let u=Object.assign({},o,{status:"error",percentage:l});n.delete(o.id),u=ir(((c=e.onError)===null||c===void 0?void 0:c.call(e,{file:u,event:d}))||u),r(u,d)}function s(d){var c;if(e.isErrorState){if(e.isErrorState(t)){a(d);return}}else if(t.status<200||t.status>=300){a(d);return}let u=Object.assign({},o,{status:"finished",percentage:l});n.delete(o.id),u=ir(((c=e.onFinish)===null||c===void 0?void 0:c.call(e,{file:u,event:d}))||u),r(u,d)}return{handleXHRLoad:s,handleXHRError:a,handleXHRAbort(d){const c=Object.assign({},o,{status:"removed",file:null,percentage:l});n.delete(o.id),r(c,d)},handleXHRProgress(d){const c=Object.assign({},o,{status:"uploading"});if(d.lengthComputable){const u=Math.ceil(d.loaded/d.total*100);c.percentage=u,l=u}r(c,d)}}}function N0(e){const{inst:o,file:t,data:r,headers:n,withCredentials:l,action:a,customRequest:s}=e,{doChange:d}=e.inst;let c=0;s({file:t,data:r,headers:n,withCredentials:l,action:a,onProgress(u){const f=Object.assign({},t,{status:"uploading"}),p=u.percent;f.percentage=p,c=p,d(f)},onFinish(){var u;let f=Object.assign({},t,{status:"finished",percentage:c});f=ir(((u=o.onFinish)===null||u===void 0?void 0:u.call(o,{file:f}))||f),d(f)},onError(){var u;let f=Object.assign({},t,{status:"error",percentage:c});f=ir(((u=o.onError)===null||u===void 0?void 0:u.call(o,{file:f}))||f),d(f)}})}function V0(e,o,t){const r=W0(e,o,t);t.onabort=r.handleXHRAbort,t.onerror=r.handleXHRError,t.onload=r.handleXHRLoad,t.upload&&(t.upload.onprogress=r.handleXHRProgress)}function gs(e,o){return typeof e=="function"?e({file:o}):e||{}}function U0(e,o,t){const r=gs(o,t);r&&Object.keys(r).forEach(n=>{e.setRequestHeader(n,r[n])})}function K0(e,o,t){const r=gs(o,t);r&&Object.keys(r).forEach(n=>{e.append(n,r[n])})}function G0(e,o,t,{method:r,action:n,withCredentials:l,responseType:a,headers:s,data:d}){const c=new XMLHttpRequest;c.responseType=a,e.xhrMap.set(t.id,c),c.withCredentials=l;const u=new FormData;if(K0(u,d,t),u.append(o,t.file),V0(e,t,c),n!==void 0){c.open(r.toUpperCase(),n),U0(c,s,t),c.send(u);const f=Object.assign({},t,{status:"uploading"});e.doChange(f)}}const q0=Object.assign(Object.assign({},re.props),{name:{type:String,default:"file"},accept:String,action:String,customRequest:Function,directory:Boolean,directoryDnd:{type:Boolean,default:void 0},method:{type:String,default:"POST"},multiple:Boolean,showFileList:{type:Boolean,default:!0},data:[Object,Function],headers:[Object,Function],withCredentials:Boolean,responseType:{type:String,default:""},disabled:{type:Boolean,default:void 0},onChange:Function,onRemove:Function,onFinish:Function,onError:Function,onBeforeUpload:Function,isErrorState:Function,onDownload:Function,defaultUpload:{type:Boolean,default:!0},fileList:Array,"onUpdate:fileList":[Function,Array],onUpdateFileList:[Function,Array],fileListStyle:[String,Object],defaultFileList:{type:Array,default:()=>[]},showCancelButton:{type:Boolean,default:!0},showRemoveButton:{type:Boolean,default:!0},showDownloadButton:Boolean,showRetryButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},listType:{type:String,default:"text"},onPreview:Function,shouldUseThumbnailUrl:{type:Function,default:e=>I0?ps(e):!1},createThumbnailUrl:Function,abstract:Boolean,max:Number,showTrigger:{type:Boolean,default:!0},imageGroupProps:Object,inputProps:Object,triggerStyle:[String,Object],renderIcon:Object}),J1=q({name:"Upload",props:q0,setup(e){e.abstract&&e.listType==="image-card"&&Eo("upload","when the list-type is image-card, abstract is not supported.");const{mergedClsPrefixRef:o,inlineThemeDisabled:t}=ke(e),r=re("Upload","-upload",j0,Zm,e,o),n=tt(e),l=R(()=>{const{max:P}=e;return P!==void 0?v.value.length>=P:!1}),a=D(e.defaultFileList),s=ie(e,"fileList"),d=D(null),c={value:!1},u=D(!1),f=new Map,p=so(s,a),v=R(()=>p.value.map(ir));function h(){var P;(P=d.value)===null||P===void 0||P.click()}function m(P){const z=P.target;x(z.files?Array.from(z.files).map(L=>({file:L,entry:null,source:"input"})):null,P),z.value=""}function b(P){const{"onUpdate:fileList":z,onUpdateFileList:L}=e;z&&ae(z,P),L&&ae(L,P),a.value=P}const C=R(()=>e.multiple||e.directory);function x(P,z){if(!P||P.length===0)return;const{onBeforeUpload:L}=e;P=C.value?P:[P[0]];const{max:M,accept:j}=e;P=P.filter(({file:U,source:_})=>_==="dnd"&&(j!=null&&j.trim())?O0(U.name,U.type,j):!0),M&&(P=P.slice(0,M-v.value.length));const E=nt();Promise.all(P.map(({file:U,entry:_})=>Li(this,void 0,void 0,function*(){var V;const te={id:nt(),batchId:E,name:U.name,status:"pending",percentage:0,file:U,url:null,type:U.type,thumbnailUrl:null,fullPath:(V=_==null?void 0:_.fullPath)!==null&&V!==void 0?V:`/${U.webkitRelativePath||U.name}`};return!L||(yield L({file:te,fileList:v.value}))!==!1?te:null}))).then(U=>Li(this,void 0,void 0,function*(){let _=Promise.resolve();return U.forEach(V=>{_=_.then(io).then(()=>{V&&B(V,z,{append:!0})})}),yield _})).then(()=>{e.defaultUpload&&I()})}function I(P){const{method:z,action:L,withCredentials:M,headers:j,data:E,name:U}=e,_=P!==void 0?v.value.filter(te=>te.id===P):v.value,V=P!==void 0;_.forEach(te=>{const{status:N}=te;(N==="pending"||N==="error"&&V)&&(e.customRequest?N0({inst:{doChange:B,xhrMap:f,onFinish:e.onFinish,onError:e.onError},file:te,action:L,withCredentials:M,headers:j,data:E,customRequest:e.customRequest}):G0({doChange:B,xhrMap:f,onFinish:e.onFinish,onError:e.onError,isErrorState:e.isErrorState},U,te,{method:z,action:L,withCredentials:M,responseType:e.responseType,headers:j,data:E}))})}const B=(P,z,L={append:!1,remove:!1})=>{const{append:M,remove:j}=L,E=Array.from(v.value),U=E.findIndex(_=>_.id===P.id);if(M||j||~U){M?E.push(P):j?E.splice(U,1):E.splice(U,1,P);const{onChange:_}=e;_&&_({file:P,fileList:E,event:z}),b(E)}};function $(P){var z;if(P.thumbnailUrl)return P.thumbnailUrl;const{createThumbnailUrl:L}=e;return L?(z=L(P.file,P))!==null&&z!==void 0?z:P.url||"":P.url?P.url:P.file?k0(P.file):""}const T=R(()=>{const{common:{cubicBezierEaseInOut:P},self:{draggerColor:z,draggerBorder:L,draggerBorderHover:M,itemColorHover:j,itemColorHoverError:E,itemTextColorError:U,itemTextColorSuccess:_,itemTextColor:V,itemIconColor:te,itemDisabledOpacity:N,lineHeight:G,borderRadius:Ce,fontSize:X,itemBorderImageCardError:pe,itemBorderImageCard:fe}}=r.value;return{"--n-bezier":P,"--n-border-radius":Ce,"--n-dragger-border":L,"--n-dragger-border-hover":M,"--n-dragger-color":z,"--n-font-size":X,"--n-item-color-hover":j,"--n-item-color-hover-error":E,"--n-item-disabled-opacity":N,"--n-item-icon-color":te,"--n-item-text-color":V,"--n-item-text-color-error":U,"--n-item-text-color-success":_,"--n-line-height":G,"--n-item-border-image-card-error":pe,"--n-item-border-image-card":fe}}),S=t?Ae("upload",void 0,T,e):void 0;Oe(Ut,{mergedClsPrefixRef:o,mergedThemeRef:r,showCancelButtonRef:ie(e,"showCancelButton"),showDownloadButtonRef:ie(e,"showDownloadButton"),showRemoveButtonRef:ie(e,"showRemoveButton"),showRetryButtonRef:ie(e,"showRetryButton"),onRemoveRef:ie(e,"onRemove"),onDownloadRef:ie(e,"onDownload"),mergedFileListRef:v,triggerStyleRef:ie(e,"triggerStyle"),shouldUseThumbnailUrlRef:ie(e,"shouldUseThumbnailUrl"),renderIconRef:ie(e,"renderIcon"),xhrMap:f,submit:I,doChange:B,showPreviewButtonRef:ie(e,"showPreviewButton"),onPreviewRef:ie(e,"onPreview"),getFileThumbnailUrlResolver:$,listTypeRef:ie(e,"listType"),dragOverRef:u,openOpenFileDialog:h,draggerInsideRef:c,handleFileAddition:x,mergedDisabledRef:n.mergedDisabledRef,maxReachedRef:l,fileListStyleRef:ie(e,"fileListStyle"),abstractRef:ie(e,"abstract"),acceptRef:ie(e,"accept"),cssVarsRef:t?void 0:T,themeClassRef:S==null?void 0:S.themeClass,onRender:S==null?void 0:S.onRender,showTriggerRef:ie(e,"showTrigger"),imageGroupPropsRef:ie(e,"imageGroupProps"),mergedDirectoryDndRef:R(()=>{var P;return(P=e.directoryDnd)!==null&&P!==void 0?P:e.directory})});const O={clear:()=>{a.value=[]},submit:I,openOpenFileDialog:h};return Object.assign({mergedClsPrefix:o,draggerInsideRef:c,inputElRef:d,mergedTheme:r,dragOver:u,mergedMultiple:C,cssVars:t?void 0:T,themeClass:S==null?void 0:S.themeClass,onRender:S==null?void 0:S.onRender,handleFileInputChange:m},O)},render(){var e,o;const{draggerInsideRef:t,mergedClsPrefix:r,$slots:n,directory:l,onRender:a}=this;if(n.default&&!this.abstract){const d=n.default()[0];!((e=d==null?void 0:d.type)===null||e===void 0)&&e[us]&&(t.value=!0)}const s=i("input",Object.assign({},this.inputProps,{ref:"inputElRef",type:"file",class:`${r}-upload-file-input`,accept:this.accept,multiple:this.mergedMultiple,onChange:this.handleFileInputChange,webkitdirectory:l||void 0,directory:l||void 0}));return this.abstract?i(ao,null,(o=n.default)===null||o===void 0?void 0:o.call(n),i(Wi,{to:"body"},s)):(a==null||a(),i("div",{class:[`${r}-upload`,t.value&&`${r}-upload--dragger-inside`,this.dragOver&&`${r}-upload--drag-over`,this.themeClass],style:this.cssVars},s,this.showTrigger&&this.listType!=="image-card"&&i(vs,null,n),this.showFileList&&i(E0,null,n)))}}),Y0=()=>({}),X0={name:"Equation",common:ue,self:Y0},Z0=X0,ex={name:"dark",common:ue,Alert:lu,Anchor:mu,AutoComplete:Ou,Avatar:Ll,AvatarGroup:Nu,BackTop:Ku,Badge:qu,Breadcrumb:rf,Button:$o,ButtonGroup:pg,Calendar:gf,Card:Vl,Carousel:If,Cascader:_f,Checkbox:Nt,Code:Ul,Collapse:Af,CollapseTransition:Wf,ColorPicker:xf,DataTable:Ph,DatePicker:lp,Descriptions:cp,Dialog:va,Divider:Fp,Drawer:Hp,Dropdown:$n,DynamicInput:tv,DynamicTags:mv,Element:xv,Empty:wt,Ellipsis:ea,Equation:Z0,Form:Sv,GradientText:Uv,Icon:Eh,IconWrapper:og,Image:nb,Input:Ho,InputNumber:gg,LegacyTransfer:Cb,Layout:yg,List:$g,LoadingBar:Pg,Log:Ig,Menu:Ag,Mention:Tg,Message:fg,Modal:Cp,Notification:ag,PageHeader:Wg,Pagination:Ql,Popconfirm:Gg,Popover:St,Popselect:Kl,Progress:Ea,Radio:ta,Rate:Zg,Result:tm,Row:rb,Scrollbar:zo,Select:Xl,Skeleton:l0,Slider:im,Space:$a,Spin:dm,Statistic:hm,Steps:mm,Switch:xm,Table:Rm,Tabs:Tm,Tag:Sl,Thing:_m,TimePicker:fa,Timeline:Hm,Tooltip:Lr,Transfer:jm,Tree:Ga,TreeSelect:Um,Typography:Ym,Upload:Jm,Watermark:ob};export{Ov as $,_1 as A,J1 as B,C1 as C,y1 as D,P1 as E,D1 as F,b1 as G,L1 as H,wc as I,W1 as J,x1 as K,h1 as L,X1 as M,Z1 as N,Yr as O,Jh as P,z1 as Q,O1 as R,f1 as S,S1 as T,V1 as U,B1 as V,M1 as W,cb as X,m1 as Y,K1 as Z,Q1 as _,k1 as a,Ev as a0,Hv as a1,N1 as a2,R1 as a3,$1 as a4,G1 as a5,mt as b,T1 as c,I1 as d,Po as e,q1 as f,Y1 as g,Rf as h,$p as i,Nh as j,U1 as k,v1 as l,fb as m,H1 as n,p1 as o,g1 as p,ex as q,w1 as r,E1 as s,F1 as t,j1 as u,A1 as v,vs as w,Qb as x,Rn as y,E0 as z}; diff --git a/web/dist/assets/paopao-video-player-b4739fc7.js b/web/dist/assets/paopao-video-player-d47e9bf6.js similarity index 99% rename from web/dist/assets/paopao-video-player-b4739fc7.js rename to web/dist/assets/paopao-video-player-d47e9bf6.js index 50958391..63f5f449 100644 --- a/web/dist/assets/paopao-video-player-b4739fc7.js +++ b/web/dist/assets/paopao-video-player-d47e9bf6.js @@ -1,4 +1,4 @@ -import{d as h,o as s,c as l,a as t,K as p,L as m,z as d,v as y,I as u,M as f,N as c,O as g,P,Q as B}from"./@vue-b8d06722.js";var T="data:image/svg+xml,%3c%3fxml version='1.0' standalone='no'%3f%3e%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg t='1687171769163' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='3910' xmlns:xlink='http://www.w3.org/1999/xlink' width='500' height='500'%3e%3cpath d='M327.68 184.32a81.92 81.92 0 0 1 81.92 81.92v491.52a81.92 81.92 0 1 1-163.84 0V266.24a81.92 81.92 0 0 1 81.92-81.92z m368.64 0a81.92 81.92 0 0 1 81.92 81.92v491.52a81.92 81.92 0 1 1-163.84 0V266.24a81.92 81.92 0 0 1 81.92-81.92z' p-id='3911' fill='white'%3e%3c/path%3e%3c/svg%3e",w=T,V="data:image/svg+xml,%3c%3fxml version='1.0' standalone='no'%3f%3e%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg t='1687171715945' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='2813' width='500' height='500' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cpath d='M817.088 484.96l-512-323.744C295.232 154.976 282.752 154.592 272.576 160.224 262.336 165.856 256 176.608 256 188.256l0 647.328c0 11.648 6.336 22.4 16.576 28.032 4.8 2.656 10.112 3.968 15.424 3.968 5.952 0 11.904-1.664 17.088-4.928l512-323.616C826.368 533.184 832 522.976 832 512 832 501.024 826.368 490.816 817.088 484.96z' fill='white' p-id='2814'%3e%3c/path%3e%3c/svg%3e",b=V,M="data:image/svg+xml,%3c%3fxml version='1.0' standalone='no'%3f%3e%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg t='1687172017162' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='7048' xmlns:xlink='http://www.w3.org/1999/xlink' width='500' height='500'%3e%3cpath d='M462.06 142.1L284.12 320H80c-26.52 0-48 21.48-48 48v288c0 26.5 21.48 48 48 48h204.12l177.94 177.9c30.06 30.06 81.94 8.94 81.94-33.94V176.04c0-42.92-51.92-63.96-81.94-33.94zM992 512c0-127.06-64.12-243.88-171.54-312.48-22.38-14.28-52.06-7.64-66.24 14.92s-7.56 52.42 14.82 66.72C848.54 331.94 896 418.22 896 512s-47.46 180.06-126.96 230.84c-22.38 14.28-29 44.14-14.82 66.72 13.02 20.72 42.24 30.28 66.24 14.92C927.88 755.88 992 639.06 992 512z m-283.54-153.74c-23.16-12.66-52.38-4.32-65.22 18.9-12.78 23.22-4.32 52.4 18.9 65.22C687.96 456.56 704 483.26 704 512c0 28.76-16.04 55.44-41.84 69.62-23.22 12.82-31.68 42-18.9 65.22 12.86 23.32 42.1 31.6 65.22 18.9 56.46-31.1 91.54-90 91.54-153.76s-35.08-122.64-91.56-153.72z' p-id='7049' fill='white'%3e%3c/path%3e%3c/svg%3e",k=M,j="data:image/svg+xml,%3c%3fxml version='1.0' standalone='no'%3f%3e%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg t='1687171887277' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='5997' xmlns:xlink='http://www.w3.org/1999/xlink' width='500' height='500'%3e%3cpath d='M810.666667 938.666667h-128c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667h128c25.6 0 42.666667-17.066667 42.666666-42.666666v-128c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667v128c0 72.533333-55.466667 128-128 128zM341.333333 938.666667H213.333333c-72.533333 0-128-55.466667-128-128v-128c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667v128c0 25.6 17.066667 42.666667 42.666666 42.666666h128c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667zM896 384c-25.6 0-42.666667-17.066667-42.666667-42.666667V213.333333c0-25.6-17.066667-42.666667-42.666666-42.666666h-128c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667h128c72.533333 0 128 55.466667 128 128v128c0 25.6-17.066667 42.666667-42.666667 42.666667zM128 384c-25.6 0-42.666667-17.066667-42.666667-42.666667V213.333333c0-72.533333 55.466667-128 128-128h128c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667H213.333333c-25.6 0-42.666667 17.066667-42.666666 42.666666v128c0 25.6-17.066667 42.666667-42.666667 42.666667z' p-id='5998' fill='white'%3e%3c/path%3e%3c/svg%3e",$=j,C=h({name:"BasicTheme",props:{uuid:{type:String,required:!0},src:{type:String,required:!0},autoplay:{type:Boolean,required:!0},loop:{type:Boolean,required:!0},controls:{type:Boolean,required:!0},hoverable:{type:Boolean,required:!0},mask:{type:Boolean,required:!0},colors:{type:[String,Array],required:!0},time:{type:Object,required:!0},playing:{type:Boolean,default:!1},duration:{type:[String,Number],required:!0}},data(){return{hovered:!1,volume:!1,amount:1,Pause:w,Play:b,Volume:k,Maximize:$}},computed:{colorFrom(){var e;return typeof this.colors=="string"?this.colors?this.colors:"#fbbf24":(e=this.colors)!=null&&e[0]?this.colors[0]:"#fbbf24"},colorTo(){var e;return typeof this.colors=="string"?this.colors?this.colors:"#fbbf24":(e=this.colors)!=null&&e[1]?this.colors[1]:"#ec4899"}},mounted(){this.$emit("setPlayer",this.$refs[this.uuid])},methods:{setVolume(){this.$refs[this.uuid].volume=this.amount},stopVolume(){return this.amount>0?this.amount=0:this.amount=1}}});const I={class:"relative"},D=["loop","autoplay","muted"],F=["src"],q={class:"flex items-center justify-start w-full"},E={class:"font-sans text-white text-xs w-24"},N={class:"mr-3 ml-2"},A=["src"],R=["src"],U={class:"relative"},G={class:"px-3 py-2 rounded-lg flex items-center transform translate-x-2",style:{"background-color":"rgba(0, 0, 0, .8)"}},O=["src"],L=["src"],Y=["src"];function H(e,n,a,r,i,v){return s(),l("div",{class:"shadow-xl rounded-xl overflow-hidden relative",onMouseenter:n[14]||(n[14]=o=>e.hovered=!0),onMouseleave:n[15]||(n[15]=o=>e.hovered=!1),onKeydown:n[16]||(n[16]=g(o=>e.$emit("play"),["left"]))},[t("div",I,[t("video",{ref:e.uuid,class:"w-full",loop:e.loop,autoplay:e.autoplay,muted:e.autoplay,onTimeupdate:n[0]||(n[0]=o=>e.$emit("timeupdate",o.target)),onPause:n[1]||(n[1]=o=>e.$emit("isPlaying",!1)),onPlay:n[2]||(n[2]=o=>e.$emit("isPlaying",!0)),onClick:n[3]||(n[3]=o=>e.$emit("play"))},[t("source",{src:e.src,type:"video/mp4"},null,8,F)],40,D),e.controls?(s(),l("div",{key:0,class:p([{"opacity-0 translate-y-full":!e.hoverable&&e.hovered,"opacity-0 translate-y-full":e.hoverable&&!e.hovered},"transition duration-300 transform absolute w-full bottom-0 left-0 flex items-center justify-between overlay px-5 pt-3 pb-5"])},[t("div",q,[t("p",E,m(e.time.display)+"/"+m(e.duration),1),t("div",N,[d(t("img",{src:e.Pause,alt:"Icon pause video",class:"w-5 cursor-pointer",onClick:n[4]||(n[4]=o=>e.$emit("play"))},null,8,A),[[y,e.playing]]),d(t("img",{src:e.Play,alt:"Icon play video",class:"w-5 cursor-pointer",onClick:n[5]||(n[5]=o=>e.$emit("play"))},null,8,R),[[y,!e.playing]])]),t("div",{class:"w-full h-1 bg-white bg-opacity-60 rounded-sm cursor-pointer",onClick:n[6]||(n[6]=o=>e.$emit("position",o))},[t("div",{class:"relative h-full pointer-events-none",style:u(`width: ${e.time.progress}%; transition: width .2s ease-in-out;`)},[t("div",{class:"w-full rounded-sm h-full gradient-variable bg-gradient-to-r pointer-events-none absolute top-0 left-0",style:u(`--tw-gradient-from: ${e.colorFrom};--tw-gradient-to: ${e.colorTo};transition: width .2s ease-in-out`)},null,4),t("div",{class:"w-full rounded-sm filter blur-sm h-full gradient-variable bg-gradient-to-r pointer-events-none absolute top-0 left-0",style:u(`--tw-gradient-from: ${e.colorFrom};--tw-gradient-to: ${e.colorTo};transition: width .2s ease-in-out`)},null,4)],4)])]),t("div",{class:"ml-5 flex items-center justify-end",onMouseleave:n[12]||(n[12]=o=>e.volume=!1)},[t("div",U,[t("div",{class:p(`w-128 origin-left translate-x-2 -rotate-90 w-128 transition duration-200 absolute transform top-0 py-2 ${e.volume?"-translate-y-4":"opacity-0 -translate-y-1 pointer-events-none"}`)},[t("div",G,[d(t("input",{"onUpdate:modelValue":n[7]||(n[7]=o=>e.amount=o),type:"range",step:"0.05",min:"0",max:"1",class:"rounded-lg overflow-hidden appearance-none bg-white bg-opacity-30 h-1 w-128 vertical-range",onInput:n[8]||(n[8]=function(){return e.setVolume&&e.setVolume(...arguments)})},null,544),[[f,e.amount]])])],2),t("img",{src:e.Volume,alt:"High volume video",class:"w-5 cursor-pointer relative",style:{"z-index":"2"},onClick:n[9]||(n[9]=function(){return e.stopVolume&&e.stopVolume(...arguments)}),onMouseenter:n[10]||(n[10]=o=>e.volume=!0)},null,40,O)]),t("img",{src:e.Maximize,alt:"Fullscreen",class:"w-3 ml-4 cursor-pointer",onClick:n[11]||(n[11]=o=>e.$emit("fullScreen"))},null,8,L)],32)],2)):c("",!0),!e.autoplay&&e.mask&&e.time.current===0?(s(),l("div",{key:1,class:p(`transition transform duration-300 absolute top-0 left-0 w-full h-full bg-black bg-opacity-50 backdrop-filter z-10 flex items-center justify-center ${e.playing?"opacity-0 pointer-events-none":""}`)},[t("div",{class:"w-20 h-20 rounded-full bg-white bg-opacity-20 transition duration-200 hover:bg-opacity-40 flex items-center justify-center cursor-pointer",onClick:n[13]||(n[13]=o=>e.$emit("play"))},[t("img",{src:e.Play,alt:"Icon play video",class:"transform translate-x-0.5 w-12"},null,8,Y)])],2)):c("",!0)])],32)}C.render=H;var S=h({name:"BasicTheme",props:{uuid:{type:String,required:!0},src:{type:String,required:!0},autoplay:{type:Boolean,required:!0},loop:{type:Boolean,required:!0},controls:{type:Boolean,required:!0},hoverable:{type:Boolean,required:!0},mask:{type:Boolean,required:!0},colors:{type:[String,Array],required:!0},time:{type:Object,required:!0},playing:{type:Boolean,default:!1},duration:{type:[String,Number],required:!0}},data(){return{hovered:!1,volume:!1,amount:1,Pause:w,Play:b,Volume:k,Maximize:$}},computed:{color(){var e;return typeof this.colors=="string"?this.colors?this.colors:"#8B5CF6":(e=this.colors)!=null&&e[0]?this.colors[0]:"#8B5CF6"}},mounted(){this.$emit("setPlayer",this.$refs[this.uuid])},methods:{setVolume(){this.$refs[this.uuid].volume=this.amount},stopVolume(){return this.amount>0?this.amount=0:this.amount=1}}});const W={class:"relative"},K=["loop","autoplay","muted"],X=["src"],Q={class:"mr-5"},J=["src"],Z=["src"],_={class:"relative mr-6"},ee={class:"px-3 py-3 rounded-xl flex items-center transform translate-x-9 bg-black bg-opacity-30"},ne=["src"],te=["src"],oe=["src"];function re(e,n,a,r,i,v){return s(),l("div",{class:"shadow-xl rounded-3xl overflow-hidden relative",onMouseenter:n[13]||(n[13]=o=>e.hovered=!0),onMouseleave:n[14]||(n[14]=o=>e.hovered=!1),onKeydown:n[15]||(n[15]=g(o=>e.$emit("play"),["left"]))},[t("div",W,[t("video",{ref:e.uuid,class:"w-full",loop:e.loop,autoplay:e.autoplay,muted:e.autoplay,onTimeupdate:n[0]||(n[0]=o=>e.$emit("timeupdate",o.target)),onPause:n[1]||(n[1]=o=>e.$emit("isPlaying",!1)),onPlay:n[2]||(n[2]=o=>e.$emit("isPlaying",!0)),onClick:n[3]||(n[3]=o=>e.$emit("play"))},[t("source",{src:e.src,type:"video/mp4"},null,8,X)],40,K),e.controls?(s(),l("div",{key:0,class:p([{"opacity-0 translate-y-full":!e.hoverable&&e.hovered,"opacity-0 translate-y-full":e.hoverable&&!e.hovered},"absolute px-5 pb-5 bottom-0 left-0 w-full transition duration-300 transform"])},[t("div",{class:"w-full bg-black bg-opacity-30 px-5 py-4 rounded-xl flex items-center justify-between",onMouseleave:n[11]||(n[11]=o=>e.volume=!1)},[t("div",{class:"font-sans py-1 px-2 text-white rounded-md text-xs mr-5 whitespace-nowrap font-medium w-32 text-center",style:u(`font-size: 11px; background-color: ${e.color}`)},m(e.time.display)+" / "+m(e.duration),5),t("div",Q,[d(t("img",{src:e.Pause,alt:"Icon pause video",class:"w-4 cursor-pointer filter-white transition duration-300",onClick:n[4]||(n[4]=o=>e.$emit("play"))},null,8,J),[[y,e.playing]]),d(t("img",{src:e.Play,alt:"Icon play video",class:"w-4 cursor-pointer filter-white transition duration-300",onClick:n[5]||(n[5]=o=>e.$emit("play"))},null,8,Z),[[y,!e.playing]])]),t("div",{class:"w-full h-1 bg-white bg-opacity-40 rounded-sm cursor-pointer mr-6",onClick:n[6]||(n[6]=o=>e.$emit("position",o))},[t("div",{class:"w-full rounded-sm h-full bg-white pointer-events-none",style:u(`width: ${e.time.progress}%; transition: width .2s ease-in-out;`)},null,4)]),t("div",_,[t("div",{class:p(`w-128 origin-left translate-x-2 -rotate-90 w-128 transition duration-200 absolute transform top-0 py-2 ${e.volume?"-translate-y-4":"opacity-0 -translate-y-1 pointer-events-none"}`)},[t("div",ee,[d(t("input",{"onUpdate:modelValue":n[7]||(n[7]=o=>e.amount=o),type:"range",step:"0.05",min:"0",max:"1",class:"rounded-lg overflow-hidden appearance-none bg-white bg-opacity-30 h-1.5 w-128 vertical-range"},null,512),[[f,e.amount]])])],2),t("img",{src:e.Volume,alt:"High volume video",class:"w-5 cursor-pointer filter-white transition duration-300 relative",style:{"z-index":"2"},onClick:n[8]||(n[8]=function(){return e.stopVolume&&e.stopVolume(...arguments)}),onMouseenter:n[9]||(n[9]=o=>e.volume=!0)},null,40,ne)]),t("img",{src:e.Maximize,alt:"Fullscreen",class:"w-4 cursor-pointer filter-white transition duration-300",onClick:n[10]||(n[10]=o=>e.$emit("fullScreen"))},null,8,te)],32)],2)):c("",!0),!e.autoplay&&e.mask&&e.time.current===0?(s(),l("div",{key:1,class:p(`transition transform duration-300 absolute top-0 left-0 w-full h-full bg-black bg-opacity-50 backdrop-filter z-10 flex items-center justify-center ${e.playing?"opacity-0 pointer-events-none":""}`)},[t("div",{class:"w-20 h-20 rounded-full bg-white bg-opacity-20 transition duration-200 hover:bg-opacity-40 flex items-center justify-center cursor-pointer",onClick:n[12]||(n[12]=o=>e.$emit("play"))},[t("img",{src:e.Play,alt:"Icon play video",class:"transform translate-x-0.5 w-12"},null,8,oe)])],2)):c("",!0)])],32)}S.render=re;var z=h({name:"PaoPaoVideoPlayer",components:{basic:S,gradient:C},props:{src:{type:String,required:!0},autoplay:{type:Boolean,default:!1},loop:{type:Boolean,default:!1},controls:{type:Boolean,default:!0},mask:{type:Boolean,default:!0},colors:{type:[String,Array],default(){return["#8B5CF6","#ec4899"]}},hoverable:{type:Boolean,default:!1},theme:{type:String,default:"basic"}},data(){return{uuid:Math.random().toString(36).substr(2,18),player:null,duration:0,playing:!1,time:{progress:0,display:0,current:0}}},watch:{"time.current"(e){this.time.display=this.format(Number(e)),this.time.progress=e*100/this.player.duration}},methods:{isPlaying(e){this.playing=e},play(){return this.playing?this.player.pause():this.player.play()},setPlayer(e){this.player=e,this.player.addEventListener("loadeddata",()=>{this.player.readyState>=3&&(this.duration=this.format(Number(this.player.duration)),this.time.display=this.format(0))})},stop(){this.player.pause(),this.player.currentTime=0},fullScreen(){this.player.webkitEnterFullscreen()},position(e){this.player.pause();const n=e.target.getBoundingClientRect(),r=(e.clientX-n.left)*100/e.target.offsetWidth;this.player.currentTime=r*this.player.duration/100,this.player.play()},format(e){const n=Math.floor(e/3600),a=Math.floor(e%3600/60),r=Math.round(e%60);return[n,a>9?a:n?"0"+a:a||"00",r>9?r:"0"+r].filter(Boolean).join(":")}}});const ae={class:"paopao-video-player"};function ie(e,n,a,r,i,v){return s(),l("div",ae,[(s(),P(B(e.theme),{uuid:e.uuid,src:e.src,autoplay:e.autoplay,loop:e.loop,controls:e.controls,mask:e.mask,colors:e.colors,time:e.time,playing:e.playing,duration:e.duration,hoverable:e.hoverable,onPlay:e.play,onStop:e.stop,onTimeupdate:n[0]||(n[0]=o=>{let{currentTime:x}=o;return e.time.current=x}),onPosition:e.position,onFullScreen:e.fullScreen,onSetPlayer:e.setPlayer,onIsPlaying:e.isPlaying},null,40,["uuid","src","autoplay","loop","controls","mask","colors","time","playing","duration","hoverable","onPlay","onStop","onPosition","onFullScreen","onSetPlayer","onIsPlaying"]))])}function se(e,n){n===void 0&&(n={});var a=n.insertAt;if(!(!e||typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",a==="top"&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var le=`/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com */ +import{d as h,o as s,c as l,a as t,K as p,L as m,z as d,v as y,I as u,M as f,N as c,O as g,P,Q as B}from"./@vue-d002002f.js";var T="data:image/svg+xml,%3c%3fxml version='1.0' standalone='no'%3f%3e%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg t='1687171769163' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='3910' xmlns:xlink='http://www.w3.org/1999/xlink' width='500' height='500'%3e%3cpath d='M327.68 184.32a81.92 81.92 0 0 1 81.92 81.92v491.52a81.92 81.92 0 1 1-163.84 0V266.24a81.92 81.92 0 0 1 81.92-81.92z m368.64 0a81.92 81.92 0 0 1 81.92 81.92v491.52a81.92 81.92 0 1 1-163.84 0V266.24a81.92 81.92 0 0 1 81.92-81.92z' p-id='3911' fill='white'%3e%3c/path%3e%3c/svg%3e",w=T,V="data:image/svg+xml,%3c%3fxml version='1.0' standalone='no'%3f%3e%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg t='1687171715945' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='2813' width='500' height='500' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cpath d='M817.088 484.96l-512-323.744C295.232 154.976 282.752 154.592 272.576 160.224 262.336 165.856 256 176.608 256 188.256l0 647.328c0 11.648 6.336 22.4 16.576 28.032 4.8 2.656 10.112 3.968 15.424 3.968 5.952 0 11.904-1.664 17.088-4.928l512-323.616C826.368 533.184 832 522.976 832 512 832 501.024 826.368 490.816 817.088 484.96z' fill='white' p-id='2814'%3e%3c/path%3e%3c/svg%3e",b=V,M="data:image/svg+xml,%3c%3fxml version='1.0' standalone='no'%3f%3e%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg t='1687172017162' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='7048' xmlns:xlink='http://www.w3.org/1999/xlink' width='500' height='500'%3e%3cpath d='M462.06 142.1L284.12 320H80c-26.52 0-48 21.48-48 48v288c0 26.5 21.48 48 48 48h204.12l177.94 177.9c30.06 30.06 81.94 8.94 81.94-33.94V176.04c0-42.92-51.92-63.96-81.94-33.94zM992 512c0-127.06-64.12-243.88-171.54-312.48-22.38-14.28-52.06-7.64-66.24 14.92s-7.56 52.42 14.82 66.72C848.54 331.94 896 418.22 896 512s-47.46 180.06-126.96 230.84c-22.38 14.28-29 44.14-14.82 66.72 13.02 20.72 42.24 30.28 66.24 14.92C927.88 755.88 992 639.06 992 512z m-283.54-153.74c-23.16-12.66-52.38-4.32-65.22 18.9-12.78 23.22-4.32 52.4 18.9 65.22C687.96 456.56 704 483.26 704 512c0 28.76-16.04 55.44-41.84 69.62-23.22 12.82-31.68 42-18.9 65.22 12.86 23.32 42.1 31.6 65.22 18.9 56.46-31.1 91.54-90 91.54-153.76s-35.08-122.64-91.56-153.72z' p-id='7049' fill='white'%3e%3c/path%3e%3c/svg%3e",k=M,j="data:image/svg+xml,%3c%3fxml version='1.0' standalone='no'%3f%3e%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg t='1687171887277' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='5997' xmlns:xlink='http://www.w3.org/1999/xlink' width='500' height='500'%3e%3cpath d='M810.666667 938.666667h-128c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667h128c25.6 0 42.666667-17.066667 42.666666-42.666666v-128c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667v128c0 72.533333-55.466667 128-128 128zM341.333333 938.666667H213.333333c-72.533333 0-128-55.466667-128-128v-128c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667v128c0 25.6 17.066667 42.666667 42.666666 42.666666h128c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667zM896 384c-25.6 0-42.666667-17.066667-42.666667-42.666667V213.333333c0-25.6-17.066667-42.666667-42.666666-42.666666h-128c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667h128c72.533333 0 128 55.466667 128 128v128c0 25.6-17.066667 42.666667-42.666667 42.666667zM128 384c-25.6 0-42.666667-17.066667-42.666667-42.666667V213.333333c0-72.533333 55.466667-128 128-128h128c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667H213.333333c-25.6 0-42.666667 17.066667-42.666666 42.666666v128c0 25.6-17.066667 42.666667-42.666667 42.666667z' p-id='5998' fill='white'%3e%3c/path%3e%3c/svg%3e",$=j,C=h({name:"BasicTheme",props:{uuid:{type:String,required:!0},src:{type:String,required:!0},autoplay:{type:Boolean,required:!0},loop:{type:Boolean,required:!0},controls:{type:Boolean,required:!0},hoverable:{type:Boolean,required:!0},mask:{type:Boolean,required:!0},colors:{type:[String,Array],required:!0},time:{type:Object,required:!0},playing:{type:Boolean,default:!1},duration:{type:[String,Number],required:!0}},data(){return{hovered:!1,volume:!1,amount:1,Pause:w,Play:b,Volume:k,Maximize:$}},computed:{colorFrom(){var e;return typeof this.colors=="string"?this.colors?this.colors:"#fbbf24":(e=this.colors)!=null&&e[0]?this.colors[0]:"#fbbf24"},colorTo(){var e;return typeof this.colors=="string"?this.colors?this.colors:"#fbbf24":(e=this.colors)!=null&&e[1]?this.colors[1]:"#ec4899"}},mounted(){this.$emit("setPlayer",this.$refs[this.uuid])},methods:{setVolume(){this.$refs[this.uuid].volume=this.amount},stopVolume(){return this.amount>0?this.amount=0:this.amount=1}}});const I={class:"relative"},D=["loop","autoplay","muted"],F=["src"],q={class:"flex items-center justify-start w-full"},E={class:"font-sans text-white text-xs w-24"},N={class:"mr-3 ml-2"},A=["src"],R=["src"],U={class:"relative"},G={class:"px-3 py-2 rounded-lg flex items-center transform translate-x-2",style:{"background-color":"rgba(0, 0, 0, .8)"}},O=["src"],L=["src"],Y=["src"];function H(e,n,a,r,i,v){return s(),l("div",{class:"shadow-xl rounded-xl overflow-hidden relative",onMouseenter:n[14]||(n[14]=o=>e.hovered=!0),onMouseleave:n[15]||(n[15]=o=>e.hovered=!1),onKeydown:n[16]||(n[16]=g(o=>e.$emit("play"),["left"]))},[t("div",I,[t("video",{ref:e.uuid,class:"w-full",loop:e.loop,autoplay:e.autoplay,muted:e.autoplay,onTimeupdate:n[0]||(n[0]=o=>e.$emit("timeupdate",o.target)),onPause:n[1]||(n[1]=o=>e.$emit("isPlaying",!1)),onPlay:n[2]||(n[2]=o=>e.$emit("isPlaying",!0)),onClick:n[3]||(n[3]=o=>e.$emit("play"))},[t("source",{src:e.src,type:"video/mp4"},null,8,F)],40,D),e.controls?(s(),l("div",{key:0,class:p([{"opacity-0 translate-y-full":!e.hoverable&&e.hovered,"opacity-0 translate-y-full":e.hoverable&&!e.hovered},"transition duration-300 transform absolute w-full bottom-0 left-0 flex items-center justify-between overlay px-5 pt-3 pb-5"])},[t("div",q,[t("p",E,m(e.time.display)+"/"+m(e.duration),1),t("div",N,[d(t("img",{src:e.Pause,alt:"Icon pause video",class:"w-5 cursor-pointer",onClick:n[4]||(n[4]=o=>e.$emit("play"))},null,8,A),[[y,e.playing]]),d(t("img",{src:e.Play,alt:"Icon play video",class:"w-5 cursor-pointer",onClick:n[5]||(n[5]=o=>e.$emit("play"))},null,8,R),[[y,!e.playing]])]),t("div",{class:"w-full h-1 bg-white bg-opacity-60 rounded-sm cursor-pointer",onClick:n[6]||(n[6]=o=>e.$emit("position",o))},[t("div",{class:"relative h-full pointer-events-none",style:u(`width: ${e.time.progress}%; transition: width .2s ease-in-out;`)},[t("div",{class:"w-full rounded-sm h-full gradient-variable bg-gradient-to-r pointer-events-none absolute top-0 left-0",style:u(`--tw-gradient-from: ${e.colorFrom};--tw-gradient-to: ${e.colorTo};transition: width .2s ease-in-out`)},null,4),t("div",{class:"w-full rounded-sm filter blur-sm h-full gradient-variable bg-gradient-to-r pointer-events-none absolute top-0 left-0",style:u(`--tw-gradient-from: ${e.colorFrom};--tw-gradient-to: ${e.colorTo};transition: width .2s ease-in-out`)},null,4)],4)])]),t("div",{class:"ml-5 flex items-center justify-end",onMouseleave:n[12]||(n[12]=o=>e.volume=!1)},[t("div",U,[t("div",{class:p(`w-128 origin-left translate-x-2 -rotate-90 w-128 transition duration-200 absolute transform top-0 py-2 ${e.volume?"-translate-y-4":"opacity-0 -translate-y-1 pointer-events-none"}`)},[t("div",G,[d(t("input",{"onUpdate:modelValue":n[7]||(n[7]=o=>e.amount=o),type:"range",step:"0.05",min:"0",max:"1",class:"rounded-lg overflow-hidden appearance-none bg-white bg-opacity-30 h-1 w-128 vertical-range",onInput:n[8]||(n[8]=function(){return e.setVolume&&e.setVolume(...arguments)})},null,544),[[f,e.amount]])])],2),t("img",{src:e.Volume,alt:"High volume video",class:"w-5 cursor-pointer relative",style:{"z-index":"2"},onClick:n[9]||(n[9]=function(){return e.stopVolume&&e.stopVolume(...arguments)}),onMouseenter:n[10]||(n[10]=o=>e.volume=!0)},null,40,O)]),t("img",{src:e.Maximize,alt:"Fullscreen",class:"w-3 ml-4 cursor-pointer",onClick:n[11]||(n[11]=o=>e.$emit("fullScreen"))},null,8,L)],32)],2)):c("",!0),!e.autoplay&&e.mask&&e.time.current===0?(s(),l("div",{key:1,class:p(`transition transform duration-300 absolute top-0 left-0 w-full h-full bg-black bg-opacity-50 backdrop-filter z-10 flex items-center justify-center ${e.playing?"opacity-0 pointer-events-none":""}`)},[t("div",{class:"w-20 h-20 rounded-full bg-white bg-opacity-20 transition duration-200 hover:bg-opacity-40 flex items-center justify-center cursor-pointer",onClick:n[13]||(n[13]=o=>e.$emit("play"))},[t("img",{src:e.Play,alt:"Icon play video",class:"transform translate-x-0.5 w-12"},null,8,Y)])],2)):c("",!0)])],32)}C.render=H;var S=h({name:"BasicTheme",props:{uuid:{type:String,required:!0},src:{type:String,required:!0},autoplay:{type:Boolean,required:!0},loop:{type:Boolean,required:!0},controls:{type:Boolean,required:!0},hoverable:{type:Boolean,required:!0},mask:{type:Boolean,required:!0},colors:{type:[String,Array],required:!0},time:{type:Object,required:!0},playing:{type:Boolean,default:!1},duration:{type:[String,Number],required:!0}},data(){return{hovered:!1,volume:!1,amount:1,Pause:w,Play:b,Volume:k,Maximize:$}},computed:{color(){var e;return typeof this.colors=="string"?this.colors?this.colors:"#8B5CF6":(e=this.colors)!=null&&e[0]?this.colors[0]:"#8B5CF6"}},mounted(){this.$emit("setPlayer",this.$refs[this.uuid])},methods:{setVolume(){this.$refs[this.uuid].volume=this.amount},stopVolume(){return this.amount>0?this.amount=0:this.amount=1}}});const W={class:"relative"},K=["loop","autoplay","muted"],X=["src"],Q={class:"mr-5"},J=["src"],Z=["src"],_={class:"relative mr-6"},ee={class:"px-3 py-3 rounded-xl flex items-center transform translate-x-9 bg-black bg-opacity-30"},ne=["src"],te=["src"],oe=["src"];function re(e,n,a,r,i,v){return s(),l("div",{class:"shadow-xl rounded-3xl overflow-hidden relative",onMouseenter:n[13]||(n[13]=o=>e.hovered=!0),onMouseleave:n[14]||(n[14]=o=>e.hovered=!1),onKeydown:n[15]||(n[15]=g(o=>e.$emit("play"),["left"]))},[t("div",W,[t("video",{ref:e.uuid,class:"w-full",loop:e.loop,autoplay:e.autoplay,muted:e.autoplay,onTimeupdate:n[0]||(n[0]=o=>e.$emit("timeupdate",o.target)),onPause:n[1]||(n[1]=o=>e.$emit("isPlaying",!1)),onPlay:n[2]||(n[2]=o=>e.$emit("isPlaying",!0)),onClick:n[3]||(n[3]=o=>e.$emit("play"))},[t("source",{src:e.src,type:"video/mp4"},null,8,X)],40,K),e.controls?(s(),l("div",{key:0,class:p([{"opacity-0 translate-y-full":!e.hoverable&&e.hovered,"opacity-0 translate-y-full":e.hoverable&&!e.hovered},"absolute px-5 pb-5 bottom-0 left-0 w-full transition duration-300 transform"])},[t("div",{class:"w-full bg-black bg-opacity-30 px-5 py-4 rounded-xl flex items-center justify-between",onMouseleave:n[11]||(n[11]=o=>e.volume=!1)},[t("div",{class:"font-sans py-1 px-2 text-white rounded-md text-xs mr-5 whitespace-nowrap font-medium w-32 text-center",style:u(`font-size: 11px; background-color: ${e.color}`)},m(e.time.display)+" / "+m(e.duration),5),t("div",Q,[d(t("img",{src:e.Pause,alt:"Icon pause video",class:"w-4 cursor-pointer filter-white transition duration-300",onClick:n[4]||(n[4]=o=>e.$emit("play"))},null,8,J),[[y,e.playing]]),d(t("img",{src:e.Play,alt:"Icon play video",class:"w-4 cursor-pointer filter-white transition duration-300",onClick:n[5]||(n[5]=o=>e.$emit("play"))},null,8,Z),[[y,!e.playing]])]),t("div",{class:"w-full h-1 bg-white bg-opacity-40 rounded-sm cursor-pointer mr-6",onClick:n[6]||(n[6]=o=>e.$emit("position",o))},[t("div",{class:"w-full rounded-sm h-full bg-white pointer-events-none",style:u(`width: ${e.time.progress}%; transition: width .2s ease-in-out;`)},null,4)]),t("div",_,[t("div",{class:p(`w-128 origin-left translate-x-2 -rotate-90 w-128 transition duration-200 absolute transform top-0 py-2 ${e.volume?"-translate-y-4":"opacity-0 -translate-y-1 pointer-events-none"}`)},[t("div",ee,[d(t("input",{"onUpdate:modelValue":n[7]||(n[7]=o=>e.amount=o),type:"range",step:"0.05",min:"0",max:"1",class:"rounded-lg overflow-hidden appearance-none bg-white bg-opacity-30 h-1.5 w-128 vertical-range"},null,512),[[f,e.amount]])])],2),t("img",{src:e.Volume,alt:"High volume video",class:"w-5 cursor-pointer filter-white transition duration-300 relative",style:{"z-index":"2"},onClick:n[8]||(n[8]=function(){return e.stopVolume&&e.stopVolume(...arguments)}),onMouseenter:n[9]||(n[9]=o=>e.volume=!0)},null,40,ne)]),t("img",{src:e.Maximize,alt:"Fullscreen",class:"w-4 cursor-pointer filter-white transition duration-300",onClick:n[10]||(n[10]=o=>e.$emit("fullScreen"))},null,8,te)],32)],2)):c("",!0),!e.autoplay&&e.mask&&e.time.current===0?(s(),l("div",{key:1,class:p(`transition transform duration-300 absolute top-0 left-0 w-full h-full bg-black bg-opacity-50 backdrop-filter z-10 flex items-center justify-center ${e.playing?"opacity-0 pointer-events-none":""}`)},[t("div",{class:"w-20 h-20 rounded-full bg-white bg-opacity-20 transition duration-200 hover:bg-opacity-40 flex items-center justify-center cursor-pointer",onClick:n[12]||(n[12]=o=>e.$emit("play"))},[t("img",{src:e.Play,alt:"Icon play video",class:"transform translate-x-0.5 w-12"},null,8,oe)])],2)):c("",!0)])],32)}S.render=re;var z=h({name:"PaoPaoVideoPlayer",components:{basic:S,gradient:C},props:{src:{type:String,required:!0},autoplay:{type:Boolean,default:!1},loop:{type:Boolean,default:!1},controls:{type:Boolean,default:!0},mask:{type:Boolean,default:!0},colors:{type:[String,Array],default(){return["#8B5CF6","#ec4899"]}},hoverable:{type:Boolean,default:!1},theme:{type:String,default:"basic"}},data(){return{uuid:Math.random().toString(36).substr(2,18),player:null,duration:0,playing:!1,time:{progress:0,display:0,current:0}}},watch:{"time.current"(e){this.time.display=this.format(Number(e)),this.time.progress=e*100/this.player.duration}},methods:{isPlaying(e){this.playing=e},play(){return this.playing?this.player.pause():this.player.play()},setPlayer(e){this.player=e,this.player.addEventListener("loadeddata",()=>{this.player.readyState>=3&&(this.duration=this.format(Number(this.player.duration)),this.time.display=this.format(0))})},stop(){this.player.pause(),this.player.currentTime=0},fullScreen(){this.player.webkitEnterFullscreen()},position(e){this.player.pause();const n=e.target.getBoundingClientRect(),r=(e.clientX-n.left)*100/e.target.offsetWidth;this.player.currentTime=r*this.player.duration/100,this.player.play()},format(e){const n=Math.floor(e/3600),a=Math.floor(e%3600/60),r=Math.round(e%60);return[n,a>9?a:n?"0"+a:a||"00",r>9?r:"0"+r].filter(Boolean).join(":")}}});const ae={class:"paopao-video-player"};function ie(e,n,a,r,i,v){return s(),l("div",ae,[(s(),P(B(e.theme),{uuid:e.uuid,src:e.src,autoplay:e.autoplay,loop:e.loop,controls:e.controls,mask:e.mask,colors:e.colors,time:e.time,playing:e.playing,duration:e.duration,hoverable:e.hoverable,onPlay:e.play,onStop:e.stop,onTimeupdate:n[0]||(n[0]=o=>{let{currentTime:x}=o;return e.time.current=x}),onPosition:e.position,onFullScreen:e.fullScreen,onSetPlayer:e.setPlayer,onIsPlaying:e.isPlaying},null,40,["uuid","src","autoplay","loop","controls","mask","colors","time","playing","duration","hoverable","onPlay","onStop","onPosition","onFullScreen","onSetPlayer","onIsPlaying"]))])}function se(e,n){n===void 0&&(n={});var a=n.insertAt;if(!(!e||typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",a==="top"&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var le=`/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com */ /*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ diff --git a/web/dist/assets/post-item.vue_vue_type_style_index_0_lang-f7f6062b.js b/web/dist/assets/post-item.vue_vue_type_style_index_0_lang-bc760886.js similarity index 86% rename from web/dist/assets/post-item.vue_vue_type_style_index_0_lang-f7f6062b.js rename to web/dist/assets/post-item.vue_vue_type_style_index_0_lang-bc760886.js index 6a7ca842..95292e3a 100644 --- a/web/dist/assets/post-item.vue_vue_type_style_index_0_lang-f7f6062b.js +++ b/web/dist/assets/post-item.vue_vue_type_style_index_0_lang-bc760886.js @@ -1 +1 @@ -import{p as N,a as P,_ as B,b as D,c as S}from"./content-bfe7958f.js";import{d as V,n as H,a2 as F,o as l,c as k,U as i,a6 as I,a0 as s,a as r,F as A,a3 as E,a1 as f,Z as d,e as _,L as m,P as c,N as p}from"./@vue-b8d06722.js";import{u as R}from"./vuex-613b371d.js";import{u as U}from"./vue-router-8af5a3a6.js";import{b as Z}from"./formatTime-000dbebb.js";import{a as ne}from"./copy-to-clipboard-1dd3075d.js";import{i as oe,j as G,l as J,m as K}from"./@vicons-7ee3dafd.js";import{o as Q,M as W,j as X,e as ie,O as le,a as Y,L as ee}from"./naive-ui-374a973f.js";const ue={class:"post-item"},re={class:"nickname-wrap"},ce={class:"username-wrap"},pe={class:"timestamp-mobile"},_e={class:"item-header-extra"},me=["innerHTML"],de={class:"opt-item"},ve={class:"opt-item"},Oe=V({__name:"mobile-post-item",props:{post:{}},setup(q){const T=q,h=U(),L=R(),e=H(()=>[{label:"复制链接",key:"copyTweetLink"}]),x=async o=>{switch(o){case"copyTweetLink":ne(`${window.location.origin}/#/post?id=${t.value.id}`),window.$message.success("链接已复制到剪贴板");break}},t=H(()=>{let o=Object.assign({texts:[],imgs:[],videos:[],links:[],attachments:[],charge_attachments:[]},T.post);return o.contents.map(n=>{(+n.type==1||+n.type==2)&&o.texts.push(n),+n.type==3&&o.imgs.push(n),+n.type==4&&o.videos.push(n),+n.type==6&&o.links.push(n),+n.type==7&&o.attachments.push(n),+n.type==8&&o.charge_attachments.push(n)}),o}),u=o=>{h.push({name:"post",query:{id:o}})},a=(o,n)=>{if(o.target.dataset.detail){const v=o.target.dataset.detail.split(":");if(v.length===2){L.commit("refresh"),v[0]==="tag"?h.push({name:"home",query:{q:v[1],t:"tag"}}):h.push({name:"user",query:{username:v[1]}});return}}u(n)};return(o,n)=>{const v=Q,b=F("router-link"),w=W,g=X,M=ie,$=le,z=P,O=B,y=D,j=S,te=Y,se=ee;return l(),k("div",ue,[i(se,{"content-indented":""},I({avatar:s(()=>[i(v,{round:"",size:30,src:t.value.user.avatar},null,8,["src"])]),header:s(()=>[r("span",re,[i(b,{onClick:n[0]||(n[0]=f(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:t.value.user.username}}},{default:s(()=>[_(m(t.value.user.nickname),1)]),_:1},8,["to"])]),r("span",ce," @"+m(t.value.user.username),1),t.value.is_top?(l(),c(w,{key:0,class:"top-tag",type:"warning",size:"small",round:""},{default:s(()=>[_(" 置顶 ")]),_:1})):p("",!0),t.value.visibility==1?(l(),c(w,{key:1,class:"top-tag",type:"error",size:"small",round:""},{default:s(()=>[_(" 私密 ")]),_:1})):p("",!0),t.value.visibility==2?(l(),c(w,{key:2,class:"top-tag",type:"info",size:"small",round:""},{default:s(()=>[_(" 好友可见 ")]),_:1})):p("",!0),r("div",null,[r("span",pe,m(d(Z)(t.value.created_on))+" "+m(t.value.ip_loc),1)])]),"header-extra":s(()=>[r("div",_e,[i($,{placement:"bottom-end",trigger:"click",size:"small",options:e.value,onSelect:x},{default:s(()=>[i(M,{quaternary:"",circle:""},{icon:s(()=>[i(g,null,{default:s(()=>[i(d(oe))]),_:1})]),_:1})]),_:1},8,["options"])])]),footer:s(()=>[t.value.attachments.length>0?(l(),c(z,{key:0,attachments:t.value.attachments},null,8,["attachments"])):p("",!0),t.value.charge_attachments.length>0?(l(),c(z,{key:1,attachments:t.value.charge_attachments,price:t.value.attachment_price},null,8,["attachments","price"])):p("",!0),t.value.imgs.length>0?(l(),c(O,{key:2,imgs:t.value.imgs},null,8,["imgs"])):p("",!0),t.value.videos.length>0?(l(),c(y,{key:3,videos:t.value.videos},null,8,["videos"])):p("",!0),t.value.links.length>0?(l(),c(j,{key:4,links:t.value.links},null,8,["links"])):p("",!0)]),action:s(()=>[i(te,{justify:"space-between"},{default:s(()=>[r("div",de,[i(g,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(G))]),_:1}),_(" "+m(t.value.upvote_count),1)]),r("div",{class:"opt-item",onClick:n[3]||(n[3]=f(C=>u(t.value.id),["stop"]))},[i(g,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(J))]),_:1}),_(" "+m(t.value.comment_count),1)]),r("div",ve,[i(g,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(K))]),_:1}),_(" "+m(t.value.collection_count),1)])]),_:1})]),_:2},[t.value.texts.length>0?{name:"description",fn:s(()=>[r("div",{onClick:n[2]||(n[2]=C=>u(t.value.id))},[(l(!0),k(A,null,E(t.value.texts,C=>(l(),k("span",{key:C.id,class:"post-text",onClick:n[1]||(n[1]=f(ae=>a(ae,t.value.id),["stop"])),innerHTML:d(N)(C.content).content},null,8,me))),128))])]),key:"0"}:void 0]),1024)])}}});const he={class:"nickname-wrap"},ge={class:"username-wrap"},ye={class:"item-header-extra"},ke={class:"timestamp"},fe=["innerHTML"],xe={class:"opt-item"},we={class:"opt-item"},je=V({__name:"post-item",props:{post:{}},setup(q){const T=q,h=U(),L=R(),e=H(()=>{let u=Object.assign({texts:[],imgs:[],videos:[],links:[],attachments:[],charge_attachments:[]},T.post);return u.contents.map(a=>{(+a.type==1||+a.type==2)&&u.texts.push(a),+a.type==3&&u.imgs.push(a),+a.type==4&&u.videos.push(a),+a.type==6&&u.links.push(a),+a.type==7&&u.attachments.push(a),+a.type==8&&u.charge_attachments.push(a)}),u}),x=u=>{h.push({name:"post",query:{id:u}})},t=(u,a)=>{if(u.target.dataset.detail){const o=u.target.dataset.detail.split(":");if(o.length===2){L.commit("refresh"),o[0]==="tag"?h.push({name:"home",query:{q:o[1],t:"tag"}}):h.push({name:"user",query:{username:o[1]}});return}}x(a)};return(u,a)=>{const o=Q,n=F("router-link"),v=W,b=P,w=B,g=D,M=S,$=X,z=Y,O=ee;return l(),k("div",{class:"post-item",onClick:a[3]||(a[3]=y=>x(e.value.id))},[i(O,{"content-indented":""},I({avatar:s(()=>[i(o,{round:"",size:30,src:e.value.user.avatar},null,8,["src"])]),header:s(()=>[r("span",he,[i(n,{onClick:a[0]||(a[0]=f(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:e.value.user.username}}},{default:s(()=>[_(m(e.value.user.nickname),1)]),_:1},8,["to"])]),r("span",ge," @"+m(e.value.user.username),1),e.value.is_top?(l(),c(v,{key:0,class:"top-tag",type:"warning",size:"small",round:""},{default:s(()=>[_(" 置顶 ")]),_:1})):p("",!0),e.value.visibility==1?(l(),c(v,{key:1,class:"top-tag",type:"error",size:"small",round:""},{default:s(()=>[_(" 私密 ")]),_:1})):p("",!0),e.value.visibility==2?(l(),c(v,{key:2,class:"top-tag",type:"info",size:"small",round:""},{default:s(()=>[_(" 好友可见 ")]),_:1})):p("",!0)]),"header-extra":s(()=>[r("div",ye,[r("span",ke,m(e.value.ip_loc?e.value.ip_loc+" · ":e.value.ip_loc)+" "+m(d(Z)(e.value.created_on)),1)])]),footer:s(()=>[e.value.attachments.length>0?(l(),c(b,{key:0,attachments:e.value.attachments},null,8,["attachments"])):p("",!0),e.value.charge_attachments.length>0?(l(),c(b,{key:1,attachments:e.value.charge_attachments,price:e.value.attachment_price},null,8,["attachments","price"])):p("",!0),e.value.imgs.length>0?(l(),c(w,{key:2,imgs:e.value.imgs},null,8,["imgs"])):p("",!0),e.value.videos.length>0?(l(),c(g,{key:3,videos:e.value.videos},null,8,["videos"])):p("",!0),e.value.links.length>0?(l(),c(M,{key:4,links:e.value.links},null,8,["links"])):p("",!0)]),action:s(()=>[i(z,{justify:"space-between"},{default:s(()=>[r("div",xe,[i($,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(G))]),_:1}),_(" "+m(e.value.upvote_count),1)]),r("div",{class:"opt-item",onClick:a[2]||(a[2]=f(y=>x(e.value.id),["stop"]))},[i($,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(J))]),_:1}),_(" "+m(e.value.comment_count),1)]),r("div",we,[i($,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(K))]),_:1}),_(" "+m(e.value.collection_count),1)])]),_:1})]),_:2},[e.value.texts.length>0?{name:"description",fn:s(()=>[(l(!0),k(A,null,E(e.value.texts,y=>(l(),k("span",{key:y.id,class:"post-text",onClick:a[1]||(a[1]=f(j=>t(j,e.value.id),["stop"])),innerHTML:d(N)(y.content).content},null,8,fe))),128))]),key:"0"}:void 0]),1024)])}}});export{je as _,Oe as a}; +import{p as H,a as N,_ as B,b as D,c as S}from"./content-1ad34d0c.js";import{d as V,n as j,a2 as F,o as l,c as k,U as i,a6 as I,a0 as s,a as r,F as A,a3 as E,a1 as f,Z as d,e as _,L as m,P as c,N as p}from"./@vue-d002002f.js";import{u as R}from"./vuex-4d2f7b35.js";import{u as U}from"./vue-router-29e6667f.js";import{b as Z}from"./formatTime-000dbebb.js";import{a as ne}from"./copy-to-clipboard-1dd3075d.js";import{i as oe,j as G,l as J,m as K}from"./@vicons-4022100b.js";import{o as Q,O as W,j as X,e as ie,P as le,a as Y,M as ee}from"./naive-ui-d02aa0d7.js";const ue={class:"post-item"},re={class:"nickname-wrap"},ce={class:"username-wrap"},pe={class:"timestamp-mobile"},_e={class:"item-header-extra"},me=["innerHTML"],de={class:"opt-item"},ve={class:"opt-item"},Oe=V({__name:"mobile-post-item",props:{post:{}},setup(q){const T=q,h=U(),L=R(),e=j(()=>[{label:"复制链接",key:"copyTweetLink"}]),x=async o=>{switch(o){case"copyTweetLink":ne(`${window.location.origin}/#/post?id=${t.value.id}`),window.$message.success("链接已复制到剪贴板");break}},t=j(()=>{let o=Object.assign({texts:[],imgs:[],videos:[],links:[],attachments:[],charge_attachments:[]},T.post);return o.contents.map(n=>{(+n.type==1||+n.type==2)&&o.texts.push(n),+n.type==3&&o.imgs.push(n),+n.type==4&&o.videos.push(n),+n.type==6&&o.links.push(n),+n.type==7&&o.attachments.push(n),+n.type==8&&o.charge_attachments.push(n)}),o}),u=o=>{h.push({name:"post",query:{id:o}})},a=(o,n)=>{if(o.target.dataset.detail){const v=o.target.dataset.detail.split(":");if(v.length===2){L.commit("refresh"),v[0]==="tag"?h.push({name:"home",query:{q:v[1],t:"tag"}}):h.push({name:"user",query:{username:v[1]}});return}}u(n)};return(o,n)=>{const v=Q,b=F("router-link"),w=W,g=X,M=ie,$=le,z=N,O=B,y=D,P=S,te=Y,se=ee;return l(),k("div",ue,[i(se,{"content-indented":""},I({avatar:s(()=>[i(v,{round:"",size:30,src:t.value.user.avatar},null,8,["src"])]),header:s(()=>[r("span",re,[i(b,{onClick:n[0]||(n[0]=f(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:t.value.user.username}}},{default:s(()=>[_(m(t.value.user.nickname),1)]),_:1},8,["to"])]),r("span",ce," @"+m(t.value.user.username),1),t.value.is_top?(l(),c(w,{key:0,class:"top-tag",type:"warning",size:"small",round:""},{default:s(()=>[_(" 置顶 ")]),_:1})):p("",!0),t.value.visibility==1?(l(),c(w,{key:1,class:"top-tag",type:"error",size:"small",round:""},{default:s(()=>[_(" 私密 ")]),_:1})):p("",!0),t.value.visibility==2?(l(),c(w,{key:2,class:"top-tag",type:"info",size:"small",round:""},{default:s(()=>[_(" 好友可见 ")]),_:1})):p("",!0),r("div",null,[r("span",pe,m(d(Z)(t.value.created_on))+" "+m(t.value.ip_loc),1)])]),"header-extra":s(()=>[r("div",_e,[i($,{placement:"bottom-end",trigger:"click",size:"small",options:e.value,onSelect:x},{default:s(()=>[i(M,{quaternary:"",circle:""},{icon:s(()=>[i(g,null,{default:s(()=>[i(d(oe))]),_:1})]),_:1})]),_:1},8,["options"])])]),footer:s(()=>[t.value.attachments.length>0?(l(),c(z,{key:0,attachments:t.value.attachments},null,8,["attachments"])):p("",!0),t.value.charge_attachments.length>0?(l(),c(z,{key:1,attachments:t.value.charge_attachments,price:t.value.attachment_price},null,8,["attachments","price"])):p("",!0),t.value.imgs.length>0?(l(),c(O,{key:2,imgs:t.value.imgs},null,8,["imgs"])):p("",!0),t.value.videos.length>0?(l(),c(y,{key:3,videos:t.value.videos},null,8,["videos"])):p("",!0),t.value.links.length>0?(l(),c(P,{key:4,links:t.value.links},null,8,["links"])):p("",!0)]),action:s(()=>[i(te,{justify:"space-between"},{default:s(()=>[r("div",de,[i(g,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(G))]),_:1}),_(" "+m(t.value.upvote_count),1)]),r("div",{class:"opt-item",onClick:n[3]||(n[3]=f(C=>u(t.value.id),["stop"]))},[i(g,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(J))]),_:1}),_(" "+m(t.value.comment_count),1)]),r("div",ve,[i(g,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(K))]),_:1}),_(" "+m(t.value.collection_count),1)])]),_:1})]),_:2},[t.value.texts.length>0?{name:"description",fn:s(()=>[r("div",{onClick:n[2]||(n[2]=C=>u(t.value.id))},[(l(!0),k(A,null,E(t.value.texts,C=>(l(),k("span",{key:C.id,class:"post-text",onClick:n[1]||(n[1]=f(ae=>a(ae,t.value.id),["stop"])),innerHTML:d(H)(C.content).content},null,8,me))),128))])]),key:"0"}:void 0]),1024)])}}});const he={class:"nickname-wrap"},ge={class:"username-wrap"},ye={class:"item-header-extra"},ke={class:"timestamp"},fe=["innerHTML"],xe={class:"opt-item"},we={class:"opt-item"},Pe=V({__name:"post-item",props:{post:{}},setup(q){const T=q,h=U(),L=R(),e=j(()=>{let u=Object.assign({texts:[],imgs:[],videos:[],links:[],attachments:[],charge_attachments:[]},T.post);return u.contents.map(a=>{(+a.type==1||+a.type==2)&&u.texts.push(a),+a.type==3&&u.imgs.push(a),+a.type==4&&u.videos.push(a),+a.type==6&&u.links.push(a),+a.type==7&&u.attachments.push(a),+a.type==8&&u.charge_attachments.push(a)}),u}),x=u=>{h.push({name:"post",query:{id:u}})},t=(u,a)=>{if(u.target.dataset.detail){const o=u.target.dataset.detail.split(":");if(o.length===2){L.commit("refresh"),o[0]==="tag"?h.push({name:"home",query:{q:o[1],t:"tag"}}):h.push({name:"user",query:{username:o[1]}});return}}x(a)};return(u,a)=>{const o=Q,n=F("router-link"),v=W,b=N,w=B,g=D,M=S,$=X,z=Y,O=ee;return l(),k("div",{class:"post-item",onClick:a[3]||(a[3]=y=>x(e.value.id))},[i(O,{"content-indented":""},I({avatar:s(()=>[i(o,{round:"",size:30,src:e.value.user.avatar},null,8,["src"])]),header:s(()=>[r("span",he,[i(n,{onClick:a[0]||(a[0]=f(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:e.value.user.username}}},{default:s(()=>[_(m(e.value.user.nickname),1)]),_:1},8,["to"])]),r("span",ge," @"+m(e.value.user.username),1),e.value.is_top?(l(),c(v,{key:0,class:"top-tag",type:"warning",size:"small",round:""},{default:s(()=>[_(" 置顶 ")]),_:1})):p("",!0),e.value.visibility==1?(l(),c(v,{key:1,class:"top-tag",type:"error",size:"small",round:""},{default:s(()=>[_(" 私密 ")]),_:1})):p("",!0),e.value.visibility==2?(l(),c(v,{key:2,class:"top-tag",type:"info",size:"small",round:""},{default:s(()=>[_(" 好友可见 ")]),_:1})):p("",!0)]),"header-extra":s(()=>[r("div",ye,[r("span",ke,m(e.value.ip_loc?e.value.ip_loc+" · ":e.value.ip_loc)+" "+m(d(Z)(e.value.created_on)),1)])]),footer:s(()=>[e.value.attachments.length>0?(l(),c(b,{key:0,attachments:e.value.attachments},null,8,["attachments"])):p("",!0),e.value.charge_attachments.length>0?(l(),c(b,{key:1,attachments:e.value.charge_attachments,price:e.value.attachment_price},null,8,["attachments","price"])):p("",!0),e.value.imgs.length>0?(l(),c(w,{key:2,imgs:e.value.imgs},null,8,["imgs"])):p("",!0),e.value.videos.length>0?(l(),c(g,{key:3,videos:e.value.videos},null,8,["videos"])):p("",!0),e.value.links.length>0?(l(),c(M,{key:4,links:e.value.links},null,8,["links"])):p("",!0)]),action:s(()=>[i(z,{justify:"space-between"},{default:s(()=>[r("div",xe,[i($,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(G))]),_:1}),_(" "+m(e.value.upvote_count),1)]),r("div",{class:"opt-item",onClick:a[2]||(a[2]=f(y=>x(e.value.id),["stop"]))},[i($,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(J))]),_:1}),_(" "+m(e.value.comment_count),1)]),r("div",we,[i($,{size:"18",class:"opt-item-icon"},{default:s(()=>[i(d(K))]),_:1}),_(" "+m(e.value.collection_count),1)])]),_:1})]),_:2},[e.value.texts.length>0?{name:"description",fn:s(()=>[(l(!0),k(A,null,E(e.value.texts,y=>(l(),k("span",{key:y.id,class:"post-text",onClick:a[1]||(a[1]=f(P=>t(P,e.value.id),["stop"])),innerHTML:d(H)(y.content).content},null,8,fe))),128))]),key:"0"}:void 0]),1024)])}}});export{Pe as _,Oe as a}; diff --git a/web/dist/assets/post-skeleton-3fdfd3d1.js b/web/dist/assets/post-skeleton-49f18127.js similarity index 66% rename from web/dist/assets/post-skeleton-3fdfd3d1.js rename to web/dist/assets/post-skeleton-49f18127.js index 66d0d8a5..adda7283 100644 --- a/web/dist/assets/post-skeleton-3fdfd3d1.js +++ b/web/dist/assets/post-skeleton-49f18127.js @@ -1 +1 @@ -import{U as r}from"./naive-ui-374a973f.js";import{d as c,o as s,c as n,a3 as p,a as o,U as t,F as l}from"./@vue-b8d06722.js";import{_ as i}from"./index-43cab287.js";const m={class:"user"},d={class:"content"},u=c({__name:"post-skeleton",props:{num:{default:1}},setup(f){return(_,k)=>{const e=r;return s(!0),n(l,null,p(new Array(_.num),a=>(s(),n("div",{class:"skeleton-item",key:a},[o("div",m,[t(e,{circle:"",size:"small"})]),o("div",d,[t(e,{text:"",repeat:3}),t(e,{text:"",style:{width:"60%"}})])]))),128)}}});const b=i(u,[["__scopeId","data-v-ab0015b4"]]);export{b as _}; +import{U as r}from"./naive-ui-d02aa0d7.js";import{d as c,o as s,c as n,a3 as p,a as o,U as t,F as l}from"./@vue-d002002f.js";import{_ as i}from"./index-5fa3c6e0.js";const m={class:"user"},d={class:"content"},u=c({__name:"post-skeleton",props:{num:{default:1}},setup(f){return(_,k)=>{const e=r;return s(!0),n(l,null,p(new Array(_.num),a=>(s(),n("div",{class:"skeleton-item",key:a},[o("div",m,[t(e,{circle:"",size:"small"})]),o("div",d,[t(e,{text:"",repeat:3}),t(e,{text:"",style:{width:"60%"}})])]))),128)}}});const b=i(u,[["__scopeId","data-v-ab0015b4"]]);export{b as _}; diff --git a/web/dist/assets/v3-infinite-loading-e8a7ab9d.js b/web/dist/assets/v3-infinite-loading-58f64a4e.js similarity index 95% rename from web/dist/assets/v3-infinite-loading-e8a7ab9d.js rename to web/dist/assets/v3-infinite-loading-58f64a4e.js index 0d429dba..7cd44118 100644 --- a/web/dist/assets/v3-infinite-loading-e8a7ab9d.js +++ b/web/dist/assets/v3-infinite-loading-58f64a4e.js @@ -1 +1 @@ -import{r as v,R as B,j as H,H as L,o as b,c as h,S as p,U as N,N as u,a as d,L as g,w as y,y as j,V as C,W as V}from"./@vue-b8d06722.js";const x=(e,o)=>{const t=e.__vccOpts||e;for(const[n,a]of o)t[n]=a;return t},$={},O=e=>(C("data-v-259be2b2"),e=e(),V(),e),R={class:"container"},M=O(()=>d("div",{class:"spinner"},null,-1)),T=[M];function U(e,o){return b(),h("div",R,T)}const D=x($,[["render",U],["__scopeId","data-v-259be2b2"],["__file","/home/oumoussa/side-projects/infinite/src/components/Spinner.vue"]]),W=e=>({loading(){e.value="loading"},loaded(){e.value="loaded"},complete(){e.value="complete"},error(){e.value="error"}}),z=(e,o,t)=>()=>{const n=t.parentEl||document.documentElement;t.prevHeight=n.scrollHeight,o.loading(),e("infinite",o)},A=(e,o)=>{const t=e.getBoundingClientRect();if(!o)return t.top>=0&&t.bottom<=window.innerHeight;const n=o.getBoundingClientRect();return t.top>=n.top&&t.bottom<=n.bottom},_=e=>{e.parentEl=document.querySelector(e.target)||null;let o=`0px 0px ${e.distance}px 0px`;e.top&&(o=`${e.distance}px 0px 0px 0px`);const t=new IntersectionObserver(n=>{n[0].isIntersecting&&(e.firstload&&e.emit(),e.firstload=!0)},{root:e.parentEl,rootMargin:o});return t.observe(e.infiniteLoading.value),t},F={class:"state-error"},G={__name:"InfiniteLoading",props:{top:{type:Boolean,required:!1},target:{type:[String,Boolean],required:!1},distance:{type:Number,required:!1,default:0},identifier:{required:!1},firstload:{type:Boolean,required:!1,default:!0},slots:{type:Object,required:!1}},emits:["infinite"],setup(e,{emit:o}){const t=e;let n=null;const a=v(null),s=v("ready"),{top:m,firstload:E,target:k,distance:I}=t,{identifier:f}=B(t),r={infiniteLoading:a,target:k,top:m,firstload:E,distance:I,prevHeight:0,parentEl:null};r.emit=z(o,W(s),r);const S=()=>y(s,async i=>{const l=r.parentEl||document.documentElement;await j(),i=="loaded"&&m&&(l.scrollTop=l.scrollHeight-r.prevHeight),i=="loaded"&&A(a.value,r.parentEl)&&r.emit(),i=="complete"&&n.disconnect()}),q=()=>y(f,()=>{s.value="ready",n.disconnect(),n=_(r)});return H(()=>{n=_(r),S(),f&&q()}),L(()=>{n.disconnect()}),(i,l)=>(b(),h("div",{ref_key:"infiniteLoading",ref:a},[s.value=="loading"?p(i.$slots,"spinner",{key:0},()=>[N(D)],!0):u("v-if",!0),s.value=="complete"?p(i.$slots,"complete",{key:1},()=>{var c;return[d("span",null,g(((c=e.slots)==null?void 0:c.complete)||"No more results!"),1)]},!0):u("v-if",!0),s.value=="error"?p(i.$slots,"error",{key:2,retry:r.emit},()=>{var c;return[d("span",F,[d("span",null,g(((c=e.slots)==null?void 0:c.error)||"Oops something went wrong!"),1),d("button",{class:"retry",onClick:l[0]||(l[0]=(...w)=>r.emit&&r.emit(...w))}," retry ")])]},!0):u("v-if",!0)],512))}},J=x(G,[["__scopeId","data-v-9d82030b"],["__file","/home/oumoussa/side-projects/infinite/src/components/InfiniteLoading.vue"]]);export{J as K}; +import{r as v,R as B,j as H,H as L,o as b,c as h,S as p,U as N,N as u,a as d,L as g,w as y,y as j,V as C,W as V}from"./@vue-d002002f.js";const x=(e,o)=>{const t=e.__vccOpts||e;for(const[n,a]of o)t[n]=a;return t},$={},O=e=>(C("data-v-259be2b2"),e=e(),V(),e),R={class:"container"},M=O(()=>d("div",{class:"spinner"},null,-1)),T=[M];function U(e,o){return b(),h("div",R,T)}const D=x($,[["render",U],["__scopeId","data-v-259be2b2"],["__file","/home/oumoussa/side-projects/infinite/src/components/Spinner.vue"]]),W=e=>({loading(){e.value="loading"},loaded(){e.value="loaded"},complete(){e.value="complete"},error(){e.value="error"}}),z=(e,o,t)=>()=>{const n=t.parentEl||document.documentElement;t.prevHeight=n.scrollHeight,o.loading(),e("infinite",o)},A=(e,o)=>{const t=e.getBoundingClientRect();if(!o)return t.top>=0&&t.bottom<=window.innerHeight;const n=o.getBoundingClientRect();return t.top>=n.top&&t.bottom<=n.bottom},_=e=>{e.parentEl=document.querySelector(e.target)||null;let o=`0px 0px ${e.distance}px 0px`;e.top&&(o=`${e.distance}px 0px 0px 0px`);const t=new IntersectionObserver(n=>{n[0].isIntersecting&&(e.firstload&&e.emit(),e.firstload=!0)},{root:e.parentEl,rootMargin:o});return t.observe(e.infiniteLoading.value),t},F={class:"state-error"},G={__name:"InfiniteLoading",props:{top:{type:Boolean,required:!1},target:{type:[String,Boolean],required:!1},distance:{type:Number,required:!1,default:0},identifier:{required:!1},firstload:{type:Boolean,required:!1,default:!0},slots:{type:Object,required:!1}},emits:["infinite"],setup(e,{emit:o}){const t=e;let n=null;const a=v(null),s=v("ready"),{top:m,firstload:E,target:k,distance:I}=t,{identifier:f}=B(t),r={infiniteLoading:a,target:k,top:m,firstload:E,distance:I,prevHeight:0,parentEl:null};r.emit=z(o,W(s),r);const S=()=>y(s,async i=>{const l=r.parentEl||document.documentElement;await j(),i=="loaded"&&m&&(l.scrollTop=l.scrollHeight-r.prevHeight),i=="loaded"&&A(a.value,r.parentEl)&&r.emit(),i=="complete"&&n.disconnect()}),q=()=>y(f,()=>{s.value="ready",n.disconnect(),n=_(r)});return H(()=>{n=_(r),S(),f&&q()}),L(()=>{n.disconnect()}),(i,l)=>(b(),h("div",{ref_key:"infiniteLoading",ref:a},[s.value=="loading"?p(i.$slots,"spinner",{key:0},()=>[N(D)],!0):u("v-if",!0),s.value=="complete"?p(i.$slots,"complete",{key:1},()=>{var c;return[d("span",null,g(((c=e.slots)==null?void 0:c.complete)||"No more results!"),1)]},!0):u("v-if",!0),s.value=="error"?p(i.$slots,"error",{key:2,retry:r.emit},()=>{var c;return[d("span",F,[d("span",null,g(((c=e.slots)==null?void 0:c.error)||"Oops something went wrong!"),1),d("button",{class:"retry",onClick:l[0]||(l[0]=(...w)=>r.emit&&r.emit(...w))}," retry ")])]},!0):u("v-if",!0)],512))}},J=x(G,[["__scopeId","data-v-9d82030b"],["__file","/home/oumoussa/side-projects/infinite/src/components/InfiniteLoading.vue"]]);export{J as K}; diff --git a/web/dist/assets/vooks-423a5f30.js b/web/dist/assets/vooks-77bdadbd.js similarity index 98% rename from web/dist/assets/vooks-423a5f30.js rename to web/dist/assets/vooks-77bdadbd.js index 54cb8f1d..22c34cd8 100644 --- a/web/dist/assets/vooks-423a5f30.js +++ b/web/dist/assets/vooks-77bdadbd.js @@ -1 +1 @@ -import{r as f,X as c,w as q,n as k,g as U,j as X,h as g,k as B,D as V}from"./@vue-b8d06722.js";import{o as h,a as v}from"./evtd-b614532e.js";function N(e){const n=f(!!e.value);if(n.value)return c(n);const t=q(e,o=>{o&&(n.value=!0,t())});return c(n)}function ee(e){const n=k(e),t=f(n.value);return q(n,o=>{t.value=o}),typeof e=="function"?t:{__v_isRef:!0,get value(){return t.value},set value(o){e.set(o)}}}function I(){return U()!==null}const $=typeof window<"u";let y,L;const Y=()=>{var e,n;y=$?(n=(e=document)===null||e===void 0?void 0:e.fonts)===null||n===void 0?void 0:n.ready:void 0,L=!1,y!==void 0?y.then(()=>{L=!0}):L=!0};Y();function ne(e){if(L)return;let n=!1;X(()=>{L||y==null||y.then(()=>{n||e()})}),g(()=>{n=!0})}const M=f(null);function _(e){if(e.clientX>0||e.clientY>0)M.value={x:e.clientX,y:e.clientY};else{const{target:n}=e;if(n instanceof Element){const{left:t,top:o,width:u,height:i}=n.getBoundingClientRect();t>0||o>0?M.value={x:t+u/2,y:o+i/2}:M.value={x:0,y:0}}else M.value=null}}let E=0,H=!0;function te(){if(!$)return c(f(null));E===0&&h("click",document,_,!0);const e=()=>{E+=1};return H&&(H=I())?(B(e),g(()=>{E-=1,E===0&&v("click",document,_,!0)})):e(),c(M)}const K=f(void 0);let C=0;function S(){K.value=Date.now()}let F=!0;function ie(e){if(!$)return c(f(!1));const n=f(!1);let t=null;function o(){t!==null&&window.clearTimeout(t)}function u(){o(),n.value=!0,t=window.setTimeout(()=>{n.value=!1},e)}C===0&&h("click",window,S,!0);const i=()=>{C+=1,h("click",window,u,!0)};return F&&(F=I())?(B(i),g(()=>{C-=1,C===0&&v("click",window,S,!0),v("click",window,u,!0),o()})):i(),c(n)}let T=0;const O=typeof window<"u"&&window.matchMedia!==void 0,p=f(null);let r,w;function x(e){e.matches&&(p.value="dark")}function P(e){e.matches&&(p.value="light")}function Q(){r=window.matchMedia("(prefers-color-scheme: dark)"),w=window.matchMedia("(prefers-color-scheme: light)"),r.matches?p.value="dark":w.matches?p.value="light":p.value=null,r.addEventListener?(r.addEventListener("change",x),w.addEventListener("change",P)):r.addListener&&(r.addListener(x),w.addListener(P))}function z(){"removeEventListener"in r?(r.removeEventListener("change",x),w.removeEventListener("change",P)):"removeListener"in r&&(r.removeListener(x),w.removeListener(P)),r=void 0,w=void 0}let R=!0;function ae(){return O?(T===0&&Q(),R&&(R=I())&&(B(()=>{T+=1}),g(()=>{T-=1,T===0&&z()})),c(p)):c(p)}function oe(e,n){return q(e,t=>{t!==void 0&&(n.value=t)}),k(()=>e.value===void 0?n.value:e.value)}function ue(){const e=f(!1);return X(()=>{e.value=!0}),c(e)}function se(e,n){return k(()=>{for(const t of n)if(e[t]!==void 0)return e[t];return e[n[n.length-1]]})}const A=(typeof window>"u"?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1)&&!window.MSStream;function re(){return A}const G={xs:0,s:640,m:1024,l:1280,xl:1536,"2xl":1920};function J(e){return`(min-width: ${e}px)`}const b={};function le(e=G){if(!$)return k(()=>[]);if(typeof window.matchMedia!="function")return k(()=>[]);const n=f({}),t=Object.keys(e),o=(u,i)=>{u.matches?n.value[i]=!0:n.value[i]=!1};return t.forEach(u=>{const i=e[u];let s,l;b[i]===void 0?(s=window.matchMedia(J(i)),s.addEventListener?s.addEventListener("change",a=>{l.forEach(d=>{d(a,u)})}):s.addListener&&s.addListener(a=>{l.forEach(d=>{d(a,u)})}),l=new Set,b[i]={mql:s,cbs:l}):(s=b[i].mql,l=b[i].cbs),l.add(o),s.matches&&l.forEach(a=>{a(s,u)})}),g(()=>{t.forEach(u=>{const{cbs:i}=b[e[u]];i.has(o)&&i.delete(o)})}),k(()=>{const{value:u}=n;return t.filter(i=>u[i])})}function fe(e={},n){const t=V({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:o,keyup:u}=e,i=a=>{switch(a.key){case"Control":t.ctrl=!0;break;case"Meta":t.command=!0,t.win=!0;break;case"Shift":t.shift=!0;break;case"Tab":t.tab=!0;break}o!==void 0&&Object.keys(o).forEach(d=>{if(d!==a.key)return;const m=o[d];if(typeof m=="function")m(a);else{const{stop:j=!1,prevent:D=!1}=m;j&&a.stopPropagation(),D&&a.preventDefault(),m.handler(a)}})},s=a=>{switch(a.key){case"Control":t.ctrl=!1;break;case"Meta":t.command=!1,t.win=!1;break;case"Shift":t.shift=!1;break;case"Tab":t.tab=!1;break}u!==void 0&&Object.keys(u).forEach(d=>{if(d!==a.key)return;const m=u[d];if(typeof m=="function")m(a);else{const{stop:j=!1,prevent:D=!1}=m;j&&a.stopPropagation(),D&&a.preventDefault(),m.handler(a)}})},l=()=>{(n===void 0||n.value)&&(h("keydown",document,i),h("keyup",document,s)),n!==void 0&&q(n,a=>{a?(h("keydown",document,i),h("keyup",document,s)):(v("keydown",document,i),v("keyup",document,s))})};return I()?(B(l),g(()=>{(n===void 0||n.value)&&(v("keydown",document,i),v("keyup",document,s))})):l(),c(t)}export{re as a,oe as b,se as c,fe as d,ie as e,te as f,le as g,N as h,ue as i,ae as j,ne as o,ee as u}; +import{r as f,X as c,w as q,n as k,g as U,j as X,h as g,k as B,D as V}from"./@vue-d002002f.js";import{o as h,a as v}from"./evtd-b614532e.js";function N(e){const n=f(!!e.value);if(n.value)return c(n);const t=q(e,o=>{o&&(n.value=!0,t())});return c(n)}function ee(e){const n=k(e),t=f(n.value);return q(n,o=>{t.value=o}),typeof e=="function"?t:{__v_isRef:!0,get value(){return t.value},set value(o){e.set(o)}}}function I(){return U()!==null}const $=typeof window<"u";let y,L;const Y=()=>{var e,n;y=$?(n=(e=document)===null||e===void 0?void 0:e.fonts)===null||n===void 0?void 0:n.ready:void 0,L=!1,y!==void 0?y.then(()=>{L=!0}):L=!0};Y();function ne(e){if(L)return;let n=!1;X(()=>{L||y==null||y.then(()=>{n||e()})}),g(()=>{n=!0})}const M=f(null);function _(e){if(e.clientX>0||e.clientY>0)M.value={x:e.clientX,y:e.clientY};else{const{target:n}=e;if(n instanceof Element){const{left:t,top:o,width:u,height:i}=n.getBoundingClientRect();t>0||o>0?M.value={x:t+u/2,y:o+i/2}:M.value={x:0,y:0}}else M.value=null}}let E=0,H=!0;function te(){if(!$)return c(f(null));E===0&&h("click",document,_,!0);const e=()=>{E+=1};return H&&(H=I())?(B(e),g(()=>{E-=1,E===0&&v("click",document,_,!0)})):e(),c(M)}const K=f(void 0);let C=0;function S(){K.value=Date.now()}let F=!0;function ie(e){if(!$)return c(f(!1));const n=f(!1);let t=null;function o(){t!==null&&window.clearTimeout(t)}function u(){o(),n.value=!0,t=window.setTimeout(()=>{n.value=!1},e)}C===0&&h("click",window,S,!0);const i=()=>{C+=1,h("click",window,u,!0)};return F&&(F=I())?(B(i),g(()=>{C-=1,C===0&&v("click",window,S,!0),v("click",window,u,!0),o()})):i(),c(n)}let T=0;const O=typeof window<"u"&&window.matchMedia!==void 0,p=f(null);let r,w;function x(e){e.matches&&(p.value="dark")}function P(e){e.matches&&(p.value="light")}function Q(){r=window.matchMedia("(prefers-color-scheme: dark)"),w=window.matchMedia("(prefers-color-scheme: light)"),r.matches?p.value="dark":w.matches?p.value="light":p.value=null,r.addEventListener?(r.addEventListener("change",x),w.addEventListener("change",P)):r.addListener&&(r.addListener(x),w.addListener(P))}function z(){"removeEventListener"in r?(r.removeEventListener("change",x),w.removeEventListener("change",P)):"removeListener"in r&&(r.removeListener(x),w.removeListener(P)),r=void 0,w=void 0}let R=!0;function ae(){return O?(T===0&&Q(),R&&(R=I())&&(B(()=>{T+=1}),g(()=>{T-=1,T===0&&z()})),c(p)):c(p)}function oe(e,n){return q(e,t=>{t!==void 0&&(n.value=t)}),k(()=>e.value===void 0?n.value:e.value)}function ue(){const e=f(!1);return X(()=>{e.value=!0}),c(e)}function se(e,n){return k(()=>{for(const t of n)if(e[t]!==void 0)return e[t];return e[n[n.length-1]]})}const A=(typeof window>"u"?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1)&&!window.MSStream;function re(){return A}const G={xs:0,s:640,m:1024,l:1280,xl:1536,"2xl":1920};function J(e){return`(min-width: ${e}px)`}const b={};function le(e=G){if(!$)return k(()=>[]);if(typeof window.matchMedia!="function")return k(()=>[]);const n=f({}),t=Object.keys(e),o=(u,i)=>{u.matches?n.value[i]=!0:n.value[i]=!1};return t.forEach(u=>{const i=e[u];let s,l;b[i]===void 0?(s=window.matchMedia(J(i)),s.addEventListener?s.addEventListener("change",a=>{l.forEach(d=>{d(a,u)})}):s.addListener&&s.addListener(a=>{l.forEach(d=>{d(a,u)})}),l=new Set,b[i]={mql:s,cbs:l}):(s=b[i].mql,l=b[i].cbs),l.add(o),s.matches&&l.forEach(a=>{a(s,u)})}),g(()=>{t.forEach(u=>{const{cbs:i}=b[e[u]];i.has(o)&&i.delete(o)})}),k(()=>{const{value:u}=n;return t.filter(i=>u[i])})}function fe(e={},n){const t=V({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:o,keyup:u}=e,i=a=>{switch(a.key){case"Control":t.ctrl=!0;break;case"Meta":t.command=!0,t.win=!0;break;case"Shift":t.shift=!0;break;case"Tab":t.tab=!0;break}o!==void 0&&Object.keys(o).forEach(d=>{if(d!==a.key)return;const m=o[d];if(typeof m=="function")m(a);else{const{stop:j=!1,prevent:D=!1}=m;j&&a.stopPropagation(),D&&a.preventDefault(),m.handler(a)}})},s=a=>{switch(a.key){case"Control":t.ctrl=!1;break;case"Meta":t.command=!1,t.win=!1;break;case"Shift":t.shift=!1;break;case"Tab":t.tab=!1;break}u!==void 0&&Object.keys(u).forEach(d=>{if(d!==a.key)return;const m=u[d];if(typeof m=="function")m(a);else{const{stop:j=!1,prevent:D=!1}=m;j&&a.stopPropagation(),D&&a.preventDefault(),m.handler(a)}})},l=()=>{(n===void 0||n.value)&&(h("keydown",document,i),h("keyup",document,s)),n!==void 0&&q(n,a=>{a?(h("keydown",document,i),h("keyup",document,s)):(v("keydown",document,i),v("keyup",document,s))})};return I()?(B(l),g(()=>{(n===void 0||n.value)&&(v("keydown",document,i),v("keyup",document,s))})):l(),c(t)}export{re as a,oe as b,se as c,fe as d,ie as e,te as f,le as g,N as h,ue as i,ae as j,ne as o,ee as u}; diff --git a/web/dist/assets/vue-router-8af5a3a6.js b/web/dist/assets/vue-router-29e6667f.js similarity index 99% rename from web/dist/assets/vue-router-8af5a3a6.js rename to web/dist/assets/vue-router-29e6667f.js index 32cd4692..9d39a781 100644 --- a/web/dist/assets/vue-router-8af5a3a6.js +++ b/web/dist/assets/vue-router-29e6667f.js @@ -1,4 +1,4 @@ -import{Y as tt,Z as F,n as N,D as Be,y as nt,i as B,d as qe,s as ze,p as ae,r as rt,w as st}from"./@vue-b8d06722.js";/*! +import{Y as tt,Z as F,n as N,D as Be,y as nt,i as B,d as qe,s as ze,p as ae,r as rt,w as st}from"./@vue-d002002f.js";/*! * vue-router v4.1.6 * (c) 2022 Eduardo San Martin Morote * @license MIT diff --git a/web/dist/assets/vueuc-556279b6.js b/web/dist/assets/vueuc-0232e3b9.js similarity index 99% rename from web/dist/assets/vueuc-556279b6.js rename to web/dist/assets/vueuc-0232e3b9.js index 7023f354..57657ec1 100644 --- a/web/dist/assets/vueuc-556279b6.js +++ b/web/dist/assets/vueuc-0232e3b9.js @@ -1 +1 @@ -import{a as q,o as se}from"./evtd-b614532e.js";import{j as Me,d as ce,p as G,e as Ce,g as Le}from"./seemly-76b7b838.js";import{e as He,F as Se,C as Ve,d as k,p as Ye,g as Te,i as fe,r as F,h as R,z as ze,u as Z,n as D,s as E,J as Xe,j as K,w as U,y as Ee,S as Ae,l as De,m as Ne,x as _e}from"./@vue-b8d06722.js";import{u as ee}from"./@css-render-4f82e6dd.js";import{h as je,u as ue,o as Pe,i as Ue}from"./vooks-423a5f30.js";import{z as qe}from"./vdirs-b0483831.js";import{R as Ke}from"./@juggle-41516555.js";import{C as Ge}from"./css-render-6a5c5852.js";function ae(n,e,t="default"){const r=e[t];if(r===void 0)throw new Error(`[vueuc/${n}]: slot[${t}] is empty.`);return r()}function de(n,e=!0,t=[]){return n.forEach(r=>{if(r!==null){if(typeof r!="object"){(typeof r=="string"||typeof r=="number")&&t.push(He(String(r)));return}if(Array.isArray(r)){de(r,e,t);return}if(r.type===Se){if(r.children===null)return;Array.isArray(r.children)&&de(r.children,e,t)}else r.type!==Ve&&t.push(r)}}),t}function he(n,e,t="default"){const r=e[t];if(r===void 0)throw new Error(`[vueuc/${n}]: slot[${t}] is empty.`);const o=de(r());if(o.length===1)return o[0];throw new Error(`[vueuc/${n}]: slot[${t}] should have exactly one child.`)}let H=null;function Fe(){if(H===null&&(H=document.getElementById("v-binder-view-measurer"),H===null)){H=document.createElement("div"),H.id="v-binder-view-measurer";const{style:n}=H;n.position="fixed",n.left="0",n.right="0",n.top="0",n.bottom="0",n.pointerEvents="none",n.visibility="hidden",document.body.appendChild(H)}return H.getBoundingClientRect()}function Je(n,e){const t=Fe();return{top:e,left:n,height:0,width:0,right:t.width-n,bottom:t.height-e}}function oe(n){const e=n.getBoundingClientRect(),t=Fe();return{left:e.left-t.left,top:e.top-t.top,bottom:t.height+t.top-e.bottom,right:t.width+t.left-e.right,width:e.width,height:e.height}}function Qe(n){return n.nodeType===9?null:n.parentNode}function Be(n){if(n===null)return null;const e=Qe(n);if(e===null)return null;if(e.nodeType===9)return document;if(e.nodeType===1){const{overflow:t,overflowX:r,overflowY:o}=getComputedStyle(e);if(/(auto|scroll|overlay)/.test(t+o+r))return e}return Be(e)}const Ze=k({name:"Binder",props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(n){var e;Ye("VBinder",(e=Te())===null||e===void 0?void 0:e.proxy);const t=fe("VBinder",null),r=F(null),o=i=>{r.value=i,t&&n.syncTargetWithParent&&t.setTargetRef(i)};let l=[];const p=()=>{let i=r.value;for(;i=Be(i),i!==null;)l.push(i);for(const b of l)se("scroll",b,x,!0)},g=()=>{for(const i of l)q("scroll",i,x,!0);l=[]},a=new Set,m=i=>{a.size===0&&p(),a.has(i)||a.add(i)},y=i=>{a.has(i)&&a.delete(i),a.size===0&&g()},x=()=>{Me(d)},d=()=>{a.forEach(i=>i())},c=new Set,v=i=>{c.size===0&&se("resize",window,u),c.has(i)||c.add(i)},h=i=>{c.has(i)&&c.delete(i),c.size===0&&q("resize",window,u)},u=()=>{c.forEach(i=>i())};return R(()=>{q("resize",window,u),g()}),{targetRef:r,setTargetRef:o,addScrollListener:m,removeScrollListener:y,addResizeListener:v,removeResizeListener:h}},render(){return ae("binder",this.$slots)}}),$t=Ze,Mt=k({name:"Target",setup(){const{setTargetRef:n,syncTarget:e}=fe("VBinder");return{syncTarget:e,setTargetDirective:{mounted:n,updated:n}}},render(){const{syncTarget:n,setTargetDirective:e}=this;return n?ze(he("follower",this.$slots),[[e]]):he("follower",this.$slots)}});function pe(n,e){console.error(`[vueuc/${n}]: ${e}`)}const{c:W}=Ge(),te="vueuc-style";function me(n){return n&-n}class Re{constructor(e,t){this.l=e,this.min=t;const r=new Array(e+1);for(let o=0;oo)throw new Error("[FinweckTree.sum]: `i` is larger than length.");let l=e*r;for(;e>0;)l+=t[e],e-=me(e);return l}getBound(e){let t=0,r=this.l;for(;r>t;){const o=Math.floor((t+r)/2),l=this.sum(o);if(l>e){r=o;continue}else if(l{const{to:e}=n;return e??"body"})}},render(){return this.showTeleport?this.disabled?ae("lazy-teleport",this.$slots):E(Xe,{disabled:this.disabled,to:this.mergedTo},ae("lazy-teleport",this.$slots)):null}}),J={top:"bottom",bottom:"top",left:"right",right:"left"},be={start:"end",center:"center",end:"start"},ie={top:"height",bottom:"height",left:"width",right:"width"},tt={"bottom-start":"top left",bottom:"top center","bottom-end":"top right","top-start":"bottom left",top:"bottom center","top-end":"bottom right","right-start":"top left",right:"center left","right-end":"bottom left","left-start":"top right",left:"center right","left-end":"bottom right"},nt={"bottom-start":"bottom left",bottom:"bottom center","bottom-end":"bottom right","top-start":"top left",top:"top center","top-end":"top right","right-start":"top right",right:"center right","right-end":"bottom right","left-start":"top left",left:"center left","left-end":"bottom left"},rt={"bottom-start":"right","bottom-end":"left","top-start":"right","top-end":"left","right-start":"bottom","right-end":"top","left-start":"bottom","left-end":"top"},ge={top:!0,bottom:!1,left:!0,right:!1},we={top:"end",bottom:"start",left:"end",right:"start"};function ot(n,e,t,r,o,l){if(!o||l)return{placement:n,top:0,left:0};const[p,g]=n.split("-");let a=g??"center",m={top:0,left:0};const y=(c,v,h)=>{let u=0,i=0;const b=t[c]-e[v]-e[c];return b>0&&r&&(h?i=ge[v]?b:-b:u=ge[v]?b:-b),{left:u,top:i}},x=p==="left"||p==="right";if(a!=="center"){const c=rt[n],v=J[c],h=ie[c];if(t[h]>e[h]){if(e[c]+e[h]e[v]&&(a=be[g])}else{const c=p==="bottom"||p==="top"?"left":"top",v=J[c],h=ie[c],u=(t[h]-e[h])/2;(e[c]e[v]?(a=we[c],m=y(h,c,x)):(a=we[v],m=y(h,v,x)))}let d=p;return e[p] *",{pointerEvents:"all"})])]),St=k({name:"Follower",inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:"bottom"},syncTrigger:{type:Array,default:["resize","scroll"]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(n){const e=fe("VBinder"),t=ue(()=>n.enabled!==void 0?n.enabled:n.show),r=F(null),o=F(null),l=()=>{const{syncTrigger:d}=n;d.includes("scroll")&&e.addScrollListener(a),d.includes("resize")&&e.addResizeListener(a)},p=()=>{e.removeScrollListener(a),e.removeResizeListener(a)};K(()=>{t.value&&(a(),l())});const g=ee();st.mount({id:"vueuc/binder",head:!0,anchorMetaName:te,ssr:g}),R(()=>{p()}),Pe(()=>{t.value&&a()});const a=()=>{if(!t.value)return;const d=r.value;if(d===null)return;const c=e.targetRef,{x:v,y:h,overlap:u}=n,i=v!==void 0&&h!==void 0?Je(v,h):oe(c);d.style.setProperty("--v-target-width",`${Math.round(i.width)}px`),d.style.setProperty("--v-target-height",`${Math.round(i.height)}px`);const{width:b,minWidth:z,placement:I,internalShift:C,flip:O}=n;d.setAttribute("v-placement",I),u?d.setAttribute("v-overlap",""):d.removeAttribute("v-overlap");const{style:B}=d;b==="target"?B.width=`${i.width}px`:b!==void 0?B.width=b:B.width="",z==="target"?B.minWidth=`${i.width}px`:z!==void 0?B.minWidth=z:B.minWidth="";const X=oe(d),N=oe(o.value),{left:_,top:s,placement:f}=ot(I,i,X,C,O,u),w=it(f,u),{left:$,top:M,transform:T}=lt(f,N,i,s,_,u);d.setAttribute("v-placement",f),d.style.setProperty("--v-offset-left",`${Math.round(_)}px`),d.style.setProperty("--v-offset-top",`${Math.round(s)}px`),d.style.transform=`translateX(${$}) translateY(${M}) ${T}`,d.style.setProperty("--v-transform-origin",w),d.style.transformOrigin=w};U(t,d=>{d?(l(),m()):p()});const m=()=>{Ee().then(a).catch(d=>console.error(d))};["placement","x","y","internalShift","flip","width","overlap","minWidth"].forEach(d=>{U(Z(n,d),a)}),["teleportDisabled"].forEach(d=>{U(Z(n,d),m)}),U(Z(n,"syncTrigger"),d=>{d.includes("resize")?e.addResizeListener(a):e.removeResizeListener(a),d.includes("scroll")?e.addScrollListener(a):e.removeScrollListener(a)});const y=Ue(),x=ue(()=>{const{to:d}=n;if(d!==void 0)return d;y.value});return{VBinder:e,mergedEnabled:t,offsetContainerRef:o,followerRef:r,mergedTo:x,syncPosition:a}},render(){return E(et,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var n,e;const t=E("div",{class:["v-binder-follower-container",this.containerClass],ref:"offsetContainerRef"},[E("div",{class:"v-binder-follower-content",ref:"followerRef"},(e=(n=this.$slots).default)===null||e===void 0?void 0:e.call(n))]);return this.zindexable?ze(t,[[qe,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):t}})}});class ut{constructor(){this.handleResize=this.handleResize.bind(this),this.observer=new(typeof window<"u"&&window.ResizeObserver||Ke)(this.handleResize),this.elHandlersMap=new Map}handleResize(e){for(const t of e){const r=this.elHandlersMap.get(t.target);r!==void 0&&r(t)}}registerHandler(e,t){this.elHandlersMap.set(e,t),this.observer.observe(e)}unregisterHandler(e){this.elHandlersMap.has(e)&&(this.elHandlersMap.delete(e),this.observer.unobserve(e))}}const ye=new ut,xe=k({name:"ResizeObserver",props:{onResize:Function},setup(n){let e=!1;const t=Te().proxy;function r(o){const{onResize:l}=n;l!==void 0&&l(o)}K(()=>{const o=t.$el;if(o===void 0){pe("resize-observer","$el does not exist.");return}if(o.nextElementSibling!==o.nextSibling&&o.nodeType===3&&o.nodeValue!==""){pe("resize-observer","$el can not be observed (it may be a text node).");return}o.nextElementSibling!==null&&(ye.registerHandler(o.nextElementSibling,r),e=!0)}),R(()=>{e&&ye.unregisterHandler(t.$el.nextElementSibling)})},render(){return Ae(this.$slots,"default")}});let Q;function at(){return Q===void 0&&("matchMedia"in window?Q=window.matchMedia("(pointer:coarse)").matches:Q=!1),Q}let le;function $e(){return le===void 0&&(le="chrome"in window?window.devicePixelRatio:1),le}const dt=W(".v-vl",{maxHeight:"inherit",height:"100%",overflow:"auto",minWidth:"1px"},[W("&:not(.v-vl--show-scrollbar)",{scrollbarWidth:"none"},[W("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",{width:0,height:0,display:"none"})])]),Tt=k({name:"VirtualList",inheritAttrs:!1,props:{showScrollbar:{type:Boolean,default:!0},items:{type:Array,default:()=>[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:"div"},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:"key"},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(n){const e=ee();dt.mount({id:"vueuc/virtual-list",head:!0,anchorMetaName:te,ssr:e}),K(()=>{const{defaultScrollIndex:s,defaultScrollKey:f}=n;s!=null?v({index:s}):f!=null&&v({key:f})});let t=!1,r=!1;De(()=>{if(t=!1,!r){r=!0;return}v({top:x.value,left:y})}),Ne(()=>{t=!0,r||(r=!0)});const o=D(()=>{const s=new Map,{keyField:f}=n;return n.items.forEach((w,$)=>{s.set(w[f],$)}),s}),l=F(null),p=F(void 0),g=new Map,a=D(()=>{const{items:s,itemSize:f,keyField:w}=n,$=new Re(s.length,f);return s.forEach((M,T)=>{const S=M[w],A=g.get(S);A!==void 0&&$.add(T,A)}),$}),m=F(0);let y=0;const x=F(0),d=ue(()=>Math.max(a.value.getBound(x.value-ce(n.paddingTop))-1,0)),c=D(()=>{const{value:s}=p;if(s===void 0)return[];const{items:f,itemSize:w}=n,$=d.value,M=Math.min($+Math.ceil(s/w+1),f.length-1),T=[];for(let S=$;S<=M;++S)T.push(f[S]);return T}),v=(s,f)=>{if(typeof s=="number"){b(s,f,"auto");return}const{left:w,top:$,index:M,key:T,position:S,behavior:A,debounce:L=!0}=s;if(w!==void 0||$!==void 0)b(w,$,A);else if(M!==void 0)i(M,A,L);else if(T!==void 0){const ne=o.value.get(T);ne!==void 0&&i(ne,A,L)}else S==="bottom"?b(0,Number.MAX_SAFE_INTEGER,A):S==="top"&&b(0,0,A)};let h,u=null;function i(s,f,w){const{value:$}=a,M=$.sum(s)+ce(n.paddingTop);if(!w)l.value.scrollTo({left:0,top:M,behavior:f});else{h=s,u!==null&&window.clearTimeout(u),u=window.setTimeout(()=>{h=void 0,u=null},16);const{scrollTop:T,offsetHeight:S}=l.value;if(M>T){const A=$.get(s);M+A<=T+S||l.value.scrollTo({left:0,top:M+A-S,behavior:f})}else l.value.scrollTo({left:0,top:M,behavior:f})}}function b(s,f,w){l.value.scrollTo({left:s,top:f,behavior:w})}function z(s,f){var w,$,M;if(t||n.ignoreItemResize||_(f.target))return;const{value:T}=a,S=o.value.get(s),A=T.get(S),L=(M=($=(w=f.borderBoxSize)===null||w===void 0?void 0:w[0])===null||$===void 0?void 0:$.blockSize)!==null&&M!==void 0?M:f.contentRect.height;if(L===A)return;L-n.itemSize===0?g.delete(s):g.set(s,L-n.itemSize);const j=L-A;if(j===0)return;T.add(S,j);const V=l.value;if(V!=null){if(h===void 0){const re=T.sum(S);V.scrollTop>re&&V.scrollBy(0,j)}else if(SV.scrollTop+V.offsetHeight&&V.scrollBy(0,j)}N()}m.value++}const I=!at();let C=!1;function O(s){var f;(f=n.onScroll)===null||f===void 0||f.call(n,s),(!I||!C)&&N()}function B(s){var f;if((f=n.onWheel)===null||f===void 0||f.call(n,s),I){const w=l.value;if(w!=null){if(s.deltaX===0&&(w.scrollTop===0&&s.deltaY<=0||w.scrollTop+w.offsetHeight>=w.scrollHeight&&s.deltaY>=0))return;s.preventDefault(),w.scrollTop+=s.deltaY/$e(),w.scrollLeft+=s.deltaX/$e(),N(),C=!0,Me(()=>{C=!1})}}}function X(s){if(t||_(s.target)||s.contentRect.height===p.value)return;p.value=s.contentRect.height;const{onResize:f}=n;f!==void 0&&f(s)}function N(){const{value:s}=l;s!=null&&(x.value=s.scrollTop,y=s.scrollLeft)}function _(s){let f=s;for(;f!==null;){if(f.style.display==="none")return!0;f=f.parentElement}return!1}return{listHeight:p,listStyle:{overflow:"auto"},keyToIndex:o,itemsStyle:D(()=>{const{itemResizable:s}=n,f=G(a.value.sum());return m.value,[n.itemsStyle,{boxSizing:"content-box",height:s?"":f,minHeight:s?f:"",paddingTop:G(n.paddingTop),paddingBottom:G(n.paddingBottom)}]}),visibleItemsStyle:D(()=>(m.value,{transform:`translateY(${G(a.value.sum(d.value))})`})),viewportItems:c,listElRef:l,itemsElRef:F(null),scrollTo:v,handleListResize:X,handleListScroll:O,handleListWheel:B,handleItemResize:z}},render(){const{itemResizable:n,keyField:e,keyToIndex:t,visibleItemsTag:r}=this;return E(xe,{onResize:this.handleListResize},{default:()=>{var o,l;return E("div",_e(this.$attrs,{class:["v-vl",this.showScrollbar&&"v-vl--show-scrollbar"],onScroll:this.handleListScroll,onWheel:this.handleListWheel,ref:"listElRef"}),[this.items.length!==0?E("div",{ref:"itemsElRef",class:"v-vl-items",style:this.itemsStyle},[E(r,Object.assign({class:"v-vl-visible-items",style:this.visibleItemsStyle},this.visibleItemsProps),{default:()=>this.viewportItems.map(p=>{const g=p[e],a=t.get(g),m=this.$slots.default({item:p,index:a})[0];return n?E(xe,{key:g,onResize:y=>this.handleItemResize(g,y)},{default:()=>m}):(m.key=g,m)})})]):(l=(o=this.$slots).empty)===null||l===void 0?void 0:l.call(o)])}})}}),ft=W(".v-x-scroll",{overflow:"auto",scrollbarWidth:"none"},[W("&::-webkit-scrollbar",{width:0,height:0})]),zt=k({name:"XScroll",props:{disabled:Boolean,onScroll:Function},setup(){const n=F(null);function e(o){!(o.currentTarget.offsetWidthx){const{updateCounter:C}=n;for(let O=b;O>=0;--O){const B=u-1-O;C!==void 0?C(B):m.textContent=`${B}`;const X=m.offsetWidth;if(v-=d[O],v+X<=x||O===0){h=!0,b=O-1,c&&(b===-1?(c.style.maxWidth=`${x-X}px`,c.style.boxSizing="border-box"):c.style.maxWidth="");break}}}}const{onUpdateOverflow:i}=n;h?i!==void 0&&i(!0):(i!==void 0&&i(!1),m.setAttribute(Y,""))}const l=ee();return ct.mount({id:"vueuc/overflow",head:!0,anchorMetaName:te,ssr:l}),K(o),{selfRef:t,counterRef:r,sync:o}},render(){const{$slots:n}=this;return Ee(this.sync),E("div",{class:"v-overflow",ref:"selfRef"},[Ae(n,"default"),n.counter?n.counter():E("span",{style:{display:"inline-block"},ref:"counterRef"}),n.tail?n.tail():null])}});function Ie(n){return n instanceof HTMLElement}function Oe(n){for(let e=0;e=0;e--){const t=n.childNodes[e];if(Ie(t)&&(ke(t)||We(t)))return!0}return!1}function ke(n){if(!ht(n))return!1;try{n.focus({preventScroll:!0})}catch{}return document.activeElement===n}function ht(n){if(n.tabIndex>0||n.tabIndex===0&&n.getAttribute("tabIndex")!==null)return!0;if(n.getAttribute("disabled"))return!1;switch(n.nodeName){case"A":return!!n.href&&n.rel!=="ignore";case"INPUT":return n.type!=="hidden"&&n.type!=="file";case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}}let P=[];const At=k({name:"FocusTrap",props:{disabled:Boolean,active:Boolean,autoFocus:{type:Boolean,default:!0},onEsc:Function,initialFocusTo:String,finalFocusTo:String,returnFocusOnDeactivated:{type:Boolean,default:!0}},setup(n){const e=Ce(),t=F(null),r=F(null);let o=!1,l=!1;const p=typeof document>"u"?null:document.activeElement;function g(){return P[P.length-1]===e}function a(u){var i;u.code==="Escape"&&g()&&((i=n.onEsc)===null||i===void 0||i.call(n,u))}K(()=>{U(()=>n.active,u=>{u?(x(),se("keydown",document,a)):(q("keydown",document,a),o&&d())},{immediate:!0})}),R(()=>{q("keydown",document,a),o&&d()});function m(u){if(!l&&g()){const i=y();if(i===null||i.contains(Le(u)))return;c("first")}}function y(){const u=t.value;if(u===null)return null;let i=u;for(;i=i.nextSibling,!(i===null||i instanceof Element&&i.tagName==="DIV"););return i}function x(){var u;if(!n.disabled){if(P.push(e),n.autoFocus){const{initialFocusTo:i}=n;i===void 0?c("first"):(u=ve(i))===null||u===void 0||u.focus({preventScroll:!0})}o=!0,document.addEventListener("focus",m,!0)}}function d(){var u;if(n.disabled||(document.removeEventListener("focus",m,!0),P=P.filter(b=>b!==e),g()))return;const{finalFocusTo:i}=n;i!==void 0?(u=ve(i))===null||u===void 0||u.focus({preventScroll:!0}):n.returnFocusOnDeactivated&&p instanceof HTMLElement&&(l=!0,p.focus({preventScroll:!0}),l=!1)}function c(u){if(g()&&n.active){const i=t.value,b=r.value;if(i!==null&&b!==null){const z=y();if(z==null||z===b){l=!0,i.focus({preventScroll:!0}),l=!1;return}l=!0;const I=u==="first"?Oe(z):We(z);l=!1,I||(l=!0,i.focus({preventScroll:!0}),l=!1)}}}function v(u){if(l)return;const i=y();i!==null&&(u.relatedTarget!==null&&i.contains(u.relatedTarget)?c("last"):c("first"))}function h(u){l||(u.relatedTarget!==null&&u.relatedTarget===t.value?c("last"):c("first"))}return{focusableStartRef:t,focusableEndRef:r,focusableStyle:"position: absolute; height: 0; width: 0;",handleStartFocus:v,handleEndFocus:h}},render(){const{default:n}=this.$slots;if(n===void 0)return null;if(this.disabled)return n();const{active:e,focusableStyle:t}=this;return E(Se,null,[E("div",{"aria-hidden":"true",tabindex:e?"0":"-1",ref:"focusableStartRef",style:t,onFocus:this.handleStartFocus}),n(),E("div",{"aria-hidden":"true",style:t,ref:"focusableEndRef",tabindex:e?"0":"-1",onFocus:this.handleEndFocus})])}});export{At as F,et as L,xe as V,Tt as a,St as b,$t as c,Mt as d,Et as e,zt as f,ye as r}; +import{a as q,o as se}from"./evtd-b614532e.js";import{j as Me,d as ce,p as G,e as Ce,g as Le}from"./seemly-76b7b838.js";import{e as He,F as Se,C as Ve,d as k,p as Ye,g as Te,i as fe,r as F,h as R,z as ze,u as Z,n as D,s as E,J as Xe,j as K,w as U,y as Ee,S as Ae,l as De,m as Ne,x as _e}from"./@vue-d002002f.js";import{u as ee}from"./@css-render-6b6cdab1.js";import{h as je,u as ue,o as Pe,i as Ue}from"./vooks-77bdadbd.js";import{z as qe}from"./vdirs-b0483831.js";import{R as Ke}from"./@juggle-41516555.js";import{C as Ge}from"./css-render-6a5c5852.js";function ae(n,e,t="default"){const r=e[t];if(r===void 0)throw new Error(`[vueuc/${n}]: slot[${t}] is empty.`);return r()}function de(n,e=!0,t=[]){return n.forEach(r=>{if(r!==null){if(typeof r!="object"){(typeof r=="string"||typeof r=="number")&&t.push(He(String(r)));return}if(Array.isArray(r)){de(r,e,t);return}if(r.type===Se){if(r.children===null)return;Array.isArray(r.children)&&de(r.children,e,t)}else r.type!==Ve&&t.push(r)}}),t}function he(n,e,t="default"){const r=e[t];if(r===void 0)throw new Error(`[vueuc/${n}]: slot[${t}] is empty.`);const o=de(r());if(o.length===1)return o[0];throw new Error(`[vueuc/${n}]: slot[${t}] should have exactly one child.`)}let H=null;function Fe(){if(H===null&&(H=document.getElementById("v-binder-view-measurer"),H===null)){H=document.createElement("div"),H.id="v-binder-view-measurer";const{style:n}=H;n.position="fixed",n.left="0",n.right="0",n.top="0",n.bottom="0",n.pointerEvents="none",n.visibility="hidden",document.body.appendChild(H)}return H.getBoundingClientRect()}function Je(n,e){const t=Fe();return{top:e,left:n,height:0,width:0,right:t.width-n,bottom:t.height-e}}function oe(n){const e=n.getBoundingClientRect(),t=Fe();return{left:e.left-t.left,top:e.top-t.top,bottom:t.height+t.top-e.bottom,right:t.width+t.left-e.right,width:e.width,height:e.height}}function Qe(n){return n.nodeType===9?null:n.parentNode}function Be(n){if(n===null)return null;const e=Qe(n);if(e===null)return null;if(e.nodeType===9)return document;if(e.nodeType===1){const{overflow:t,overflowX:r,overflowY:o}=getComputedStyle(e);if(/(auto|scroll|overlay)/.test(t+o+r))return e}return Be(e)}const Ze=k({name:"Binder",props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(n){var e;Ye("VBinder",(e=Te())===null||e===void 0?void 0:e.proxy);const t=fe("VBinder",null),r=F(null),o=i=>{r.value=i,t&&n.syncTargetWithParent&&t.setTargetRef(i)};let l=[];const p=()=>{let i=r.value;for(;i=Be(i),i!==null;)l.push(i);for(const b of l)se("scroll",b,x,!0)},g=()=>{for(const i of l)q("scroll",i,x,!0);l=[]},a=new Set,m=i=>{a.size===0&&p(),a.has(i)||a.add(i)},y=i=>{a.has(i)&&a.delete(i),a.size===0&&g()},x=()=>{Me(d)},d=()=>{a.forEach(i=>i())},c=new Set,v=i=>{c.size===0&&se("resize",window,u),c.has(i)||c.add(i)},h=i=>{c.has(i)&&c.delete(i),c.size===0&&q("resize",window,u)},u=()=>{c.forEach(i=>i())};return R(()=>{q("resize",window,u),g()}),{targetRef:r,setTargetRef:o,addScrollListener:m,removeScrollListener:y,addResizeListener:v,removeResizeListener:h}},render(){return ae("binder",this.$slots)}}),$t=Ze,Mt=k({name:"Target",setup(){const{setTargetRef:n,syncTarget:e}=fe("VBinder");return{syncTarget:e,setTargetDirective:{mounted:n,updated:n}}},render(){const{syncTarget:n,setTargetDirective:e}=this;return n?ze(he("follower",this.$slots),[[e]]):he("follower",this.$slots)}});function pe(n,e){console.error(`[vueuc/${n}]: ${e}`)}const{c:W}=Ge(),te="vueuc-style";function me(n){return n&-n}class Re{constructor(e,t){this.l=e,this.min=t;const r=new Array(e+1);for(let o=0;oo)throw new Error("[FinweckTree.sum]: `i` is larger than length.");let l=e*r;for(;e>0;)l+=t[e],e-=me(e);return l}getBound(e){let t=0,r=this.l;for(;r>t;){const o=Math.floor((t+r)/2),l=this.sum(o);if(l>e){r=o;continue}else if(l{const{to:e}=n;return e??"body"})}},render(){return this.showTeleport?this.disabled?ae("lazy-teleport",this.$slots):E(Xe,{disabled:this.disabled,to:this.mergedTo},ae("lazy-teleport",this.$slots)):null}}),J={top:"bottom",bottom:"top",left:"right",right:"left"},be={start:"end",center:"center",end:"start"},ie={top:"height",bottom:"height",left:"width",right:"width"},tt={"bottom-start":"top left",bottom:"top center","bottom-end":"top right","top-start":"bottom left",top:"bottom center","top-end":"bottom right","right-start":"top left",right:"center left","right-end":"bottom left","left-start":"top right",left:"center right","left-end":"bottom right"},nt={"bottom-start":"bottom left",bottom:"bottom center","bottom-end":"bottom right","top-start":"top left",top:"top center","top-end":"top right","right-start":"top right",right:"center right","right-end":"bottom right","left-start":"top left",left:"center left","left-end":"bottom left"},rt={"bottom-start":"right","bottom-end":"left","top-start":"right","top-end":"left","right-start":"bottom","right-end":"top","left-start":"bottom","left-end":"top"},ge={top:!0,bottom:!1,left:!0,right:!1},we={top:"end",bottom:"start",left:"end",right:"start"};function ot(n,e,t,r,o,l){if(!o||l)return{placement:n,top:0,left:0};const[p,g]=n.split("-");let a=g??"center",m={top:0,left:0};const y=(c,v,h)=>{let u=0,i=0;const b=t[c]-e[v]-e[c];return b>0&&r&&(h?i=ge[v]?b:-b:u=ge[v]?b:-b),{left:u,top:i}},x=p==="left"||p==="right";if(a!=="center"){const c=rt[n],v=J[c],h=ie[c];if(t[h]>e[h]){if(e[c]+e[h]e[v]&&(a=be[g])}else{const c=p==="bottom"||p==="top"?"left":"top",v=J[c],h=ie[c],u=(t[h]-e[h])/2;(e[c]e[v]?(a=we[c],m=y(h,c,x)):(a=we[v],m=y(h,v,x)))}let d=p;return e[p] *",{pointerEvents:"all"})])]),St=k({name:"Follower",inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:"bottom"},syncTrigger:{type:Array,default:["resize","scroll"]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(n){const e=fe("VBinder"),t=ue(()=>n.enabled!==void 0?n.enabled:n.show),r=F(null),o=F(null),l=()=>{const{syncTrigger:d}=n;d.includes("scroll")&&e.addScrollListener(a),d.includes("resize")&&e.addResizeListener(a)},p=()=>{e.removeScrollListener(a),e.removeResizeListener(a)};K(()=>{t.value&&(a(),l())});const g=ee();st.mount({id:"vueuc/binder",head:!0,anchorMetaName:te,ssr:g}),R(()=>{p()}),Pe(()=>{t.value&&a()});const a=()=>{if(!t.value)return;const d=r.value;if(d===null)return;const c=e.targetRef,{x:v,y:h,overlap:u}=n,i=v!==void 0&&h!==void 0?Je(v,h):oe(c);d.style.setProperty("--v-target-width",`${Math.round(i.width)}px`),d.style.setProperty("--v-target-height",`${Math.round(i.height)}px`);const{width:b,minWidth:z,placement:I,internalShift:C,flip:O}=n;d.setAttribute("v-placement",I),u?d.setAttribute("v-overlap",""):d.removeAttribute("v-overlap");const{style:B}=d;b==="target"?B.width=`${i.width}px`:b!==void 0?B.width=b:B.width="",z==="target"?B.minWidth=`${i.width}px`:z!==void 0?B.minWidth=z:B.minWidth="";const X=oe(d),N=oe(o.value),{left:_,top:s,placement:f}=ot(I,i,X,C,O,u),w=it(f,u),{left:$,top:M,transform:T}=lt(f,N,i,s,_,u);d.setAttribute("v-placement",f),d.style.setProperty("--v-offset-left",`${Math.round(_)}px`),d.style.setProperty("--v-offset-top",`${Math.round(s)}px`),d.style.transform=`translateX(${$}) translateY(${M}) ${T}`,d.style.setProperty("--v-transform-origin",w),d.style.transformOrigin=w};U(t,d=>{d?(l(),m()):p()});const m=()=>{Ee().then(a).catch(d=>console.error(d))};["placement","x","y","internalShift","flip","width","overlap","minWidth"].forEach(d=>{U(Z(n,d),a)}),["teleportDisabled"].forEach(d=>{U(Z(n,d),m)}),U(Z(n,"syncTrigger"),d=>{d.includes("resize")?e.addResizeListener(a):e.removeResizeListener(a),d.includes("scroll")?e.addScrollListener(a):e.removeScrollListener(a)});const y=Ue(),x=ue(()=>{const{to:d}=n;if(d!==void 0)return d;y.value});return{VBinder:e,mergedEnabled:t,offsetContainerRef:o,followerRef:r,mergedTo:x,syncPosition:a}},render(){return E(et,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var n,e;const t=E("div",{class:["v-binder-follower-container",this.containerClass],ref:"offsetContainerRef"},[E("div",{class:"v-binder-follower-content",ref:"followerRef"},(e=(n=this.$slots).default)===null||e===void 0?void 0:e.call(n))]);return this.zindexable?ze(t,[[qe,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):t}})}});class ut{constructor(){this.handleResize=this.handleResize.bind(this),this.observer=new(typeof window<"u"&&window.ResizeObserver||Ke)(this.handleResize),this.elHandlersMap=new Map}handleResize(e){for(const t of e){const r=this.elHandlersMap.get(t.target);r!==void 0&&r(t)}}registerHandler(e,t){this.elHandlersMap.set(e,t),this.observer.observe(e)}unregisterHandler(e){this.elHandlersMap.has(e)&&(this.elHandlersMap.delete(e),this.observer.unobserve(e))}}const ye=new ut,xe=k({name:"ResizeObserver",props:{onResize:Function},setup(n){let e=!1;const t=Te().proxy;function r(o){const{onResize:l}=n;l!==void 0&&l(o)}K(()=>{const o=t.$el;if(o===void 0){pe("resize-observer","$el does not exist.");return}if(o.nextElementSibling!==o.nextSibling&&o.nodeType===3&&o.nodeValue!==""){pe("resize-observer","$el can not be observed (it may be a text node).");return}o.nextElementSibling!==null&&(ye.registerHandler(o.nextElementSibling,r),e=!0)}),R(()=>{e&&ye.unregisterHandler(t.$el.nextElementSibling)})},render(){return Ae(this.$slots,"default")}});let Q;function at(){return Q===void 0&&("matchMedia"in window?Q=window.matchMedia("(pointer:coarse)").matches:Q=!1),Q}let le;function $e(){return le===void 0&&(le="chrome"in window?window.devicePixelRatio:1),le}const dt=W(".v-vl",{maxHeight:"inherit",height:"100%",overflow:"auto",minWidth:"1px"},[W("&:not(.v-vl--show-scrollbar)",{scrollbarWidth:"none"},[W("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",{width:0,height:0,display:"none"})])]),Tt=k({name:"VirtualList",inheritAttrs:!1,props:{showScrollbar:{type:Boolean,default:!0},items:{type:Array,default:()=>[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:"div"},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:"key"},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(n){const e=ee();dt.mount({id:"vueuc/virtual-list",head:!0,anchorMetaName:te,ssr:e}),K(()=>{const{defaultScrollIndex:s,defaultScrollKey:f}=n;s!=null?v({index:s}):f!=null&&v({key:f})});let t=!1,r=!1;De(()=>{if(t=!1,!r){r=!0;return}v({top:x.value,left:y})}),Ne(()=>{t=!0,r||(r=!0)});const o=D(()=>{const s=new Map,{keyField:f}=n;return n.items.forEach((w,$)=>{s.set(w[f],$)}),s}),l=F(null),p=F(void 0),g=new Map,a=D(()=>{const{items:s,itemSize:f,keyField:w}=n,$=new Re(s.length,f);return s.forEach((M,T)=>{const S=M[w],A=g.get(S);A!==void 0&&$.add(T,A)}),$}),m=F(0);let y=0;const x=F(0),d=ue(()=>Math.max(a.value.getBound(x.value-ce(n.paddingTop))-1,0)),c=D(()=>{const{value:s}=p;if(s===void 0)return[];const{items:f,itemSize:w}=n,$=d.value,M=Math.min($+Math.ceil(s/w+1),f.length-1),T=[];for(let S=$;S<=M;++S)T.push(f[S]);return T}),v=(s,f)=>{if(typeof s=="number"){b(s,f,"auto");return}const{left:w,top:$,index:M,key:T,position:S,behavior:A,debounce:L=!0}=s;if(w!==void 0||$!==void 0)b(w,$,A);else if(M!==void 0)i(M,A,L);else if(T!==void 0){const ne=o.value.get(T);ne!==void 0&&i(ne,A,L)}else S==="bottom"?b(0,Number.MAX_SAFE_INTEGER,A):S==="top"&&b(0,0,A)};let h,u=null;function i(s,f,w){const{value:$}=a,M=$.sum(s)+ce(n.paddingTop);if(!w)l.value.scrollTo({left:0,top:M,behavior:f});else{h=s,u!==null&&window.clearTimeout(u),u=window.setTimeout(()=>{h=void 0,u=null},16);const{scrollTop:T,offsetHeight:S}=l.value;if(M>T){const A=$.get(s);M+A<=T+S||l.value.scrollTo({left:0,top:M+A-S,behavior:f})}else l.value.scrollTo({left:0,top:M,behavior:f})}}function b(s,f,w){l.value.scrollTo({left:s,top:f,behavior:w})}function z(s,f){var w,$,M;if(t||n.ignoreItemResize||_(f.target))return;const{value:T}=a,S=o.value.get(s),A=T.get(S),L=(M=($=(w=f.borderBoxSize)===null||w===void 0?void 0:w[0])===null||$===void 0?void 0:$.blockSize)!==null&&M!==void 0?M:f.contentRect.height;if(L===A)return;L-n.itemSize===0?g.delete(s):g.set(s,L-n.itemSize);const j=L-A;if(j===0)return;T.add(S,j);const V=l.value;if(V!=null){if(h===void 0){const re=T.sum(S);V.scrollTop>re&&V.scrollBy(0,j)}else if(SV.scrollTop+V.offsetHeight&&V.scrollBy(0,j)}N()}m.value++}const I=!at();let C=!1;function O(s){var f;(f=n.onScroll)===null||f===void 0||f.call(n,s),(!I||!C)&&N()}function B(s){var f;if((f=n.onWheel)===null||f===void 0||f.call(n,s),I){const w=l.value;if(w!=null){if(s.deltaX===0&&(w.scrollTop===0&&s.deltaY<=0||w.scrollTop+w.offsetHeight>=w.scrollHeight&&s.deltaY>=0))return;s.preventDefault(),w.scrollTop+=s.deltaY/$e(),w.scrollLeft+=s.deltaX/$e(),N(),C=!0,Me(()=>{C=!1})}}}function X(s){if(t||_(s.target)||s.contentRect.height===p.value)return;p.value=s.contentRect.height;const{onResize:f}=n;f!==void 0&&f(s)}function N(){const{value:s}=l;s!=null&&(x.value=s.scrollTop,y=s.scrollLeft)}function _(s){let f=s;for(;f!==null;){if(f.style.display==="none")return!0;f=f.parentElement}return!1}return{listHeight:p,listStyle:{overflow:"auto"},keyToIndex:o,itemsStyle:D(()=>{const{itemResizable:s}=n,f=G(a.value.sum());return m.value,[n.itemsStyle,{boxSizing:"content-box",height:s?"":f,minHeight:s?f:"",paddingTop:G(n.paddingTop),paddingBottom:G(n.paddingBottom)}]}),visibleItemsStyle:D(()=>(m.value,{transform:`translateY(${G(a.value.sum(d.value))})`})),viewportItems:c,listElRef:l,itemsElRef:F(null),scrollTo:v,handleListResize:X,handleListScroll:O,handleListWheel:B,handleItemResize:z}},render(){const{itemResizable:n,keyField:e,keyToIndex:t,visibleItemsTag:r}=this;return E(xe,{onResize:this.handleListResize},{default:()=>{var o,l;return E("div",_e(this.$attrs,{class:["v-vl",this.showScrollbar&&"v-vl--show-scrollbar"],onScroll:this.handleListScroll,onWheel:this.handleListWheel,ref:"listElRef"}),[this.items.length!==0?E("div",{ref:"itemsElRef",class:"v-vl-items",style:this.itemsStyle},[E(r,Object.assign({class:"v-vl-visible-items",style:this.visibleItemsStyle},this.visibleItemsProps),{default:()=>this.viewportItems.map(p=>{const g=p[e],a=t.get(g),m=this.$slots.default({item:p,index:a})[0];return n?E(xe,{key:g,onResize:y=>this.handleItemResize(g,y)},{default:()=>m}):(m.key=g,m)})})]):(l=(o=this.$slots).empty)===null||l===void 0?void 0:l.call(o)])}})}}),ft=W(".v-x-scroll",{overflow:"auto",scrollbarWidth:"none"},[W("&::-webkit-scrollbar",{width:0,height:0})]),zt=k({name:"XScroll",props:{disabled:Boolean,onScroll:Function},setup(){const n=F(null);function e(o){!(o.currentTarget.offsetWidthx){const{updateCounter:C}=n;for(let O=b;O>=0;--O){const B=u-1-O;C!==void 0?C(B):m.textContent=`${B}`;const X=m.offsetWidth;if(v-=d[O],v+X<=x||O===0){h=!0,b=O-1,c&&(b===-1?(c.style.maxWidth=`${x-X}px`,c.style.boxSizing="border-box"):c.style.maxWidth="");break}}}}const{onUpdateOverflow:i}=n;h?i!==void 0&&i(!0):(i!==void 0&&i(!1),m.setAttribute(Y,""))}const l=ee();return ct.mount({id:"vueuc/overflow",head:!0,anchorMetaName:te,ssr:l}),K(o),{selfRef:t,counterRef:r,sync:o}},render(){const{$slots:n}=this;return Ee(this.sync),E("div",{class:"v-overflow",ref:"selfRef"},[Ae(n,"default"),n.counter?n.counter():E("span",{style:{display:"inline-block"},ref:"counterRef"}),n.tail?n.tail():null])}});function Ie(n){return n instanceof HTMLElement}function Oe(n){for(let e=0;e=0;e--){const t=n.childNodes[e];if(Ie(t)&&(ke(t)||We(t)))return!0}return!1}function ke(n){if(!ht(n))return!1;try{n.focus({preventScroll:!0})}catch{}return document.activeElement===n}function ht(n){if(n.tabIndex>0||n.tabIndex===0&&n.getAttribute("tabIndex")!==null)return!0;if(n.getAttribute("disabled"))return!1;switch(n.nodeName){case"A":return!!n.href&&n.rel!=="ignore";case"INPUT":return n.type!=="hidden"&&n.type!=="file";case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}}let P=[];const At=k({name:"FocusTrap",props:{disabled:Boolean,active:Boolean,autoFocus:{type:Boolean,default:!0},onEsc:Function,initialFocusTo:String,finalFocusTo:String,returnFocusOnDeactivated:{type:Boolean,default:!0}},setup(n){const e=Ce(),t=F(null),r=F(null);let o=!1,l=!1;const p=typeof document>"u"?null:document.activeElement;function g(){return P[P.length-1]===e}function a(u){var i;u.code==="Escape"&&g()&&((i=n.onEsc)===null||i===void 0||i.call(n,u))}K(()=>{U(()=>n.active,u=>{u?(x(),se("keydown",document,a)):(q("keydown",document,a),o&&d())},{immediate:!0})}),R(()=>{q("keydown",document,a),o&&d()});function m(u){if(!l&&g()){const i=y();if(i===null||i.contains(Le(u)))return;c("first")}}function y(){const u=t.value;if(u===null)return null;let i=u;for(;i=i.nextSibling,!(i===null||i instanceof Element&&i.tagName==="DIV"););return i}function x(){var u;if(!n.disabled){if(P.push(e),n.autoFocus){const{initialFocusTo:i}=n;i===void 0?c("first"):(u=ve(i))===null||u===void 0||u.focus({preventScroll:!0})}o=!0,document.addEventListener("focus",m,!0)}}function d(){var u;if(n.disabled||(document.removeEventListener("focus",m,!0),P=P.filter(b=>b!==e),g()))return;const{finalFocusTo:i}=n;i!==void 0?(u=ve(i))===null||u===void 0||u.focus({preventScroll:!0}):n.returnFocusOnDeactivated&&p instanceof HTMLElement&&(l=!0,p.focus({preventScroll:!0}),l=!1)}function c(u){if(g()&&n.active){const i=t.value,b=r.value;if(i!==null&&b!==null){const z=y();if(z==null||z===b){l=!0,i.focus({preventScroll:!0}),l=!1;return}l=!0;const I=u==="first"?Oe(z):We(z);l=!1,I||(l=!0,i.focus({preventScroll:!0}),l=!1)}}}function v(u){if(l)return;const i=y();i!==null&&(u.relatedTarget!==null&&i.contains(u.relatedTarget)?c("last"):c("first"))}function h(u){l||(u.relatedTarget!==null&&u.relatedTarget===t.value?c("last"):c("first"))}return{focusableStartRef:t,focusableEndRef:r,focusableStyle:"position: absolute; height: 0; width: 0;",handleStartFocus:v,handleEndFocus:h}},render(){const{default:n}=this.$slots;if(n===void 0)return null;if(this.disabled)return n();const{active:e,focusableStyle:t}=this;return E(Se,null,[E("div",{"aria-hidden":"true",tabindex:e?"0":"-1",ref:"focusableStartRef",style:t,onFocus:this.handleStartFocus}),n(),E("div",{"aria-hidden":"true",style:t,ref:"focusableEndRef",tabindex:e?"0":"-1",onFocus:this.handleEndFocus})])}});export{At as F,et as L,xe as V,Tt as a,St as b,$t as c,Mt as d,Et as e,zt as f,ye as r}; diff --git a/web/dist/assets/vuex-613b371d.js b/web/dist/assets/vuex-4d2f7b35.js similarity index 99% rename from web/dist/assets/vuex-613b371d.js rename to web/dist/assets/vuex-4d2f7b35.js index d72cb9c5..29682410 100644 --- a/web/dist/assets/vuex-613b371d.js +++ b/web/dist/assets/vuex-4d2f7b35.js @@ -1,4 +1,4 @@ -import{w as M,_ as V,D as H,$ as U,i as k,n as B}from"./@vue-b8d06722.js";/*! +import{w as M,_ as V,D as H,$ as U,i as k,n as B}from"./@vue-d002002f.js";/*! * vuex v4.1.0 * (c) 2022 Evan You * @license MIT diff --git a/web/dist/index.html b/web/dist/index.html index 6a895dd7..599df57a 100644 --- a/web/dist/index.html +++ b/web/dist/index.html @@ -8,27 +8,27 @@ 泡泡 - - - - + + + + - - + + - + - - - + + + diff --git a/web/src/assets/css/main.less b/web/src/assets/css/main.less index d07f7fc5..5cde672f 100644 --- a/web/src/assets/css/main.less +++ b/web/src/assets/css/main.less @@ -1,6 +1,6 @@ :root { // 如果要变更中间栏的大小,修改此处即可 - --content-main: 544px; + --content-main: 600px; } .app-container { diff --git a/web/src/components/comment-item.vue b/web/src/components/comment-item.vue index 0d8956be..10c218f4 100644 --- a/web/src/components/comment-item.vue +++ b/web/src/components/comment-item.vue @@ -61,8 +61,7 @@ class="comment-text" @click.stop="doClickText($event, comment.id)" v-html="parsePostTag(content.content).content" - > - + >