add handle: addComment;addPackage storage:ListPackage;AddComment;AddPackage
This commit is contained in:
		
							
								
								
									
										13
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| .PHONY: build | ||||
| build: | ||||
| 	go build -o bin/app -mod=readonly ./main.go | ||||
|  | ||||
| .PHONY: test | ||||
| test: | ||||
| 	go test -v ./... -race -cover | ||||
|  | ||||
| .PHONY: lint | ||||
| lint: | ||||
| 	# Install the binary release of golangci-lint | ||||
| 	# https://github.com/golangci/golangci-lint#install | ||||
| 	golangci-lint run | ||||
| @@ -3,7 +3,7 @@ package main | ||||
| import ( | ||||
| 	"context" | ||||
|  | ||||
| 	"go.unistack.org/micro/v4/logger" | ||||
| 	"go.unistack.org/micro/v3/logger" | ||||
| 	"go.unistack.org/unistack-org/pkgdash/service" | ||||
| ) | ||||
|  | ||||
|   | ||||
							
								
								
									
										8
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								go.mod
									
									
									
									
									
								
							| @@ -8,15 +8,14 @@ require ( | ||||
| 	github.com/golang-migrate/migrate/v4 v4.15.1 | ||||
| 	github.com/google/uuid v1.3.0 | ||||
| 	github.com/jackc/pgtype v1.14.0 | ||||
| 	github.com/lib/pq v1.10.2 | ||||
| 	github.com/pkg/errors v0.9.1 | ||||
| 	go.unistack.org/cms-service v0.0.1 | ||||
| 	go.unistack.org/micro-client-http/v3 v3.9.3 | ||||
| 	go.unistack.org/micro-config-flag/v4 v4.0.1 | ||||
| 	go.unistack.org/micro-config-flag/v3 v3.8.9 | ||||
| 	go.unistack.org/micro-proto/v3 v3.3.1 | ||||
| 	go.unistack.org/micro-server-grpc/v3 v3.10.6 | ||||
| 	go.unistack.org/micro-server-http/v3 v3.11.6 | ||||
| 	go.unistack.org/micro/v3 v3.10.24 | ||||
| 	go.unistack.org/micro/v4 v4.0.1 | ||||
| 	golang.org/x/mod v0.12.0 | ||||
| 	golang.org/x/net v0.12.0 | ||||
| 	golang.org/x/sync v0.3.0 | ||||
| @@ -47,7 +46,7 @@ require ( | ||||
| 	github.com/jackc/pgproto3/v2 v2.3.2 // indirect | ||||
| 	github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect | ||||
| 	github.com/jackc/pgx/v4 v4.18.1 // indirect | ||||
| 	github.com/jackc/pgx/v5 v5.3.1 // indirect | ||||
| 	github.com/jackc/pgx/v5 v5.4.3 // indirect | ||||
| 	github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect | ||||
| 	github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect | ||||
| 	github.com/kevinburke/ssh_config v1.2.0 // indirect | ||||
| @@ -67,7 +66,6 @@ require ( | ||||
| 	go.unistack.org/micro-codec-yaml/v3 v3.10.0 // indirect | ||||
| 	go.unistack.org/micro-config-env/v3 v3.8.5 // indirect | ||||
| 	go.unistack.org/micro-config-file/v3 v3.8.3 // indirect | ||||
| 	go.unistack.org/micro-config-flag/v3 v3.8.9 // indirect | ||||
| 	go.unistack.org/micro-config-service/v3 v3.8.1 // indirect | ||||
| 	golang.org/x/crypto v0.11.0 // indirect | ||||
| 	golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect | ||||
|   | ||||
							
								
								
									
										500
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										500
									
								
								go.sum
									
									
									
									
									
								
							| @@ -23,345 +23,24 @@ cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAV | ||||
| cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= | ||||
| cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= | ||||
| cloud.google.com/go v0.88.0/go.mod h1:dnKwfYbP9hQhefiUvpbcAyoGSHUrOxR20JVElLiUvEY= | ||||
| cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= | ||||
| cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= | ||||
| cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= | ||||
| cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= | ||||
| cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= | ||||
| cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= | ||||
| cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= | ||||
| cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= | ||||
| cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= | ||||
| cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= | ||||
| cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= | ||||
| cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= | ||||
| cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= | ||||
| cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= | ||||
| cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= | ||||
| cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= | ||||
| cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= | ||||
| cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= | ||||
| cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= | ||||
| cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= | ||||
| cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= | ||||
| cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= | ||||
| cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= | ||||
| cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= | ||||
| cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= | ||||
| cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= | ||||
| cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= | ||||
| cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= | ||||
| cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= | ||||
| cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= | ||||
| cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= | ||||
| cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= | ||||
| cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= | ||||
| cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= | ||||
| cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= | ||||
| cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= | ||||
| cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= | ||||
| cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= | ||||
| cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= | ||||
| cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= | ||||
| cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= | ||||
| cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= | ||||
| cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= | ||||
| cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= | ||||
| cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= | ||||
| cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= | ||||
| cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= | ||||
| cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= | ||||
| cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= | ||||
| cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= | ||||
| cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= | ||||
| cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= | ||||
| cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= | ||||
| cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= | ||||
| cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= | ||||
| cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= | ||||
| cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= | ||||
| cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= | ||||
| cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= | ||||
| cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= | ||||
| cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= | ||||
| cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= | ||||
| cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= | ||||
| cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= | ||||
| cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= | ||||
| cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= | ||||
| cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= | ||||
| cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= | ||||
| cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= | ||||
| cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= | ||||
| cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= | ||||
| cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= | ||||
| cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= | ||||
| cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= | ||||
| cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= | ||||
| cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= | ||||
| cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= | ||||
| cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= | ||||
| cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= | ||||
| cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= | ||||
| cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= | ||||
| cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= | ||||
| cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= | ||||
| cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= | ||||
| cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= | ||||
| cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= | ||||
| cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= | ||||
| cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= | ||||
| cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= | ||||
| cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= | ||||
| cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= | ||||
| cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= | ||||
| cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= | ||||
| cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= | ||||
| cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= | ||||
| cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= | ||||
| cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= | ||||
| cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= | ||||
| cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= | ||||
| cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= | ||||
| cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= | ||||
| cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= | ||||
| cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= | ||||
| cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= | ||||
| cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= | ||||
| cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= | ||||
| cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= | ||||
| cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= | ||||
| cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= | ||||
| cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= | ||||
| cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= | ||||
| cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= | ||||
| cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= | ||||
| cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= | ||||
| cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= | ||||
| cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= | ||||
| cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= | ||||
| cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= | ||||
| cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= | ||||
| cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= | ||||
| cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= | ||||
| cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= | ||||
| cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= | ||||
| cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= | ||||
| cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= | ||||
| cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= | ||||
| cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= | ||||
| cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= | ||||
| cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= | ||||
| cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= | ||||
| cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= | ||||
| cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= | ||||
| cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= | ||||
| cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= | ||||
| cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= | ||||
| cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= | ||||
| cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= | ||||
| cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= | ||||
| cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= | ||||
| cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= | ||||
| cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= | ||||
| cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= | ||||
| cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= | ||||
| cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= | ||||
| cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= | ||||
| cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= | ||||
| cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= | ||||
| cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= | ||||
| cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= | ||||
| cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= | ||||
| cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= | ||||
| cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= | ||||
| cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= | ||||
| cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= | ||||
| cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= | ||||
| cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= | ||||
| cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= | ||||
| cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= | ||||
| cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= | ||||
| cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= | ||||
| cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= | ||||
| cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= | ||||
| cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= | ||||
| cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= | ||||
| cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= | ||||
| cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= | ||||
| cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= | ||||
| cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= | ||||
| cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= | ||||
| cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= | ||||
| cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= | ||||
| cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= | ||||
| cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= | ||||
| cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= | ||||
| cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= | ||||
| cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= | ||||
| cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= | ||||
| cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= | ||||
| cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= | ||||
| cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= | ||||
| cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= | ||||
| cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= | ||||
| cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= | ||||
| cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= | ||||
| cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= | ||||
| cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= | ||||
| cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= | ||||
| cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= | ||||
| cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= | ||||
| cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= | ||||
| cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= | ||||
| cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= | ||||
| cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= | ||||
| cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= | ||||
| cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= | ||||
| cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= | ||||
| cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= | ||||
| cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= | ||||
| cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= | ||||
| cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= | ||||
| cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= | ||||
| cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= | ||||
| cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= | ||||
| cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= | ||||
| cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= | ||||
| cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= | ||||
| cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= | ||||
| cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= | ||||
| cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= | ||||
| cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= | ||||
| cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= | ||||
| cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= | ||||
| cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= | ||||
| cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= | ||||
| cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= | ||||
| cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= | ||||
| cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= | ||||
| cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= | ||||
| cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= | ||||
| cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= | ||||
| cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= | ||||
| cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= | ||||
| cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= | ||||
| cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= | ||||
| cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= | ||||
| cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= | ||||
| cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= | ||||
| cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= | ||||
| cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= | ||||
| cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= | ||||
| cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= | ||||
| cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= | ||||
| cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= | ||||
| cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= | ||||
| cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= | ||||
| cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= | ||||
| cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= | ||||
| cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= | ||||
| cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= | ||||
| cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= | ||||
| cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= | ||||
| cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= | ||||
| cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= | ||||
| cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= | ||||
| cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= | ||||
| cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= | ||||
| cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= | ||||
| cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= | ||||
| cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= | ||||
| cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= | ||||
| cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= | ||||
| cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= | ||||
| cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= | ||||
| cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= | ||||
| cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= | ||||
| cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= | ||||
| cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= | ||||
| cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= | ||||
| cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= | ||||
| cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= | ||||
| cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= | ||||
| cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= | ||||
| cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= | ||||
| cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= | ||||
| cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= | ||||
| cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= | ||||
| cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= | ||||
| cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= | ||||
| cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= | ||||
| cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= | ||||
| cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= | ||||
| cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= | ||||
| cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= | ||||
| cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= | ||||
| cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= | ||||
| cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= | ||||
| cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= | ||||
| cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= | ||||
| cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= | ||||
| cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= | ||||
| cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= | ||||
| cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= | ||||
| cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= | ||||
| cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= | ||||
| cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= | ||||
| cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= | ||||
| cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= | ||||
| cloud.google.com/go/spanner v1.24.0/go.mod h1:EZI0yH1D/PrXK0XH9Ba5LGXTXWeqZv0ClOD/19a0Z58= | ||||
| cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= | ||||
| cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= | ||||
| cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= | ||||
| cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= | ||||
| cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= | ||||
| cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= | ||||
| cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= | ||||
| cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= | ||||
| cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= | ||||
| cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= | ||||
| cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= | ||||
| cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= | ||||
| cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= | ||||
| cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= | ||||
| cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= | ||||
| cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= | ||||
| cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= | ||||
| cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= | ||||
| cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= | ||||
| cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= | ||||
| cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= | ||||
| cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= | ||||
| cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= | ||||
| cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= | ||||
| cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= | ||||
| cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= | ||||
| cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= | ||||
| cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= | ||||
| cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= | ||||
| cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= | ||||
| cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= | ||||
| cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= | ||||
| cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= | ||||
| cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= | ||||
| cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= | ||||
| cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= | ||||
| cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= | ||||
| cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= | ||||
| cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= | ||||
| cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= | ||||
| cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= | ||||
| cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= | ||||
| cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= | ||||
| cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= | ||||
| cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= | ||||
| cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= | ||||
| cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= | ||||
| cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= | ||||
| cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= | ||||
| cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= | ||||
| cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= | ||||
| dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= | ||||
| dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= | ||||
| dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= | ||||
| @@ -503,12 +182,8 @@ github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h | ||||
| github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= | ||||
| github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= | ||||
| github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= | ||||
| github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= | ||||
| github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= | ||||
| github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= | ||||
| github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= | ||||
| github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= | ||||
| github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= | ||||
| github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= | ||||
| github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= | ||||
| github.com/cockroachdb/cockroach-go/v2 v2.1.1/go.mod h1:7NtUnP6eK+l6k483WSYNrq3Kb23bWV10IRV1TyeSpwM= | ||||
| @@ -670,7 +345,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m | ||||
| github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= | ||||
| github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= | ||||
| github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= | ||||
| github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= | ||||
| github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | ||||
| github.com/envoyproxy/protoc-gen-validate v1.0.2 h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA= | ||||
| github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= | ||||
| @@ -830,10 +504,7 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ | ||||
| github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= | ||||
| github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | ||||
| github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= | ||||
| github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | ||||
| github.com/google/go-github/v35 v35.2.0/go.mod h1:s0515YVTI+IMrDoy9Y4pHt9ShGpzHvHO8rZ7L7acgvs= | ||||
| github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= | ||||
| github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||||
| @@ -856,7 +527,6 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe | ||||
| github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | ||||
| github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | ||||
| github.com/google/pprof v0.0.0-20210715191844-86eeefc3e471/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | ||||
| github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | ||||
| github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= | ||||
| github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= | ||||
| github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| @@ -865,20 +535,9 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ | ||||
| github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= | ||||
| github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= | ||||
| github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= | ||||
| github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= | ||||
| github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= | ||||
| github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= | ||||
| github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= | ||||
| github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= | ||||
| github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= | ||||
| github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= | ||||
| github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= | ||||
| github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= | ||||
| github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= | ||||
| github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= | ||||
| github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= | ||||
| github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= | ||||
| github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= | ||||
| github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= | ||||
| @@ -984,8 +643,8 @@ github.com/jackc/pgx/v4 v4.10.1/go.mod h1:QlrWebbs3kqEZPHCTGyxecvzG6tvIsYu+A5b1r | ||||
| github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= | ||||
| github.com/jackc/pgx/v4 v4.18.1 h1:YP7G1KABtKpB5IHrO9vYwSrCOhs7p3uqhvhhQBptya0= | ||||
| github.com/jackc/pgx/v4 v4.18.1/go.mod h1:FydWkUyadDmdNH/mHnGob881GawxeEm7TcMCzkb+qQE= | ||||
| 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/pgx/v5 v5.4.3 h1:cxFyXhxlvAifxnkKKdlxv8XqUf59tDlYjnV5YYfsJJY= | ||||
| github.com/jackc/pgx/v5 v5.4.3/go.mod h1:Ig06C2Vu0t5qXC60W8sqIthScaEnFvojjj9dSljmHRA= | ||||
| 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= | ||||
| @@ -1380,21 +1039,15 @@ go.unistack.org/micro-config-file/v3 v3.8.3 h1:yoAyDtmWutlUkVgFUtc7JhwCX7H/2Jz0n | ||||
| go.unistack.org/micro-config-file/v3 v3.8.3/go.mod h1:dl+MQ27/P41+hINmSrZFltDSDYP1y2LItIDYb2jHFog= | ||||
| go.unistack.org/micro-config-flag/v3 v3.8.9 h1:I4eoJVV28CpxQvQ63TJ1fqK5JcV1gHmOZPveT2Vl5Iw= | ||||
| go.unistack.org/micro-config-flag/v3 v3.8.9/go.mod h1:eWI90dcZh5AOhkd83fF0KY17ea/DZPebkJ8K61yky+8= | ||||
| go.unistack.org/micro-config-flag/v4 v4.0.1 h1:oYmNZrFDnARyi6toFFJ9cfIZQkZ4nNp5As+UYiIhBgM= | ||||
| go.unistack.org/micro-config-flag/v4 v4.0.1/go.mod h1:EYBZUMCqEXs092hB5hhMCALduXMOg76VRuNdzlvV3aU= | ||||
| go.unistack.org/micro-config-service/v3 v3.8.1 h1:Q+RPWCb88VGz5+EQUx45Xeysf+Mon9Q2IvqCF3e8LZM= | ||||
| go.unistack.org/micro-config-service/v3 v3.8.1/go.mod h1:KdZJEuYwninyT04ysFkgEQa3OaMRa0kSQVPQHlumQoA= | ||||
| go.unistack.org/micro-proto/v3 v3.3.1 h1:nQ0MtWvP2G3QrpOgawVOPhpZZYkq6umTGDqs8FxJYIo= | ||||
| go.unistack.org/micro-proto/v3 v3.3.1/go.mod h1:cwRyv8uInM2I7EbU7O8Fx2Ls3N90Uw9UCCcq4olOdfE= | ||||
| go.unistack.org/micro-server-grpc/v3 v3.10.6 h1:1MZ530LARgr0OS2E+ALfPpMJkUexEwcaVhUOgBoXDjs= | ||||
| go.unistack.org/micro-server-grpc/v3 v3.10.6/go.mod h1:n0mNurVocRBOt7iydDgORGWQ4M/wFaJFmdKHNX57IiQ= | ||||
| go.unistack.org/micro-server-http/v3 v3.11.6 h1:BSjPyXrJ6OTyuCDE14XOGjLDJEICz2CEo2WfmSR3hqM= | ||||
| go.unistack.org/micro-server-http/v3 v3.11.6/go.mod h1:phNG9aosjbneXvZxEVaVQI+NHLLZ3eA82mOH6gGSShY= | ||||
| go.unistack.org/micro/v3 v3.10.14/go.mod h1:uMAc0U/x7dmtICCrblGf0ZLgYegu3VwQAquu+OFCw1Q= | ||||
| go.unistack.org/micro/v3 v3.10.24 h1:gIi4r0vUSpNLs+uRb4KKEXBLkE8iNp6ZnJsI5FV42j0= | ||||
| go.unistack.org/micro/v3 v3.10.24/go.mod h1:aywPekJP0n07xvmDgj+Si3VPmQzGMfj6tkHk/6kjXhU= | ||||
| go.unistack.org/micro/v4 v4.0.1 h1:xo1IxbVfgh8i0eY0VeYa3cbb13u5n/Mxnp3FOgWD4Jo= | ||||
| go.unistack.org/micro/v4 v4.0.1/go.mod h1:p/J5UcSJjfHsWGT31uKoghQ5rUQZzQJBAFy+Z4+ZVMs= | ||||
| golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||
| 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= | ||||
| @@ -1534,21 +1187,8 @@ golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qx | ||||
| golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||
| golang.org/x/net v0.0.0-20211013171255-e13a2654a71e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||
| golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||
| golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | ||||
| golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | ||||
| golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | ||||
| golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | ||||
| golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | ||||
| golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||
| golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||
| golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||
| golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||
| golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= | ||||
| golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= | ||||
| golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= | ||||
| golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= | ||||
| golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= | ||||
| golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= | ||||
| golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= | ||||
| golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= | ||||
| golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= | ||||
| @@ -1568,18 +1208,6 @@ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ | ||||
| golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||
| golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||
| golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||
| golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||
| golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||
| golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= | ||||
| golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= | ||||
| golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= | ||||
| golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= | ||||
| golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= | ||||
| golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= | ||||
| golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= | ||||
| golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= | ||||
| golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= | ||||
| golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= | ||||
| golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| @@ -1592,9 +1220,7 @@ 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-20220601150217-0de741cfad7f/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.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= | ||||
| golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= | ||||
| @@ -1691,31 +1317,13 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc | ||||
| golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20210818153620-00dd8d7831e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/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-20211013075003-97ac67df715c/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-20211210111614-af8b64212486/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-20220128215802-99c3d69c2c27/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-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/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-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20220624220833-87e55d714810/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-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= | ||||
| @@ -1724,8 +1332,6 @@ golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXR | ||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||
| golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||
| golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= | ||||
| golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= | ||||
| golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= | ||||
| golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= | ||||
| golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= | ||||
| golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= | ||||
| @@ -1738,10 +1344,7 @@ 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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= | ||||
| golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | ||||
| golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | ||||
| golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | ||||
| golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | ||||
| golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= | ||||
| golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= | ||||
| @@ -1832,10 +1435,6 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T | ||||
| golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= | ||||
| golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= | ||||
| golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= | ||||
| gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= | ||||
| gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= | ||||
| gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= | ||||
| @@ -1868,31 +1467,6 @@ google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59t | ||||
| google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= | ||||
| google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= | ||||
| google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= | ||||
| google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= | ||||
| google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= | ||||
| google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= | ||||
| google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= | ||||
| google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= | ||||
| google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= | ||||
| google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= | ||||
| google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= | ||||
| google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= | ||||
| google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= | ||||
| google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= | ||||
| google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= | ||||
| google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= | ||||
| google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= | ||||
| google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= | ||||
| google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= | ||||
| google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= | ||||
| google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= | ||||
| google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= | ||||
| google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= | ||||
| google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= | ||||
| google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= | ||||
| google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= | ||||
| google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= | ||||
| google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= | ||||
| google.golang.org/appengine v1.0.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | ||||
| google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | ||||
| google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | ||||
| @@ -1946,7 +1520,6 @@ google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6D | ||||
| google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||
| google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||
| google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= | ||||
| google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= | ||||
| google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= | ||||
| google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= | ||||
| google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= | ||||
| @@ -1958,64 +1531,8 @@ google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm | ||||
| google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= | ||||
| google.golang.org/genproto v0.0.0-20210721163202-f1cecdd8b78a/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= | ||||
| google.golang.org/genproto v0.0.0-20210726143408-b02e89920bf0/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= | ||||
| google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= | ||||
| google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= | ||||
| google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= | ||||
| google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= | ||||
| google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= | ||||
| google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= | ||||
| google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= | ||||
| google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= | ||||
| google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= | ||||
| google.golang.org/genproto v0.0.0-20211013025323-ce878158c4d4/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= | ||||
| google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= | ||||
| google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= | ||||
| google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= | ||||
| google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= | ||||
| google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= | ||||
| google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= | ||||
| google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= | ||||
| google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= | ||||
| google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= | ||||
| google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= | ||||
| google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= | ||||
| google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= | ||||
| google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= | ||||
| google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= | ||||
| google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= | ||||
| google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= | ||||
| google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= | ||||
| google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= | ||||
| google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= | ||||
| google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= | ||||
| google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= | ||||
| google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= | ||||
| google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= | ||||
| google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= | ||||
| google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= | ||||
| google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= | ||||
| google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= | ||||
| google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= | ||||
| google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= | ||||
| google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= | ||||
| google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= | ||||
| google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= | ||||
| google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= | ||||
| google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= | ||||
| google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= | ||||
| google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= | ||||
| google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= | ||||
| google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= | ||||
| google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= | ||||
| google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= | ||||
| google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= | ||||
| google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= | ||||
| google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= | ||||
| google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= | ||||
| google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= | ||||
| google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= | ||||
| google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= | ||||
| google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= | ||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= | ||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= | ||||
| google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= | ||||
| @@ -2045,20 +1562,8 @@ google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ | ||||
| google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= | ||||
| google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= | ||||
| google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= | ||||
| google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= | ||||
| google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= | ||||
| google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= | ||||
| google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= | ||||
| google.golang.org/grpc v1.44.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.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= | ||||
| google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= | ||||
| google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= | ||||
| google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= | ||||
| google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= | ||||
| google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= | ||||
| google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= | ||||
| google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= | ||||
| google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw= | ||||
| google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= | ||||
| google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= | ||||
| @@ -2075,7 +1580,6 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba | ||||
| google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | ||||
| 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.28.1/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= | ||||
|   | ||||
| @@ -2,14 +2,16 @@ package handler | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"io" | ||||
| 	"net/http" | ||||
|  | ||||
| 	cmsstorage "go.unistack.org/cms-service/storage" | ||||
| 	"go.unistack.org/micro/v3" | ||||
| 	"go.unistack.org/micro/v3/errors" | ||||
| 	"go.unistack.org/unistack-org/pkgdash/config" | ||||
| 	"go.unistack.org/unistack-org/pkgdash/models" | ||||
| 	pb "go.unistack.org/unistack-org/pkgdash/proto/go_generate" | ||||
| 	"go.unistack.org/unistack-org/pkgdash/storage" | ||||
| 	"net/http" | ||||
| 	"google.golang.org/protobuf/encoding/protojson" | ||||
| ) | ||||
|  | ||||
| type Handler struct { | ||||
| @@ -17,6 +19,8 @@ type Handler struct { | ||||
| 	store storage.Storage | ||||
|  | ||||
| 	writer writer | ||||
| 	protojson.MarshalOptions | ||||
| 	protojson.UnmarshalOptions | ||||
| } | ||||
|  | ||||
| func (h *Handler) ListPackage(w http.ResponseWriter, r *http.Request) { | ||||
| @@ -24,7 +28,7 @@ func (h *Handler) ListPackage(w http.ResponseWriter, r *http.Request) { | ||||
| 	logger := h.svc.Logger() | ||||
| 	logger.Debug(ctx, "Start getListPackage") | ||||
|  | ||||
| 	dbRsp, err := h.store.List(ctx) | ||||
| 	dbRsp, err := h.store.ListPackage(ctx) | ||||
| 	if err != nil { | ||||
| 		logger.Errorf(ctx, "error db response: %v", err) | ||||
| 		h.writer.Response(ctx, w, err) | ||||
| @@ -32,7 +36,7 @@ func (h *Handler) ListPackage(w http.ResponseWriter, r *http.Request) { | ||||
| 	} | ||||
|  | ||||
| 	rsp := new(pb.ListPackageRsp) | ||||
| 	rsp.Packages = models.ListPackage(dbRsp).Mapping() | ||||
| 	rsp.Packages = dbRsp.Mapping() | ||||
|  | ||||
| 	logger.Debug(ctx, "Success finish getListPackage") | ||||
| 	h.writer.Response(ctx, w, rsp) | ||||
| @@ -51,7 +55,73 @@ func (h *Handler) AddComment(w http.ResponseWriter, r *http.Request) { | ||||
| 	logger := h.svc.Logger() | ||||
| 	logger.Debug(ctx, "Start AddComment") | ||||
|  | ||||
| 	// TODO | ||||
| 	defer r.Body.Close() | ||||
| 	all, err := io.ReadAll(r.Body) | ||||
| 	if err != nil { | ||||
| 		logger.Error(ctx, err) | ||||
| 		h.writer.Response(ctx, w, NewInternalError(err)) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	rsp := new(pb.AddCommentRsp) | ||||
| 	if err = h.Unmarshal(all, rsp); err != nil { | ||||
| 		logger.Error(ctx, err) | ||||
| 		h.writer.Response(ctx, w, NewUnmarshalError(err)) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	if err = rsp.Validate(); err != nil { | ||||
| 		logger.Error(ctx, err) | ||||
| 		h.writer.Response(ctx, w, NewValidationError(err)) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	if err = h.store.AddComment(ctx, rsp); err != nil { | ||||
| 		logger.Error(ctx, err) | ||||
| 		h.writer.Response(ctx, w, NewInternalError(err)) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	logger.Debug(ctx, "Success finish addComment") | ||||
| } | ||||
|  | ||||
| func (h *Handler) AddPackage(w http.ResponseWriter, r *http.Request) { | ||||
| 	ctx := r.Context() | ||||
| 	logger := h.svc.Logger() | ||||
| 	logger.Debug(ctx, "Start AddPackage") | ||||
|  | ||||
| 	defer r.Body.Close() | ||||
| 	all, err := io.ReadAll(r.Body) | ||||
| 	if err != nil { | ||||
| 		logger.Error(ctx, err) | ||||
| 		h.writer.Response(ctx, w, NewInternalError(err)) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	req := new(pb.AddPackageRsp) | ||||
| 	if err = h.Unmarshal(all, req); err != nil { | ||||
| 		logger.Error(ctx, err) | ||||
| 		h.writer.Response(ctx, w, NewUnmarshalError(err)) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	if err = req.Validate(); err != nil { | ||||
| 		logger.Error(ctx, err) | ||||
| 		h.writer.Response(ctx, w, NewValidationError(err)) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	// TODO: | ||||
| 	// need logic for add module from go.mod | ||||
| 	// err := setModules(req) | ||||
|  | ||||
| 	if err = h.store.AddPackage(ctx, req); err != nil { | ||||
| 		logger.Error(ctx, err) | ||||
| 		h.writer.Response(ctx, w, NewInternalError(err)) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	logger.Debug(ctx, "Success finish addPackage") | ||||
| } | ||||
|  | ||||
| func NewHandler(svc micro.Service, w writer) *Handler { | ||||
|   | ||||
							
								
								
									
										21
									
								
								handler/middleware.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								handler/middleware.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| package handler | ||||
|  | ||||
| import "net/http" | ||||
|  | ||||
| func Methods(m string, next http.HandlerFunc) http.HandlerFunc { | ||||
| 	return func(w http.ResponseWriter, req *http.Request) { | ||||
| 		if req.Method != m { | ||||
| 			http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) | ||||
| 			return | ||||
| 		} | ||||
|  | ||||
| 		switch req.Method { | ||||
| 		case http.MethodPost: | ||||
| 			w.WriteHeader(http.StatusCreated) | ||||
| 		case http.MethodPut: | ||||
| 			w.WriteHeader(http.StatusNoContent) | ||||
| 		} | ||||
|  | ||||
| 		next.ServeHTTP(w, req) | ||||
| 	} | ||||
| } | ||||
| @@ -2,7 +2,7 @@ package handler | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"go.unistack.org/micro/v4/logger" | ||||
| 	"go.unistack.org/micro/v3/logger" | ||||
| 	pb "go.unistack.org/unistack-org/pkgdash/proto/go_generate" | ||||
| 	"net/http" | ||||
|  | ||||
| @@ -18,6 +18,7 @@ type writer interface { | ||||
| 	Response(ctx context.Context, rw http.ResponseWriter, value interface{}) | ||||
| } | ||||
|  | ||||
| // nolint | ||||
| type stackTracer interface { | ||||
| 	StackTrace() errors.StackTrace | ||||
| } | ||||
|   | ||||
| @@ -282,7 +282,7 @@ func Updates(opt UpdateOptions) { | ||||
| 				return nil | ||||
| 			}) | ||||
| 		} | ||||
| 		group.Wait() | ||||
| 		_ = group.Wait() | ||||
| 	}() | ||||
| 	for u := range ch { | ||||
| 		if opt.OnUpdate != nil { | ||||
|   | ||||
							
								
								
									
										6
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								main.go
									
									
									
									
									
								
							| @@ -15,9 +15,9 @@ import ( | ||||
| 	"github.com/go-git/go-git/v5/plumbing/filemode" | ||||
| 	"github.com/go-git/go-git/v5/plumbing/object" | ||||
| 	"github.com/go-git/go-git/v5/storage/memory" | ||||
| 	flagconfig "go.unistack.org/micro-config-flag/v4" | ||||
| 	"go.unistack.org/micro/v4/config" | ||||
| 	"go.unistack.org/micro/v4/logger" | ||||
| 	flagconfig "go.unistack.org/micro-config-flag/v3" | ||||
| 	"go.unistack.org/micro/v3/config" | ||||
| 	"go.unistack.org/micro/v3/logger" | ||||
| 	"golang.org/x/mod/modfile" | ||||
| 	"golang.org/x/mod/module" | ||||
| ) | ||||
|   | ||||
| @@ -7,12 +7,12 @@ import ( | ||||
| ) | ||||
|  | ||||
| type Package struct { | ||||
| 	ID       int64    `db:"id"`      // package id | ||||
| 	Name     string   `db:"name"`    // service name, last component path | ||||
| 	URL      string   `db:"url"`     // scm url | ||||
| 	Modules  []Module `db:"modules"` // parsed go.mod modules | ||||
| 	Issues   []Issue  `db:"issues"`  // issues list | ||||
| 	Comments []int64  `db:"comments"` | ||||
| 	ID       int64   `db:"id" json:"id"`                   // package id | ||||
| 	Name     string  `db:"name" json:"name"`               // service name, last component path | ||||
| 	URL      string  `db:"url" json:"url"`                 // scm url | ||||
| 	Modules  []int64 `db:"modules" json:"modules"`         // parsed go.mod modules | ||||
| 	Issues   []int64 `db:"issues" json:"issues,omitempty"` // issues list | ||||
| 	Comments []int64 `db:"comments" json:"comments,omitempty"` | ||||
| } | ||||
|  | ||||
| type Module struct { | ||||
| @@ -31,14 +31,14 @@ type Issue struct { | ||||
| } | ||||
|  | ||||
| type Comment struct { | ||||
| 	ID      int64       `db:"id"` | ||||
| 	Text    string      `db:"value"` | ||||
| 	Created pgtype.Date `db:"created"` | ||||
| 	Updated pgtype.Date `db:"updated"` | ||||
| 	ID      int64       `db:"id" json:"id"` | ||||
| 	Text    string      `db:"value" json:"text"` | ||||
| 	Created pgtype.Date `db:"created" json:"created"` | ||||
| 	Updated pgtype.Date `db:"updated" json:"updated,omitempty"` | ||||
| } | ||||
|  | ||||
| type Dashboard struct { | ||||
| 	ID      int64     `db:"id"` | ||||
| 	Uuid    uuid.UUID `db:"uuid"` | ||||
| 	Package int64     `db:"package"` | ||||
| 	ID       int64     `db:"id"` | ||||
| 	Uuid     uuid.UUID `db:"uuid"` | ||||
| 	Packages []int64   `db:"package"` | ||||
| } | ||||
|   | ||||
| @@ -9,7 +9,8 @@ import "validate/validate.proto"; | ||||
| service DashboardService { | ||||
|   rpc ListPackage(ListPackageReq) returns (ListPackageRsp) {}; | ||||
|   rpc UpdateInfo(UpdateInfoPackageRsp) returns (UpdateInfoPackageReq) {}; | ||||
|   rpc AddComment(CommentRsp) returns (CommentReq) {}; | ||||
|   rpc AddComment(AddCommentRsp) returns (AddCommentReq) {}; | ||||
|   rpc AddPackage(AddPackageRsp) returns (AddPackageReq) {}; | ||||
| }; | ||||
|  | ||||
| message ErrorRsp { | ||||
| @@ -66,11 +67,18 @@ message UpdateInfoPackageReq { | ||||
|   uint64 id = 1 [(validate.rules).uint64.gt = 0]; | ||||
| } | ||||
|  | ||||
| message CommentRsp { | ||||
| message AddCommentRsp { | ||||
|   uint64 idPackage = 1 [(validate.rules).uint64.gt = 0]; | ||||
|   string text = 2; | ||||
| } | ||||
|  | ||||
| message CommentReq { | ||||
| message AddCommentReq { | ||||
|   uint64 id = 1 [(validate.rules).uint64.gt = 0]; | ||||
| } | ||||
| } | ||||
|  | ||||
| message AddPackageRsp { | ||||
|   string name = 1 [(validate.rules).string.min_len = 1]; | ||||
|   string url = 2  [(validate.rules).string.min_len = 1]; | ||||
|   repeated uint64 modules = 3; | ||||
| } | ||||
| message AddPackageReq{} | ||||
							
								
								
									
										71
									
								
								proto/docker_generate/dashboard.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								proto/docker_generate/dashboard.proto
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
| syntax = "proto3"; | ||||
|  | ||||
| package proto; | ||||
|  | ||||
| option go_package = "./go_generate;go_generate"; | ||||
|  | ||||
| import "validate/validate.proto"; | ||||
|  | ||||
|  | ||||
| message ErrorRsp { | ||||
|   Error error = 1 [json_name = "error"]; | ||||
| } | ||||
|  | ||||
| message Error { | ||||
|   string code = 1 [json_name = "code"]; | ||||
|   string title = 2 [json_name = "title"]; | ||||
|   string uuid = 3 [json_name = "uuid"]; | ||||
|   string details = 4 [json_name = "details"]; | ||||
| } | ||||
|  | ||||
| message Package { | ||||
|   uint64 id = 1 [(validate.rules).uint64.gt = 0]; | ||||
|   string name = 2 [(validate.rules).string.min_len = 1]; | ||||
|   string url = 3 [(validate.rules).string.min_len = 1]; | ||||
|   repeated Module modules = 4; | ||||
|   repeated Issue issues = 5; | ||||
| }; | ||||
|  | ||||
| message Module { | ||||
|   uint64 id = 1 [(validate.rules).uint64.gt = 0]; | ||||
|   string name = 2 [(validate.rules).string.min_len = 1]; | ||||
|   string version = 3 [(validate.rules).string.min_len = 1]; | ||||
|   uint64 package = 4 [(validate.rules).uint64.gt = 0]; | ||||
| } | ||||
|  | ||||
| message Issue { | ||||
|   uint64 id = 1 [(validate.rules).uint64.gt = 0]; | ||||
|   uint64 status = 2 [(validate.rules).uint64.gt = 0]; | ||||
|   string desc = 3 [(validate.rules).string.min_len = 1]; | ||||
|   uint64 package = 4 [(validate.rules).uint64.gt = 0]; | ||||
|   repeated uint64 modules = 5; | ||||
| } | ||||
|  | ||||
| message Comment { | ||||
|   uint64 id = 1 [(validate.rules).uint64.gt = 0]; | ||||
|   uint64 package = 2 [(validate.rules).uint64.gt = 0]; | ||||
|   string text = 3; | ||||
|   uint64 created = 4 [(validate.rules).uint64.gt = 0]; | ||||
|   uint64 updated = 5 [(validate.rules).uint64.gt = 0]; | ||||
| } | ||||
|  | ||||
| message ListPackageReq {} | ||||
| message ListPackageRsp{ | ||||
|   repeated Package packages = 1; | ||||
| } | ||||
|  | ||||
| message UpdateInfoPackageRsp { | ||||
|   uint64 id = 1 [(validate.rules).uint64.gt = 0]; | ||||
| } | ||||
| message UpdateInfoPackageReq { | ||||
|   uint64 id = 1 [(validate.rules).uint64.gt = 0]; | ||||
| } | ||||
|  | ||||
| message CommentRsp { | ||||
|   uint64 idPackage = 1 [(validate.rules).uint64.gt = 0]; | ||||
|   string text = 2; | ||||
| } | ||||
|  | ||||
| message CommentReq { | ||||
|   uint64 id = 1 [(validate.rules).uint64.gt = 0]; | ||||
| } | ||||
							
								
								
									
										42
									
								
								proto/docker_generate/restService.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								proto/docker_generate/restService.proto
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| syntax = "proto3"; | ||||
|  | ||||
| package proto; | ||||
|  | ||||
| option go_package = "./go_generate;go_generate"; | ||||
|  | ||||
| import "dashboard.proto"; | ||||
| import "google/api/annotations.proto"; | ||||
| import "protoc-gen-swagger/options/annotations.proto"; | ||||
|  | ||||
| option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = { | ||||
|   info: { | ||||
|     title: "service-platform/product-services/mts-money/gateway-proto", | ||||
|     version: "0"; | ||||
|   }; | ||||
|   consumes: "application/json"; | ||||
|   produces: "application/json"; | ||||
| }; | ||||
|  | ||||
| service DashboardService { | ||||
|   rpc ListPackage(ListPackageReq) returns (ListPackageRsp) { | ||||
|     option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { | ||||
|       operation_id: "ListPackage"; | ||||
|       responses: { | ||||
|         key: "default"; | ||||
|         value: { | ||||
|           description: "Error response"; | ||||
|           schema: { | ||||
|             json_schema: { | ||||
|               ref: ".go_generate.ErrorRsp"; | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }; | ||||
|     option (google.api.http) = { | ||||
|       get: "/listPackage"; | ||||
|     }; | ||||
|   }; | ||||
|   rpc UpdateInfo(UpdateInfoPackageRsp) returns (UpdateInfoPackageReq) {}; | ||||
|   rpc AddComment(CommentRsp) returns (CommentReq) {}; | ||||
| }; | ||||
| @@ -626,7 +626,7 @@ func (x *UpdateInfoPackageReq) GetId() uint64 { | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type CommentRsp struct { | ||||
| type AddCommentRsp struct { | ||||
| 	state         protoimpl.MessageState | ||||
| 	sizeCache     protoimpl.SizeCache | ||||
| 	unknownFields protoimpl.UnknownFields | ||||
| @@ -635,8 +635,8 @@ type CommentRsp struct { | ||||
| 	Text      string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` | ||||
| } | ||||
|  | ||||
| func (x *CommentRsp) Reset() { | ||||
| 	*x = CommentRsp{} | ||||
| func (x *AddCommentRsp) Reset() { | ||||
| 	*x = AddCommentRsp{} | ||||
| 	if protoimpl.UnsafeEnabled { | ||||
| 		mi := &file_dashboard_proto_msgTypes[10] | ||||
| 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||||
| @@ -644,13 +644,13 @@ func (x *CommentRsp) Reset() { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (x *CommentRsp) String() string { | ||||
| func (x *AddCommentRsp) String() string { | ||||
| 	return protoimpl.X.MessageStringOf(x) | ||||
| } | ||||
|  | ||||
| func (*CommentRsp) ProtoMessage() {} | ||||
| func (*AddCommentRsp) ProtoMessage() {} | ||||
|  | ||||
| func (x *CommentRsp) ProtoReflect() protoreflect.Message { | ||||
| func (x *AddCommentRsp) ProtoReflect() protoreflect.Message { | ||||
| 	mi := &file_dashboard_proto_msgTypes[10] | ||||
| 	if protoimpl.UnsafeEnabled && x != nil { | ||||
| 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||||
| @@ -662,26 +662,26 @@ func (x *CommentRsp) ProtoReflect() protoreflect.Message { | ||||
| 	return mi.MessageOf(x) | ||||
| } | ||||
|  | ||||
| // Deprecated: Use CommentRsp.ProtoReflect.Descriptor instead. | ||||
| func (*CommentRsp) Descriptor() ([]byte, []int) { | ||||
| // Deprecated: Use AddCommentRsp.ProtoReflect.Descriptor instead. | ||||
| func (*AddCommentRsp) Descriptor() ([]byte, []int) { | ||||
| 	return file_dashboard_proto_rawDescGZIP(), []int{10} | ||||
| } | ||||
|  | ||||
| func (x *CommentRsp) GetIdPackage() uint64 { | ||||
| func (x *AddCommentRsp) GetIdPackage() uint64 { | ||||
| 	if x != nil { | ||||
| 		return x.IdPackage | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (x *CommentRsp) GetText() string { | ||||
| func (x *AddCommentRsp) GetText() string { | ||||
| 	if x != nil { | ||||
| 		return x.Text | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type CommentReq struct { | ||||
| type AddCommentReq struct { | ||||
| 	state         protoimpl.MessageState | ||||
| 	sizeCache     protoimpl.SizeCache | ||||
| 	unknownFields protoimpl.UnknownFields | ||||
| @@ -689,8 +689,8 @@ type CommentReq struct { | ||||
| 	Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` | ||||
| } | ||||
|  | ||||
| func (x *CommentReq) Reset() { | ||||
| 	*x = CommentReq{} | ||||
| func (x *AddCommentReq) Reset() { | ||||
| 	*x = AddCommentReq{} | ||||
| 	if protoimpl.UnsafeEnabled { | ||||
| 		mi := &file_dashboard_proto_msgTypes[11] | ||||
| 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||||
| @@ -698,13 +698,13 @@ func (x *CommentReq) Reset() { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (x *CommentReq) String() string { | ||||
| func (x *AddCommentReq) String() string { | ||||
| 	return protoimpl.X.MessageStringOf(x) | ||||
| } | ||||
|  | ||||
| func (*CommentReq) ProtoMessage() {} | ||||
| func (*AddCommentReq) ProtoMessage() {} | ||||
|  | ||||
| func (x *CommentReq) ProtoReflect() protoreflect.Message { | ||||
| func (x *AddCommentReq) ProtoReflect() protoreflect.Message { | ||||
| 	mi := &file_dashboard_proto_msgTypes[11] | ||||
| 	if protoimpl.UnsafeEnabled && x != nil { | ||||
| 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||||
| @@ -716,18 +716,119 @@ func (x *CommentReq) ProtoReflect() protoreflect.Message { | ||||
| 	return mi.MessageOf(x) | ||||
| } | ||||
|  | ||||
| // Deprecated: Use CommentReq.ProtoReflect.Descriptor instead. | ||||
| func (*CommentReq) Descriptor() ([]byte, []int) { | ||||
| // Deprecated: Use AddCommentReq.ProtoReflect.Descriptor instead. | ||||
| func (*AddCommentReq) Descriptor() ([]byte, []int) { | ||||
| 	return file_dashboard_proto_rawDescGZIP(), []int{11} | ||||
| } | ||||
|  | ||||
| func (x *CommentReq) GetId() uint64 { | ||||
| func (x *AddCommentReq) GetId() uint64 { | ||||
| 	if x != nil { | ||||
| 		return x.Id | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type AddPackageRsp struct { | ||||
| 	state         protoimpl.MessageState | ||||
| 	sizeCache     protoimpl.SizeCache | ||||
| 	unknownFields protoimpl.UnknownFields | ||||
|  | ||||
| 	Name    string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` | ||||
| 	Url     string   `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` | ||||
| 	Modules []uint64 `protobuf:"varint,3,rep,packed,name=modules,proto3" json:"modules,omitempty"` | ||||
| } | ||||
|  | ||||
| func (x *AddPackageRsp) Reset() { | ||||
| 	*x = AddPackageRsp{} | ||||
| 	if protoimpl.UnsafeEnabled { | ||||
| 		mi := &file_dashboard_proto_msgTypes[12] | ||||
| 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||||
| 		ms.StoreMessageInfo(mi) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (x *AddPackageRsp) String() string { | ||||
| 	return protoimpl.X.MessageStringOf(x) | ||||
| } | ||||
|  | ||||
| func (*AddPackageRsp) ProtoMessage() {} | ||||
|  | ||||
| func (x *AddPackageRsp) ProtoReflect() protoreflect.Message { | ||||
| 	mi := &file_dashboard_proto_msgTypes[12] | ||||
| 	if protoimpl.UnsafeEnabled && x != nil { | ||||
| 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||||
| 		if ms.LoadMessageInfo() == nil { | ||||
| 			ms.StoreMessageInfo(mi) | ||||
| 		} | ||||
| 		return ms | ||||
| 	} | ||||
| 	return mi.MessageOf(x) | ||||
| } | ||||
|  | ||||
| // Deprecated: Use AddPackageRsp.ProtoReflect.Descriptor instead. | ||||
| func (*AddPackageRsp) Descriptor() ([]byte, []int) { | ||||
| 	return file_dashboard_proto_rawDescGZIP(), []int{12} | ||||
| } | ||||
|  | ||||
| func (x *AddPackageRsp) GetName() string { | ||||
| 	if x != nil { | ||||
| 		return x.Name | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (x *AddPackageRsp) GetUrl() string { | ||||
| 	if x != nil { | ||||
| 		return x.Url | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (x *AddPackageRsp) GetModules() []uint64 { | ||||
| 	if x != nil { | ||||
| 		return x.Modules | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type AddPackageReq struct { | ||||
| 	state         protoimpl.MessageState | ||||
| 	sizeCache     protoimpl.SizeCache | ||||
| 	unknownFields protoimpl.UnknownFields | ||||
| } | ||||
|  | ||||
| func (x *AddPackageReq) Reset() { | ||||
| 	*x = AddPackageReq{} | ||||
| 	if protoimpl.UnsafeEnabled { | ||||
| 		mi := &file_dashboard_proto_msgTypes[13] | ||||
| 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||||
| 		ms.StoreMessageInfo(mi) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (x *AddPackageReq) String() string { | ||||
| 	return protoimpl.X.MessageStringOf(x) | ||||
| } | ||||
|  | ||||
| func (*AddPackageReq) ProtoMessage() {} | ||||
|  | ||||
| func (x *AddPackageReq) ProtoReflect() protoreflect.Message { | ||||
| 	mi := &file_dashboard_proto_msgTypes[13] | ||||
| 	if protoimpl.UnsafeEnabled && x != nil { | ||||
| 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||||
| 		if ms.LoadMessageInfo() == nil { | ||||
| 			ms.StoreMessageInfo(mi) | ||||
| 		} | ||||
| 		return ms | ||||
| 	} | ||||
| 	return mi.MessageOf(x) | ||||
| } | ||||
|  | ||||
| // Deprecated: Use AddPackageReq.ProtoReflect.Descriptor instead. | ||||
| func (*AddPackageReq) Descriptor() ([]byte, []int) { | ||||
| 	return file_dashboard_proto_rawDescGZIP(), []int{13} | ||||
| } | ||||
|  | ||||
| var File_dashboard_proto protoreflect.FileDescriptor | ||||
|  | ||||
| var file_dashboard_proto_rawDesc = []byte{ | ||||
| @@ -793,32 +894,44 @@ var file_dashboard_proto_rawDesc = []byte{ | ||||
| 	0x20, 0x00, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, | ||||
| 	0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x17, | ||||
| 	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, | ||||
| 	0x02, 0x20, 0x00, 0x52, 0x02, 0x69, 0x64, 0x22, 0x47, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x65, | ||||
| 	0x6e, 0x74, 0x52, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x09, 0x69, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, | ||||
| 	0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, | ||||
| 	0x00, 0x52, 0x09, 0x69, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, | ||||
| 	0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, | ||||
| 	0x22, 0x25, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x17, | ||||
| 	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, | ||||
| 	0x02, 0x20, 0x00, 0x52, 0x02, 0x69, 0x64, 0x32, 0xd1, 0x01, 0x0a, 0x10, 0x44, 0x61, 0x73, 0x68, | ||||
| 	0x62, 0x6f, 0x61, 0x72, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, | ||||
| 	0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x72, | ||||
| 	0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, | ||||
| 	0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, | ||||
| 	0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0a, 0x55, | ||||
| 	0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, | ||||
| 	0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x63, 0x6b, | ||||
| 	0x61, 0x67, 0x65, 0x52, 0x73, 0x70, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, | ||||
| 	0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, | ||||
| 	0x52, 0x65, 0x71, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, | ||||
| 	0x65, 0x6e, 0x74, 0x12, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, | ||||
| 	0x65, 0x6e, 0x74, 0x52, 0x73, 0x70, 0x1a, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, | ||||
| 	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x22, 0x00, 0x42, 0x44, 0x5a, 0x42, 0x67, | ||||
| 	0x6f, 0x2e, 0x75, 0x6e, 0x69, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x75, | ||||
| 	0x6e, 0x69, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2d, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x64, | ||||
| 	0x61, 0x73, 0x68, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x5f, 0x67, 0x65, 0x6e, | ||||
| 	0x65, 0x72, 0x61, 0x74, 0x65, 0x3b, 0x67, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, | ||||
| 	0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | ||||
| 	0x02, 0x20, 0x00, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x43, 0x6f, | ||||
| 	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x09, 0x69, 0x64, 0x50, 0x61, | ||||
| 	0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, | ||||
| 	0x32, 0x02, 0x20, 0x00, 0x52, 0x09, 0x69, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, | ||||
| 	0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, | ||||
| 	0x65, 0x78, 0x74, 0x22, 0x28, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, | ||||
| 	0x74, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, | ||||
| 	0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x02, 0x69, 0x64, 0x22, 0x61, 0x0a, | ||||
| 	0x0d, 0x41, 0x64, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x73, 0x70, 0x12, 0x1b, | ||||
| 	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, | ||||
| 	0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x03, 0x75, | ||||
| 	0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, | ||||
| 	0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, | ||||
| 	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, | ||||
| 	0x22, 0x0f, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, | ||||
| 	0x71, 0x32, 0x93, 0x02, 0x0a, 0x10, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x53, | ||||
| 	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, | ||||
| 	0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, | ||||
| 	0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, | ||||
| 	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, | ||||
| 	0x52, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, | ||||
| 	0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, | ||||
| 	0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x73, 0x70, | ||||
| 	0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, | ||||
| 	0x6e, 0x66, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x22, 0x00, 0x12, | ||||
| 	0x3a, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x2e, | ||||
| 	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, | ||||
| 	0x52, 0x73, 0x70, 0x1a, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x43, | ||||
| 	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0a, 0x41, | ||||
| 	0x64, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, | ||||
| 	0x6f, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x73, 0x70, 0x1a, | ||||
| 	0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, | ||||
| 	0x67, 0x65, 0x52, 0x65, 0x71, 0x22, 0x00, 0x42, 0x44, 0x5a, 0x42, 0x67, 0x6f, 0x2e, 0x75, 0x6e, | ||||
| 	0x69, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x75, 0x6e, 0x69, 0x73, 0x74, | ||||
| 	0x61, 0x63, 0x6b, 0x2d, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2f, | ||||
| 	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, | ||||
| 	0x65, 0x3b, 0x67, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x62, 0x06, 0x70, | ||||
| 	0x72, 0x6f, 0x74, 0x6f, 0x33, | ||||
| } | ||||
|  | ||||
| var ( | ||||
| @@ -833,7 +946,7 @@ func file_dashboard_proto_rawDescGZIP() []byte { | ||||
| 	return file_dashboard_proto_rawDescData | ||||
| } | ||||
|  | ||||
| var file_dashboard_proto_msgTypes = make([]protoimpl.MessageInfo, 12) | ||||
| var file_dashboard_proto_msgTypes = make([]protoimpl.MessageInfo, 14) | ||||
| var file_dashboard_proto_goTypes = []interface{}{ | ||||
| 	(*ErrorRsp)(nil),             // 0: proto.ErrorRsp | ||||
| 	(*Error)(nil),                // 1: proto.Error | ||||
| @@ -845,8 +958,10 @@ var file_dashboard_proto_goTypes = []interface{}{ | ||||
| 	(*ListPackageRsp)(nil),       // 7: proto.ListPackageRsp | ||||
| 	(*UpdateInfoPackageRsp)(nil), // 8: proto.UpdateInfoPackageRsp | ||||
| 	(*UpdateInfoPackageReq)(nil), // 9: proto.UpdateInfoPackageReq | ||||
| 	(*CommentRsp)(nil),           // 10: proto.CommentRsp | ||||
| 	(*CommentReq)(nil),           // 11: proto.CommentReq | ||||
| 	(*AddCommentRsp)(nil),        // 10: proto.AddCommentRsp | ||||
| 	(*AddCommentReq)(nil),        // 11: proto.AddCommentReq | ||||
| 	(*AddPackageRsp)(nil),        // 12: proto.AddPackageRsp | ||||
| 	(*AddPackageReq)(nil),        // 13: proto.AddPackageReq | ||||
| } | ||||
| var file_dashboard_proto_depIdxs = []int32{ | ||||
| 	1,  // 0: proto.ErrorRsp.error:type_name -> proto.Error | ||||
| @@ -855,12 +970,14 @@ var file_dashboard_proto_depIdxs = []int32{ | ||||
| 	2,  // 3: proto.ListPackageRsp.packages:type_name -> proto.Package | ||||
| 	6,  // 4: proto.DashboardService.ListPackage:input_type -> proto.ListPackageReq | ||||
| 	8,  // 5: proto.DashboardService.UpdateInfo:input_type -> proto.UpdateInfoPackageRsp | ||||
| 	10, // 6: proto.DashboardService.AddComment:input_type -> proto.CommentRsp | ||||
| 	7,  // 7: proto.DashboardService.ListPackage:output_type -> proto.ListPackageRsp | ||||
| 	9,  // 8: proto.DashboardService.UpdateInfo:output_type -> proto.UpdateInfoPackageReq | ||||
| 	11, // 9: proto.DashboardService.AddComment:output_type -> proto.CommentReq | ||||
| 	7,  // [7:10] is the sub-list for method output_type | ||||
| 	4,  // [4:7] is the sub-list for method input_type | ||||
| 	10, // 6: proto.DashboardService.AddComment:input_type -> proto.AddCommentRsp | ||||
| 	12, // 7: proto.DashboardService.AddPackage:input_type -> proto.AddPackageRsp | ||||
| 	7,  // 8: proto.DashboardService.ListPackage:output_type -> proto.ListPackageRsp | ||||
| 	9,  // 9: proto.DashboardService.UpdateInfo:output_type -> proto.UpdateInfoPackageReq | ||||
| 	11, // 10: proto.DashboardService.AddComment:output_type -> proto.AddCommentReq | ||||
| 	13, // 11: proto.DashboardService.AddPackage:output_type -> proto.AddPackageReq | ||||
| 	8,  // [8:12] is the sub-list for method output_type | ||||
| 	4,  // [4:8] is the sub-list for method input_type | ||||
| 	4,  // [4:4] is the sub-list for extension type_name | ||||
| 	4,  // [4:4] is the sub-list for extension extendee | ||||
| 	0,  // [0:4] is the sub-list for field type_name | ||||
| @@ -993,7 +1110,7 @@ func file_dashboard_proto_init() { | ||||
| 			} | ||||
| 		} | ||||
| 		file_dashboard_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { | ||||
| 			switch v := v.(*CommentRsp); i { | ||||
| 			switch v := v.(*AddCommentRsp); i { | ||||
| 			case 0: | ||||
| 				return &v.state | ||||
| 			case 1: | ||||
| @@ -1005,7 +1122,31 @@ func file_dashboard_proto_init() { | ||||
| 			} | ||||
| 		} | ||||
| 		file_dashboard_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { | ||||
| 			switch v := v.(*CommentReq); i { | ||||
| 			switch v := v.(*AddCommentReq); i { | ||||
| 			case 0: | ||||
| 				return &v.state | ||||
| 			case 1: | ||||
| 				return &v.sizeCache | ||||
| 			case 2: | ||||
| 				return &v.unknownFields | ||||
| 			default: | ||||
| 				return nil | ||||
| 			} | ||||
| 		} | ||||
| 		file_dashboard_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { | ||||
| 			switch v := v.(*AddPackageRsp); i { | ||||
| 			case 0: | ||||
| 				return &v.state | ||||
| 			case 1: | ||||
| 				return &v.sizeCache | ||||
| 			case 2: | ||||
| 				return &v.unknownFields | ||||
| 			default: | ||||
| 				return nil | ||||
| 			} | ||||
| 		} | ||||
| 		file_dashboard_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { | ||||
| 			switch v := v.(*AddPackageReq); i { | ||||
| 			case 0: | ||||
| 				return &v.state | ||||
| 			case 1: | ||||
| @@ -1023,7 +1164,7 @@ func file_dashboard_proto_init() { | ||||
| 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | ||||
| 			RawDescriptor: file_dashboard_proto_rawDesc, | ||||
| 			NumEnums:      0, | ||||
| 			NumMessages:   12, | ||||
| 			NumMessages:   14, | ||||
| 			NumExtensions: 0, | ||||
| 			NumServices:   1, | ||||
| 		}, | ||||
|   | ||||
| @@ -1356,22 +1356,22 @@ var _ interface { | ||||
| 	ErrorName() string | ||||
| } = UpdateInfoPackageReqValidationError{} | ||||
|  | ||||
| // Validate checks the field values on CommentRsp with the rules defined in the | ||||
| // proto definition for this message. If any rules are violated, the first | ||||
| // Validate checks the field values on AddCommentRsp with the rules defined in | ||||
| // the proto definition for this message. If any rules are violated, the first | ||||
| // error encountered is returned, or nil if there are no violations. | ||||
| func (m *CommentRsp) Validate() error { | ||||
| func (m *AddCommentRsp) Validate() error { | ||||
| 	return m.validate(false) | ||||
| } | ||||
|  | ||||
| // ValidateAll checks the field values on CommentRsp with the rules defined in | ||||
| // the proto definition for this message. If any rules are violated, the | ||||
| // result is a list of violation errors wrapped in CommentRspMultiError, or | ||||
| // ValidateAll checks the field values on AddCommentRsp with the rules defined | ||||
| // in the proto definition for this message. If any rules are violated, the | ||||
| // result is a list of violation errors wrapped in AddCommentRspMultiError, or | ||||
| // nil if none found. | ||||
| func (m *CommentRsp) ValidateAll() error { | ||||
| func (m *AddCommentRsp) ValidateAll() error { | ||||
| 	return m.validate(true) | ||||
| } | ||||
|  | ||||
| func (m *CommentRsp) validate(all bool) error { | ||||
| func (m *AddCommentRsp) validate(all bool) error { | ||||
| 	if m == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| @@ -1379,7 +1379,7 @@ func (m *CommentRsp) validate(all bool) error { | ||||
| 	var errors []error | ||||
|  | ||||
| 	if m.GetIdPackage() <= 0 { | ||||
| 		err := CommentRspValidationError{ | ||||
| 		err := AddCommentRspValidationError{ | ||||
| 			field:  "IdPackage", | ||||
| 			reason: "value must be greater than 0", | ||||
| 		} | ||||
| @@ -1392,18 +1392,19 @@ func (m *CommentRsp) validate(all bool) error { | ||||
| 	// no validation rules for Text | ||||
|  | ||||
| 	if len(errors) > 0 { | ||||
| 		return CommentRspMultiError(errors) | ||||
| 		return AddCommentRspMultiError(errors) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // CommentRspMultiError is an error wrapping multiple validation errors | ||||
| // returned by CommentRsp.ValidateAll() if the designated constraints aren't met. | ||||
| type CommentRspMultiError []error | ||||
| // AddCommentRspMultiError is an error wrapping multiple validation errors | ||||
| // returned by AddCommentRsp.ValidateAll() if the designated constraints | ||||
| // aren't met. | ||||
| type AddCommentRspMultiError []error | ||||
|  | ||||
| // Error returns a concatenation of all the error messages it wraps. | ||||
| func (m CommentRspMultiError) Error() string { | ||||
| func (m AddCommentRspMultiError) Error() string { | ||||
| 	var msgs []string | ||||
| 	for _, err := range m { | ||||
| 		msgs = append(msgs, err.Error()) | ||||
| @@ -1412,11 +1413,11 @@ func (m CommentRspMultiError) Error() string { | ||||
| } | ||||
|  | ||||
| // AllErrors returns a list of validation violation errors. | ||||
| func (m CommentRspMultiError) AllErrors() []error { return m } | ||||
| func (m AddCommentRspMultiError) AllErrors() []error { return m } | ||||
|  | ||||
| // CommentRspValidationError is the validation error returned by | ||||
| // CommentRsp.Validate if the designated constraints aren't met. | ||||
| type CommentRspValidationError struct { | ||||
| // AddCommentRspValidationError is the validation error returned by | ||||
| // AddCommentRsp.Validate if the designated constraints aren't met. | ||||
| type AddCommentRspValidationError struct { | ||||
| 	field  string | ||||
| 	reason string | ||||
| 	cause  error | ||||
| @@ -1424,22 +1425,22 @@ type CommentRspValidationError struct { | ||||
| } | ||||
|  | ||||
| // Field function returns field value. | ||||
| func (e CommentRspValidationError) Field() string { return e.field } | ||||
| func (e AddCommentRspValidationError) Field() string { return e.field } | ||||
|  | ||||
| // Reason function returns reason value. | ||||
| func (e CommentRspValidationError) Reason() string { return e.reason } | ||||
| func (e AddCommentRspValidationError) Reason() string { return e.reason } | ||||
|  | ||||
| // Cause function returns cause value. | ||||
| func (e CommentRspValidationError) Cause() error { return e.cause } | ||||
| func (e AddCommentRspValidationError) Cause() error { return e.cause } | ||||
|  | ||||
| // Key function returns key value. | ||||
| func (e CommentRspValidationError) Key() bool { return e.key } | ||||
| func (e AddCommentRspValidationError) Key() bool { return e.key } | ||||
|  | ||||
| // ErrorName returns error name. | ||||
| func (e CommentRspValidationError) ErrorName() string { return "CommentRspValidationError" } | ||||
| func (e AddCommentRspValidationError) ErrorName() string { return "AddCommentRspValidationError" } | ||||
|  | ||||
| // Error satisfies the builtin error interface | ||||
| func (e CommentRspValidationError) Error() string { | ||||
| func (e AddCommentRspValidationError) Error() string { | ||||
| 	cause := "" | ||||
| 	if e.cause != nil { | ||||
| 		cause = fmt.Sprintf(" | caused by: %v", e.cause) | ||||
| @@ -1451,14 +1452,14 @@ func (e CommentRspValidationError) Error() string { | ||||
| 	} | ||||
|  | ||||
| 	return fmt.Sprintf( | ||||
| 		"invalid %sCommentRsp.%s: %s%s", | ||||
| 		"invalid %sAddCommentRsp.%s: %s%s", | ||||
| 		key, | ||||
| 		e.field, | ||||
| 		e.reason, | ||||
| 		cause) | ||||
| } | ||||
|  | ||||
| var _ error = CommentRspValidationError{} | ||||
| var _ error = AddCommentRspValidationError{} | ||||
|  | ||||
| var _ interface { | ||||
| 	Field() string | ||||
| @@ -1466,24 +1467,24 @@ var _ interface { | ||||
| 	Key() bool | ||||
| 	Cause() error | ||||
| 	ErrorName() string | ||||
| } = CommentRspValidationError{} | ||||
| } = AddCommentRspValidationError{} | ||||
|  | ||||
| // Validate checks the field values on CommentReq with the rules defined in the | ||||
| // proto definition for this message. If any rules are violated, the first | ||||
| // Validate checks the field values on AddCommentReq with the rules defined in | ||||
| // the proto definition for this message. If any rules are violated, the first | ||||
| // error encountered is returned, or nil if there are no violations. | ||||
| func (m *CommentReq) Validate() error { | ||||
| func (m *AddCommentReq) Validate() error { | ||||
| 	return m.validate(false) | ||||
| } | ||||
|  | ||||
| // ValidateAll checks the field values on CommentReq with the rules defined in | ||||
| // the proto definition for this message. If any rules are violated, the | ||||
| // result is a list of violation errors wrapped in CommentReqMultiError, or | ||||
| // ValidateAll checks the field values on AddCommentReq with the rules defined | ||||
| // in the proto definition for this message. If any rules are violated, the | ||||
| // result is a list of violation errors wrapped in AddCommentReqMultiError, or | ||||
| // nil if none found. | ||||
| func (m *CommentReq) ValidateAll() error { | ||||
| func (m *AddCommentReq) ValidateAll() error { | ||||
| 	return m.validate(true) | ||||
| } | ||||
|  | ||||
| func (m *CommentReq) validate(all bool) error { | ||||
| func (m *AddCommentReq) validate(all bool) error { | ||||
| 	if m == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| @@ -1491,7 +1492,7 @@ func (m *CommentReq) validate(all bool) error { | ||||
| 	var errors []error | ||||
|  | ||||
| 	if m.GetId() <= 0 { | ||||
| 		err := CommentReqValidationError{ | ||||
| 		err := AddCommentReqValidationError{ | ||||
| 			field:  "Id", | ||||
| 			reason: "value must be greater than 0", | ||||
| 		} | ||||
| @@ -1502,18 +1503,19 @@ func (m *CommentReq) validate(all bool) error { | ||||
| 	} | ||||
|  | ||||
| 	if len(errors) > 0 { | ||||
| 		return CommentReqMultiError(errors) | ||||
| 		return AddCommentReqMultiError(errors) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // CommentReqMultiError is an error wrapping multiple validation errors | ||||
| // returned by CommentReq.ValidateAll() if the designated constraints aren't met. | ||||
| type CommentReqMultiError []error | ||||
| // AddCommentReqMultiError is an error wrapping multiple validation errors | ||||
| // returned by AddCommentReq.ValidateAll() if the designated constraints | ||||
| // aren't met. | ||||
| type AddCommentReqMultiError []error | ||||
|  | ||||
| // Error returns a concatenation of all the error messages it wraps. | ||||
| func (m CommentReqMultiError) Error() string { | ||||
| func (m AddCommentReqMultiError) Error() string { | ||||
| 	var msgs []string | ||||
| 	for _, err := range m { | ||||
| 		msgs = append(msgs, err.Error()) | ||||
| @@ -1522,11 +1524,11 @@ func (m CommentReqMultiError) Error() string { | ||||
| } | ||||
|  | ||||
| // AllErrors returns a list of validation violation errors. | ||||
| func (m CommentReqMultiError) AllErrors() []error { return m } | ||||
| func (m AddCommentReqMultiError) AllErrors() []error { return m } | ||||
|  | ||||
| // CommentReqValidationError is the validation error returned by | ||||
| // CommentReq.Validate if the designated constraints aren't met. | ||||
| type CommentReqValidationError struct { | ||||
| // AddCommentReqValidationError is the validation error returned by | ||||
| // AddCommentReq.Validate if the designated constraints aren't met. | ||||
| type AddCommentReqValidationError struct { | ||||
| 	field  string | ||||
| 	reason string | ||||
| 	cause  error | ||||
| @@ -1534,22 +1536,22 @@ type CommentReqValidationError struct { | ||||
| } | ||||
|  | ||||
| // Field function returns field value. | ||||
| func (e CommentReqValidationError) Field() string { return e.field } | ||||
| func (e AddCommentReqValidationError) Field() string { return e.field } | ||||
|  | ||||
| // Reason function returns reason value. | ||||
| func (e CommentReqValidationError) Reason() string { return e.reason } | ||||
| func (e AddCommentReqValidationError) Reason() string { return e.reason } | ||||
|  | ||||
| // Cause function returns cause value. | ||||
| func (e CommentReqValidationError) Cause() error { return e.cause } | ||||
| func (e AddCommentReqValidationError) Cause() error { return e.cause } | ||||
|  | ||||
| // Key function returns key value. | ||||
| func (e CommentReqValidationError) Key() bool { return e.key } | ||||
| func (e AddCommentReqValidationError) Key() bool { return e.key } | ||||
|  | ||||
| // ErrorName returns error name. | ||||
| func (e CommentReqValidationError) ErrorName() string { return "CommentReqValidationError" } | ||||
| func (e AddCommentReqValidationError) ErrorName() string { return "AddCommentReqValidationError" } | ||||
|  | ||||
| // Error satisfies the builtin error interface | ||||
| func (e CommentReqValidationError) Error() string { | ||||
| func (e AddCommentReqValidationError) Error() string { | ||||
| 	cause := "" | ||||
| 	if e.cause != nil { | ||||
| 		cause = fmt.Sprintf(" | caused by: %v", e.cause) | ||||
| @@ -1561,14 +1563,14 @@ func (e CommentReqValidationError) Error() string { | ||||
| 	} | ||||
|  | ||||
| 	return fmt.Sprintf( | ||||
| 		"invalid %sCommentReq.%s: %s%s", | ||||
| 		"invalid %sAddCommentReq.%s: %s%s", | ||||
| 		key, | ||||
| 		e.field, | ||||
| 		e.reason, | ||||
| 		cause) | ||||
| } | ||||
|  | ||||
| var _ error = CommentReqValidationError{} | ||||
| var _ error = AddCommentReqValidationError{} | ||||
|  | ||||
| var _ interface { | ||||
| 	Field() string | ||||
| @@ -1576,4 +1578,226 @@ var _ interface { | ||||
| 	Key() bool | ||||
| 	Cause() error | ||||
| 	ErrorName() string | ||||
| } = CommentReqValidationError{} | ||||
| } = AddCommentReqValidationError{} | ||||
|  | ||||
| // Validate checks the field values on AddPackageRsp with the rules defined in | ||||
| // the proto definition for this message. If any rules are violated, the first | ||||
| // error encountered is returned, or nil if there are no violations. | ||||
| func (m *AddPackageRsp) Validate() error { | ||||
| 	return m.validate(false) | ||||
| } | ||||
|  | ||||
| // ValidateAll checks the field values on AddPackageRsp with the rules defined | ||||
| // in the proto definition for this message. If any rules are violated, the | ||||
| // result is a list of violation errors wrapped in AddPackageRspMultiError, or | ||||
| // nil if none found. | ||||
| func (m *AddPackageRsp) ValidateAll() error { | ||||
| 	return m.validate(true) | ||||
| } | ||||
|  | ||||
| func (m *AddPackageRsp) validate(all bool) error { | ||||
| 	if m == nil { | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	var errors []error | ||||
|  | ||||
| 	if utf8.RuneCountInString(m.GetName()) < 1 { | ||||
| 		err := AddPackageRspValidationError{ | ||||
| 			field:  "Name", | ||||
| 			reason: "value length must be at least 1 runes", | ||||
| 		} | ||||
| 		if !all { | ||||
| 			return err | ||||
| 		} | ||||
| 		errors = append(errors, err) | ||||
| 	} | ||||
|  | ||||
| 	if utf8.RuneCountInString(m.GetUrl()) < 1 { | ||||
| 		err := AddPackageRspValidationError{ | ||||
| 			field:  "Url", | ||||
| 			reason: "value length must be at least 1 runes", | ||||
| 		} | ||||
| 		if !all { | ||||
| 			return err | ||||
| 		} | ||||
| 		errors = append(errors, err) | ||||
| 	} | ||||
|  | ||||
| 	if len(errors) > 0 { | ||||
| 		return AddPackageRspMultiError(errors) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // AddPackageRspMultiError is an error wrapping multiple validation errors | ||||
| // returned by AddPackageRsp.ValidateAll() if the designated constraints | ||||
| // aren't met. | ||||
| type AddPackageRspMultiError []error | ||||
|  | ||||
| // Error returns a concatenation of all the error messages it wraps. | ||||
| func (m AddPackageRspMultiError) Error() string { | ||||
| 	var msgs []string | ||||
| 	for _, err := range m { | ||||
| 		msgs = append(msgs, err.Error()) | ||||
| 	} | ||||
| 	return strings.Join(msgs, "; ") | ||||
| } | ||||
|  | ||||
| // AllErrors returns a list of validation violation errors. | ||||
| func (m AddPackageRspMultiError) AllErrors() []error { return m } | ||||
|  | ||||
| // AddPackageRspValidationError is the validation error returned by | ||||
| // AddPackageRsp.Validate if the designated constraints aren't met. | ||||
| type AddPackageRspValidationError struct { | ||||
| 	field  string | ||||
| 	reason string | ||||
| 	cause  error | ||||
| 	key    bool | ||||
| } | ||||
|  | ||||
| // Field function returns field value. | ||||
| func (e AddPackageRspValidationError) Field() string { return e.field } | ||||
|  | ||||
| // Reason function returns reason value. | ||||
| func (e AddPackageRspValidationError) Reason() string { return e.reason } | ||||
|  | ||||
| // Cause function returns cause value. | ||||
| func (e AddPackageRspValidationError) Cause() error { return e.cause } | ||||
|  | ||||
| // Key function returns key value. | ||||
| func (e AddPackageRspValidationError) Key() bool { return e.key } | ||||
|  | ||||
| // ErrorName returns error name. | ||||
| func (e AddPackageRspValidationError) ErrorName() string { return "AddPackageRspValidationError" } | ||||
|  | ||||
| // Error satisfies the builtin error interface | ||||
| func (e AddPackageRspValidationError) Error() string { | ||||
| 	cause := "" | ||||
| 	if e.cause != nil { | ||||
| 		cause = fmt.Sprintf(" | caused by: %v", e.cause) | ||||
| 	} | ||||
|  | ||||
| 	key := "" | ||||
| 	if e.key { | ||||
| 		key = "key for " | ||||
| 	} | ||||
|  | ||||
| 	return fmt.Sprintf( | ||||
| 		"invalid %sAddPackageRsp.%s: %s%s", | ||||
| 		key, | ||||
| 		e.field, | ||||
| 		e.reason, | ||||
| 		cause) | ||||
| } | ||||
|  | ||||
| var _ error = AddPackageRspValidationError{} | ||||
|  | ||||
| var _ interface { | ||||
| 	Field() string | ||||
| 	Reason() string | ||||
| 	Key() bool | ||||
| 	Cause() error | ||||
| 	ErrorName() string | ||||
| } = AddPackageRspValidationError{} | ||||
|  | ||||
| // Validate checks the field values on AddPackageReq with the rules defined in | ||||
| // the proto definition for this message. If any rules are violated, the first | ||||
| // error encountered is returned, or nil if there are no violations. | ||||
| func (m *AddPackageReq) Validate() error { | ||||
| 	return m.validate(false) | ||||
| } | ||||
|  | ||||
| // ValidateAll checks the field values on AddPackageReq with the rules defined | ||||
| // in the proto definition for this message. If any rules are violated, the | ||||
| // result is a list of violation errors wrapped in AddPackageReqMultiError, or | ||||
| // nil if none found. | ||||
| func (m *AddPackageReq) ValidateAll() error { | ||||
| 	return m.validate(true) | ||||
| } | ||||
|  | ||||
| func (m *AddPackageReq) validate(all bool) error { | ||||
| 	if m == nil { | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	var errors []error | ||||
|  | ||||
| 	if len(errors) > 0 { | ||||
| 		return AddPackageReqMultiError(errors) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // AddPackageReqMultiError is an error wrapping multiple validation errors | ||||
| // returned by AddPackageReq.ValidateAll() if the designated constraints | ||||
| // aren't met. | ||||
| type AddPackageReqMultiError []error | ||||
|  | ||||
| // Error returns a concatenation of all the error messages it wraps. | ||||
| func (m AddPackageReqMultiError) Error() string { | ||||
| 	var msgs []string | ||||
| 	for _, err := range m { | ||||
| 		msgs = append(msgs, err.Error()) | ||||
| 	} | ||||
| 	return strings.Join(msgs, "; ") | ||||
| } | ||||
|  | ||||
| // AllErrors returns a list of validation violation errors. | ||||
| func (m AddPackageReqMultiError) AllErrors() []error { return m } | ||||
|  | ||||
| // AddPackageReqValidationError is the validation error returned by | ||||
| // AddPackageReq.Validate if the designated constraints aren't met. | ||||
| type AddPackageReqValidationError struct { | ||||
| 	field  string | ||||
| 	reason string | ||||
| 	cause  error | ||||
| 	key    bool | ||||
| } | ||||
|  | ||||
| // Field function returns field value. | ||||
| func (e AddPackageReqValidationError) Field() string { return e.field } | ||||
|  | ||||
| // Reason function returns reason value. | ||||
| func (e AddPackageReqValidationError) Reason() string { return e.reason } | ||||
|  | ||||
| // Cause function returns cause value. | ||||
| func (e AddPackageReqValidationError) Cause() error { return e.cause } | ||||
|  | ||||
| // Key function returns key value. | ||||
| func (e AddPackageReqValidationError) Key() bool { return e.key } | ||||
|  | ||||
| // ErrorName returns error name. | ||||
| func (e AddPackageReqValidationError) ErrorName() string { return "AddPackageReqValidationError" } | ||||
|  | ||||
| // Error satisfies the builtin error interface | ||||
| func (e AddPackageReqValidationError) Error() string { | ||||
| 	cause := "" | ||||
| 	if e.cause != nil { | ||||
| 		cause = fmt.Sprintf(" | caused by: %v", e.cause) | ||||
| 	} | ||||
|  | ||||
| 	key := "" | ||||
| 	if e.key { | ||||
| 		key = "key for " | ||||
| 	} | ||||
|  | ||||
| 	return fmt.Sprintf( | ||||
| 		"invalid %sAddPackageReq.%s: %s%s", | ||||
| 		key, | ||||
| 		e.field, | ||||
| 		e.reason, | ||||
| 		cause) | ||||
| } | ||||
|  | ||||
| var _ error = AddPackageReqValidationError{} | ||||
|  | ||||
| var _ interface { | ||||
| 	Field() string | ||||
| 	Reason() string | ||||
| 	Key() bool | ||||
| 	Cause() error | ||||
| 	ErrorName() string | ||||
| } = AddPackageReqValidationError{} | ||||
|   | ||||
| @@ -23,11 +23,13 @@ var ( | ||||
| type DashboardServiceClient interface { | ||||
| 	ListPackage(ctx context.Context, req *go_generate.ListPackageReq, opts ...client.CallOption) (*go_generate.ListPackageRsp, error) | ||||
| 	UpdateInfo(ctx context.Context, req *go_generate.UpdateInfoPackageRsp, opts ...client.CallOption) (*go_generate.UpdateInfoPackageReq, error) | ||||
| 	AddComment(ctx context.Context, req *go_generate.CommentRsp, opts ...client.CallOption) (*go_generate.CommentReq, error) | ||||
| 	AddComment(ctx context.Context, req *go_generate.AddCommentRsp, opts ...client.CallOption) (*go_generate.AddCommentReq, error) | ||||
| 	AddPackage(ctx context.Context, req *go_generate.AddPackageRsp, opts ...client.CallOption) (*go_generate.AddPackageReq, error) | ||||
| } | ||||
|  | ||||
| type DashboardServiceServer interface { | ||||
| 	ListPackage(ctx context.Context, req *go_generate.ListPackageReq, rsp *go_generate.ListPackageRsp) error | ||||
| 	UpdateInfo(ctx context.Context, req *go_generate.UpdateInfoPackageRsp, rsp *go_generate.UpdateInfoPackageReq) error | ||||
| 	AddComment(ctx context.Context, req *go_generate.CommentRsp, rsp *go_generate.CommentReq) error | ||||
| 	AddComment(ctx context.Context, req *go_generate.AddCommentRsp, rsp *go_generate.AddCommentReq) error | ||||
| 	AddPackage(ctx context.Context, req *go_generate.AddPackageRsp, rsp *go_generate.AddPackageReq) error | ||||
| } | ||||
|   | ||||
| @@ -40,8 +40,8 @@ func (c *dashboardServiceClient) UpdateInfo(ctx context.Context, req *go_generat | ||||
| 	return rsp, nil | ||||
| } | ||||
|  | ||||
| func (c *dashboardServiceClient) AddComment(ctx context.Context, req *go_generate.CommentRsp, opts ...client.CallOption) (*go_generate.CommentReq, error) { | ||||
| 	rsp := &go_generate.CommentReq{} | ||||
| func (c *dashboardServiceClient) AddComment(ctx context.Context, req *go_generate.AddCommentRsp, opts ...client.CallOption) (*go_generate.AddCommentReq, error) { | ||||
| 	rsp := &go_generate.AddCommentReq{} | ||||
| 	err := c.c.Call(ctx, c.c.NewRequest(c.name, "DashboardService.AddComment", req), rsp, opts...) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| @@ -49,6 +49,15 @@ func (c *dashboardServiceClient) AddComment(ctx context.Context, req *go_generat | ||||
| 	return rsp, nil | ||||
| } | ||||
|  | ||||
| func (c *dashboardServiceClient) AddPackage(ctx context.Context, req *go_generate.AddPackageRsp, opts ...client.CallOption) (*go_generate.AddPackageReq, error) { | ||||
| 	rsp := &go_generate.AddPackageReq{} | ||||
| 	err := c.c.Call(ctx, c.c.NewRequest(c.name, "DashboardService.AddPackage", req), rsp, opts...) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return rsp, nil | ||||
| } | ||||
|  | ||||
| type dashboardServiceServer struct { | ||||
| 	DashboardServiceServer | ||||
| } | ||||
| @@ -61,15 +70,20 @@ func (h *dashboardServiceServer) UpdateInfo(ctx context.Context, req *go_generat | ||||
| 	return h.DashboardServiceServer.UpdateInfo(ctx, req, rsp) | ||||
| } | ||||
|  | ||||
| func (h *dashboardServiceServer) AddComment(ctx context.Context, req *go_generate.CommentRsp, rsp *go_generate.CommentReq) error { | ||||
| func (h *dashboardServiceServer) AddComment(ctx context.Context, req *go_generate.AddCommentRsp, rsp *go_generate.AddCommentReq) error { | ||||
| 	return h.DashboardServiceServer.AddComment(ctx, req, rsp) | ||||
| } | ||||
|  | ||||
| func (h *dashboardServiceServer) AddPackage(ctx context.Context, req *go_generate.AddPackageRsp, rsp *go_generate.AddPackageReq) error { | ||||
| 	return h.DashboardServiceServer.AddPackage(ctx, req, rsp) | ||||
| } | ||||
|  | ||||
| func RegisterDashboardServiceServer(s server.Server, sh DashboardServiceServer, opts ...server.HandlerOption) error { | ||||
| 	type dashboardService interface { | ||||
| 		ListPackage(ctx context.Context, req *go_generate.ListPackageReq, rsp *go_generate.ListPackageRsp) error | ||||
| 		UpdateInfo(ctx context.Context, req *go_generate.UpdateInfoPackageRsp, rsp *go_generate.UpdateInfoPackageReq) error | ||||
| 		AddComment(ctx context.Context, req *go_generate.CommentRsp, rsp *go_generate.CommentReq) error | ||||
| 		AddComment(ctx context.Context, req *go_generate.AddCommentRsp, rsp *go_generate.AddCommentReq) error | ||||
| 		AddPackage(ctx context.Context, req *go_generate.AddPackageRsp, rsp *go_generate.AddPackageReq) error | ||||
| 	} | ||||
| 	type DashboardService struct { | ||||
| 		dashboardService | ||||
|   | ||||
| @@ -12,7 +12,6 @@ import ( | ||||
| 	"go.unistack.org/unistack-org/pkgdash/storage" | ||||
|  | ||||
| 	cmsservice "go.unistack.org/cms-service" | ||||
| 	grpcsrv "go.unistack.org/micro-server-grpc/v3" | ||||
| 	"go.unistack.org/micro/v3" | ||||
| 	"go.unistack.org/micro/v3/config" | ||||
| 	"go.unistack.org/micro/v3/logger" | ||||
| @@ -43,12 +42,7 @@ func NewService(ctx context.Context) (micro.Service, error) { | ||||
| 		router = microuter.NewRouter() | ||||
| 	} | ||||
|  | ||||
| 	mgsrv := grpcsrv.NewServer( | ||||
| 		server.Register(reg), | ||||
| 	) | ||||
|  | ||||
| 	svc := micro.NewService( | ||||
| 		micro.Server(mgsrv), | ||||
| 		micro.Register(reg), | ||||
| 		micro.Router(router), | ||||
| 		micro.Config(cs...), | ||||
| @@ -133,9 +127,10 @@ func NewService(ctx context.Context) (micro.Service, error) { | ||||
|  | ||||
| 	mux := http.NewServeMux() | ||||
|  | ||||
| 	mux.HandleFunc("/listPackage", h.ListPackage) | ||||
| 	mux.HandleFunc("/updateInfo", h.UpdateInfo) | ||||
| 	mux.HandleFunc("/addComment", h.AddComment) | ||||
| 	mux.HandleFunc("/listPackage", handler.Methods(http.MethodGet, h.ListPackage)) | ||||
| 	mux.HandleFunc("/updateInfo", handler.Methods(http.MethodPost, h.UpdateInfo)) | ||||
| 	mux.HandleFunc("/addComment", handler.Methods(http.MethodPut, h.AddComment)) | ||||
| 	mux.HandleFunc("/addPackage", handler.Methods(http.MethodPost, h.AddPackage)) | ||||
|  | ||||
| 	if err = svc.Server().Handle(svc.Server().NewHandler(mux)); err != nil { | ||||
| 		logger.Fatalf(ctx, "failed to register handler: %v", err) | ||||
|   | ||||
| @@ -1,12 +1,12 @@ | ||||
| create table if not exists dashboard ( | ||||
|     id serial not null unique primary key , | ||||
|     "uniq_id" uuid not null unique default gen_random_uuid() , | ||||
|     package integer | ||||
|     "uuid" uuid not null unique default gen_random_uuid() , | ||||
|     package integer[] default '{}'::integer[] | ||||
| ); | ||||
|  | ||||
| create table if not exists comment ( | ||||
|     id serial not null unique primary key , | ||||
|     text text , | ||||
|     "text" text , | ||||
|     created timestamp not null default current_timestamp , | ||||
|     updated timestamp | ||||
| ); | ||||
| @@ -20,7 +20,7 @@ create table if not exists module ( | ||||
| create table if not exists issue ( | ||||
|     id serial not null unique primary key , | ||||
|     --package integer references package(id) , | ||||
|     modules integer[] , | ||||
|     modules integer[] default '{}'::integer[], | ||||
|     status integer default 0 , | ||||
|     "desc" varchar | ||||
| ); | ||||
| @@ -29,9 +29,9 @@ create table if not exists package ( | ||||
|     id serial not null unique primary key , | ||||
|     name varchar not null , | ||||
|     url varchar , | ||||
|     modules integer[] , | ||||
|     issues integer[] , | ||||
|     comments integer[] | ||||
|     modules integer[] default '{}'::integer[], | ||||
|     issues integer[] default '{}'::integer[], | ||||
|     comments integer[] default '{}'::integer[] | ||||
| ); | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -2,6 +2,22 @@ package postgres | ||||
|  | ||||
| const ( | ||||
| 	queryListPackage = ` | ||||
| select * from package; | ||||
| select  | ||||
|     id, | ||||
|     name, | ||||
|     url, | ||||
| 	comments | ||||
| 	--modules, | ||||
| 	--issues, | ||||
|     from package; | ||||
| ` | ||||
| 	queryAddComment = ` | ||||
| with insert_comm as ( | ||||
|     insert into comment(text) values ($1) returning id | ||||
| ) | ||||
| update package set comments = array_append(comments, (select * from insert_comm)) where id=$2; | ||||
| ` | ||||
| 	queryAddPackage = ` | ||||
| insert into package(name, url, modules) values ($1, $2, $3); | ||||
| ` | ||||
| ) | ||||
|   | ||||
| @@ -1,14 +1,19 @@ | ||||
| package postgres | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"database/sql" | ||||
| 	"embed" | ||||
| 	"errors" | ||||
| 	"go.unistack.org/unistack-org/pkgdash/config" | ||||
| 	pb "go.unistack.org/unistack-org/pkgdash/proto/go_generate" | ||||
|  | ||||
| 	"github.com/golang-migrate/migrate/v4" | ||||
| 	"github.com/golang-migrate/migrate/v4/database/pgx" | ||||
| 	mpgx "github.com/golang-migrate/migrate/v4/database/pgx" | ||||
| 	"github.com/golang-migrate/migrate/v4/source/iofs" | ||||
| 	"github.com/lib/pq" | ||||
| 	"go.unistack.org/micro/v3/logger" | ||||
| 	"go.unistack.org/unistack-org/pkgdash/config" | ||||
| 	"go.unistack.org/unistack-org/pkgdash/models" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| @@ -31,8 +36,8 @@ func NewStorageFS(fs embed.FS) func(*sql.DB) (interface{}, error) { | ||||
| } | ||||
|  | ||||
| func (s *Postgres) MigrateUp() error { | ||||
| 	driver, err := pgx.WithInstance(s.db, &pgx.Config{ | ||||
| 		MigrationsTable: pgx.DefaultMigrationsTable, | ||||
| 	driver, err := mpgx.WithInstance(s.db, &mpgx.Config{ | ||||
| 		MigrationsTable: mpgx.DefaultMigrationsTable, | ||||
| 		DatabaseName:    config.ServiceName, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| @@ -57,8 +62,8 @@ func (s *Postgres) MigrateUp() error { | ||||
| } | ||||
|  | ||||
| func (s *Postgres) MigrateDown() error { | ||||
| 	driver, err := pgx.WithInstance(s.db, &pgx.Config{ | ||||
| 		MigrationsTable: pgx.DefaultMigrationsTable, | ||||
| 	driver, err := mpgx.WithInstance(s.db, &mpgx.Config{ | ||||
| 		MigrationsTable: mpgx.DefaultMigrationsTable, | ||||
| 		DatabaseName:    config.ServiceName, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| @@ -81,3 +86,92 @@ func (s *Postgres) MigrateDown() error { | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (s *Postgres) ListPackage(ctx context.Context) (models.ListPackage, error) { | ||||
| 	rows, err := s.db.QueryContext(ctx, queryListPackage) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	defer func() { | ||||
| 		if err = rows.Close(); err != nil { | ||||
| 			return | ||||
| 		} | ||||
| 		err = rows.Err() | ||||
| 	}() | ||||
|  | ||||
| 	result := make([]*models.Package, 0) | ||||
| 	for rows.Next() { | ||||
| 		tmp := &models.Package{} | ||||
| 		if err = rows.Scan( | ||||
| 			&tmp.ID, | ||||
| 			&tmp.Name, | ||||
| 			&tmp.URL, | ||||
| 			pq.Array(&tmp.Comments), | ||||
| 		); err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return result, err | ||||
| } | ||||
|  | ||||
| func (s *Postgres) AddComment(ctx context.Context, rsp *pb.AddCommentRsp) error { | ||||
| 	tx, err := s.db.BeginTx(ctx, nil) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	defer func() { | ||||
| 		if err != nil { | ||||
| 			if rollbackErr := tx.Rollback(); rollbackErr != nil { | ||||
| 				logger.Errorf(ctx, "AddComment: unable to rollback: %v", rollbackErr) | ||||
| 			} | ||||
| 		} else { | ||||
| 			err = tx.Commit() | ||||
| 		} | ||||
| 	}() | ||||
|  | ||||
| 	res, err := tx.ExecContext(ctx, queryAddComment, rsp.Text, rsp.IdPackage) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	if aff, affErr := res.RowsAffected(); err != nil { | ||||
| 		err = affErr | ||||
| 	} else if aff == 0 { | ||||
| 		err = errors.New("rows affected is 0") | ||||
| 	} | ||||
|  | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func (s *Postgres) AddPackage(ctx context.Context, rsp *pb.AddPackageRsp) error { | ||||
| 	tx, err := s.db.BeginTx(ctx, nil) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	defer func() { | ||||
| 		if err != nil { | ||||
| 			if rollbackErr := tx.Rollback(); rollbackErr != nil { | ||||
| 				logger.Errorf(ctx, "AddPackage: unable to rollback: %v", rollbackErr) | ||||
| 			} | ||||
| 		} else { | ||||
| 			err = tx.Commit() | ||||
| 		} | ||||
| 	}() | ||||
|  | ||||
| 	res, err := tx.ExecContext(ctx, queryAddPackage, rsp.Name, rsp.Url, pq.Array(rsp.Modules)) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	if aff, affErr := res.RowsAffected(); err != nil { | ||||
| 		err = affErr | ||||
| 	} else if aff == 0 { | ||||
| 		err = errors.New("rows affected is 0") | ||||
| 	} | ||||
|  | ||||
| 	return err | ||||
| } | ||||
|   | ||||
| @@ -5,6 +5,7 @@ import ( | ||||
| 	"database/sql" | ||||
| 	"embed" | ||||
| 	"go.unistack.org/unistack-org/pkgdash/models" | ||||
| 	pb "go.unistack.org/unistack-org/pkgdash/proto/go_generate" | ||||
| 	"go.unistack.org/unistack-org/pkgdash/storage/postgres" | ||||
|  | ||||
| 	cmsstorage "go.unistack.org/cms-service/storage" | ||||
| @@ -24,7 +25,9 @@ func init() { | ||||
| type Storage interface { | ||||
| 	cmsstorage.Migrator | ||||
|  | ||||
| 	List(ctx context.Context) ([]*models.Package, error) | ||||
| 	ListPackage(ctx context.Context) (models.ListPackage, error) | ||||
| 	AddComment(ctx context.Context, rsp *pb.AddCommentRsp) error | ||||
| 	AddPackage(ctx context.Context, rsp *pb.AddPackageRsp) error | ||||
| } | ||||
|  | ||||
| func NewStorage(name string, db *sql.DB) (interface{}, error) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user