Fix protobuf runtime panic on startup
Regenerated protobuf stubs and bumped google.golang.org/protobuf from v1.36.10 to v1.36.11 to match protoc-gen-go v1.36.11. The version mismatch caused a panic in filedesc.unmarshalSeed during init(). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.36.11
|
// protoc-gen-go v1.36.11
|
||||||
// protoc v3.20.3
|
// protoc v6.32.1
|
||||||
// source: mcias/v1/account.proto
|
// source: mcias/v1/account.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
@@ -1080,7 +1080,7 @@ const file_mcias_v1_account_proto_rawDesc = "" +
|
|||||||
"\n" +
|
"\n" +
|
||||||
"GetPGCreds\x12\x1b.mcias.v1.GetPGCredsRequest\x1a\x1c.mcias.v1.GetPGCredsResponse\x12G\n" +
|
"GetPGCreds\x12\x1b.mcias.v1.GetPGCredsRequest\x1a\x1c.mcias.v1.GetPGCredsResponse\x12G\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"SetPGCreds\x12\x1b.mcias.v1.SetPGCredsRequest\x1a\x1c.mcias.v1.SetPGCredsResponseB2Z0git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
"SetPGCreds\x12\x1b.mcias.v1.SetPGCredsRequest\x1a\x1c.mcias.v1.SetPGCredsResponseB0Z.git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
file_mcias_v1_account_proto_rawDescOnce sync.Once
|
file_mcias_v1_account_proto_rawDescOnce sync.Once
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.6.1
|
// - protoc-gen-go-grpc v1.6.1
|
||||||
// - protoc v3.20.3
|
// - protoc v6.32.1
|
||||||
// source: mcias/v1/account.proto
|
// source: mcias/v1/account.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.36.11
|
// protoc-gen-go v1.36.11
|
||||||
// protoc v3.20.3
|
// protoc v6.32.1
|
||||||
// source: mcias/v1/admin.proto
|
// source: mcias/v1/admin.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
@@ -238,7 +238,7 @@ const file_mcias_v1_admin_proto_rawDesc = "" +
|
|||||||
"\x01x\x18\x05 \x01(\tR\x01x2\x9a\x01\n" +
|
"\x01x\x18\x05 \x01(\tR\x01x2\x9a\x01\n" +
|
||||||
"\fAdminService\x12;\n" +
|
"\fAdminService\x12;\n" +
|
||||||
"\x06Health\x12\x17.mcias.v1.HealthRequest\x1a\x18.mcias.v1.HealthResponse\x12M\n" +
|
"\x06Health\x12\x17.mcias.v1.HealthRequest\x1a\x18.mcias.v1.HealthResponse\x12M\n" +
|
||||||
"\fGetPublicKey\x12\x1d.mcias.v1.GetPublicKeyRequest\x1a\x1e.mcias.v1.GetPublicKeyResponseB2Z0git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
"\fGetPublicKey\x12\x1d.mcias.v1.GetPublicKeyRequest\x1a\x1e.mcias.v1.GetPublicKeyResponseB0Z.git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
file_mcias_v1_admin_proto_rawDescOnce sync.Once
|
file_mcias_v1_admin_proto_rawDescOnce sync.Once
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.6.1
|
// - protoc-gen-go-grpc v1.6.1
|
||||||
// - protoc v3.20.3
|
// - protoc v6.32.1
|
||||||
// source: mcias/v1/admin.proto
|
// source: mcias/v1/admin.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.36.11
|
// protoc-gen-go v1.36.11
|
||||||
// protoc v3.20.3
|
// protoc v6.32.1
|
||||||
// source: mcias/v1/auth.proto
|
// source: mcias/v1/auth.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
@@ -919,7 +919,7 @@ const file_mcias_v1_auth_proto_rawDesc = "" +
|
|||||||
"\n" +
|
"\n" +
|
||||||
"RemoveTOTP\x12\x1b.mcias.v1.RemoveTOTPRequest\x1a\x1c.mcias.v1.RemoveTOTPResponse\x12n\n" +
|
"RemoveTOTP\x12\x1b.mcias.v1.RemoveTOTPRequest\x1a\x1c.mcias.v1.RemoveTOTPResponse\x12n\n" +
|
||||||
"\x17ListWebAuthnCredentials\x12(.mcias.v1.ListWebAuthnCredentialsRequest\x1a).mcias.v1.ListWebAuthnCredentialsResponse\x12q\n" +
|
"\x17ListWebAuthnCredentials\x12(.mcias.v1.ListWebAuthnCredentialsRequest\x1a).mcias.v1.ListWebAuthnCredentialsResponse\x12q\n" +
|
||||||
"\x18RemoveWebAuthnCredential\x12).mcias.v1.RemoveWebAuthnCredentialRequest\x1a*.mcias.v1.RemoveWebAuthnCredentialResponseB2Z0git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
"\x18RemoveWebAuthnCredential\x12).mcias.v1.RemoveWebAuthnCredentialRequest\x1a*.mcias.v1.RemoveWebAuthnCredentialResponseB0Z.git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
file_mcias_v1_auth_proto_rawDescOnce sync.Once
|
file_mcias_v1_auth_proto_rawDescOnce sync.Once
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.6.1
|
// - protoc-gen-go-grpc v1.6.1
|
||||||
// - protoc v3.20.3
|
// - protoc v6.32.1
|
||||||
// source: mcias/v1/auth.proto
|
// source: mcias/v1/auth.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.36.11
|
// protoc-gen-go v1.36.11
|
||||||
// protoc v3.20.3
|
// protoc v6.32.1
|
||||||
// source: mcias/v1/common.proto
|
// source: mcias/v1/common.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
@@ -349,7 +349,7 @@ const file_mcias_v1_common_proto_rawDesc = "" +
|
|||||||
"\x04port\x18\x05 \x01(\x05R\x04port\"5\n" +
|
"\x04port\x18\x05 \x01(\x05R\x04port\"5\n" +
|
||||||
"\x05Error\x12\x18\n" +
|
"\x05Error\x12\x18\n" +
|
||||||
"\amessage\x18\x01 \x01(\tR\amessage\x12\x12\n" +
|
"\amessage\x18\x01 \x01(\tR\amessage\x12\x12\n" +
|
||||||
"\x04code\x18\x02 \x01(\tR\x04codeB2Z0git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
"\x04code\x18\x02 \x01(\tR\x04codeB0Z.git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
file_mcias_v1_common_proto_rawDescOnce sync.Once
|
file_mcias_v1_common_proto_rawDescOnce sync.Once
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.36.11
|
// protoc-gen-go v1.36.11
|
||||||
// protoc v3.20.3
|
// protoc v6.32.1
|
||||||
// source: mcias/v1/policy.proto
|
// source: mcias/v1/policy.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
@@ -703,7 +703,7 @@ const file_mcias_v1_policy_proto_rawDesc = "" +
|
|||||||
"\x10CreatePolicyRule\x12!.mcias.v1.CreatePolicyRuleRequest\x1a\".mcias.v1.CreatePolicyRuleResponse\x12P\n" +
|
"\x10CreatePolicyRule\x12!.mcias.v1.CreatePolicyRuleRequest\x1a\".mcias.v1.CreatePolicyRuleResponse\x12P\n" +
|
||||||
"\rGetPolicyRule\x12\x1e.mcias.v1.GetPolicyRuleRequest\x1a\x1f.mcias.v1.GetPolicyRuleResponse\x12Y\n" +
|
"\rGetPolicyRule\x12\x1e.mcias.v1.GetPolicyRuleRequest\x1a\x1f.mcias.v1.GetPolicyRuleResponse\x12Y\n" +
|
||||||
"\x10UpdatePolicyRule\x12!.mcias.v1.UpdatePolicyRuleRequest\x1a\".mcias.v1.UpdatePolicyRuleResponse\x12Y\n" +
|
"\x10UpdatePolicyRule\x12!.mcias.v1.UpdatePolicyRuleRequest\x1a\".mcias.v1.UpdatePolicyRuleResponse\x12Y\n" +
|
||||||
"\x10DeletePolicyRule\x12!.mcias.v1.DeletePolicyRuleRequest\x1a\".mcias.v1.DeletePolicyRuleResponseB2Z0git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
"\x10DeletePolicyRule\x12!.mcias.v1.DeletePolicyRuleRequest\x1a\".mcias.v1.DeletePolicyRuleResponseB0Z.git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
file_mcias_v1_policy_proto_rawDescOnce sync.Once
|
file_mcias_v1_policy_proto_rawDescOnce sync.Once
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.6.1
|
// - protoc-gen-go-grpc v1.6.1
|
||||||
// - protoc v3.20.3
|
// - protoc v6.32.1
|
||||||
// source: mcias/v1/policy.proto
|
// source: mcias/v1/policy.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.36.11
|
// protoc-gen-go v1.36.11
|
||||||
// protoc v3.20.3
|
// protoc v6.32.1
|
||||||
// source: mcias/v1/token.proto
|
// source: mcias/v1/token.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
@@ -346,7 +346,7 @@ const file_mcias_v1_token_proto_rawDesc = "" +
|
|||||||
"\fTokenService\x12P\n" +
|
"\fTokenService\x12P\n" +
|
||||||
"\rValidateToken\x12\x1e.mcias.v1.ValidateTokenRequest\x1a\x1f.mcias.v1.ValidateTokenResponse\x12\\\n" +
|
"\rValidateToken\x12\x1e.mcias.v1.ValidateTokenRequest\x1a\x1f.mcias.v1.ValidateTokenResponse\x12\\\n" +
|
||||||
"\x11IssueServiceToken\x12\".mcias.v1.IssueServiceTokenRequest\x1a#.mcias.v1.IssueServiceTokenResponse\x12J\n" +
|
"\x11IssueServiceToken\x12\".mcias.v1.IssueServiceTokenRequest\x1a#.mcias.v1.IssueServiceTokenResponse\x12J\n" +
|
||||||
"\vRevokeToken\x12\x1c.mcias.v1.RevokeTokenRequest\x1a\x1d.mcias.v1.RevokeTokenResponseB2Z0git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
"\vRevokeToken\x12\x1c.mcias.v1.RevokeTokenRequest\x1a\x1d.mcias.v1.RevokeTokenResponseB0Z.git.wntrmute.dev/mc/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
file_mcias_v1_token_proto_rawDescOnce sync.Once
|
file_mcias_v1_token_proto_rawDescOnce sync.Once
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.6.1
|
// - protoc-gen-go-grpc v1.6.1
|
||||||
// - protoc v3.20.3
|
// - protoc v6.32.1
|
||||||
// source: mcias/v1/token.proto
|
// source: mcias/v1/token.proto
|
||||||
|
|
||||||
package mciasv1
|
package mciasv1
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -13,7 +13,7 @@ require (
|
|||||||
github.com/spf13/cobra v1.10.2
|
github.com/spf13/cobra v1.10.2
|
||||||
golang.org/x/crypto v0.49.0
|
golang.org/x/crypto v0.49.0
|
||||||
google.golang.org/grpc v1.79.3
|
google.golang.org/grpc v1.79.3
|
||||||
google.golang.org/protobuf v1.36.10
|
google.golang.org/protobuf v1.36.11
|
||||||
modernc.org/sqlite v1.47.0
|
modernc.org/sqlite v1.47.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
4
go.sum
4
go.sum
@@ -100,8 +100,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:
|
|||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
|
||||||
google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
|
google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
|
||||||
google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
|
google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
|
||||||
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
|
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
|
||||||
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
|
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
|||||||
11
vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go
generated
vendored
11
vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go
generated
vendored
@@ -32,7 +32,7 @@ var byteType = reflect.TypeOf(byte(0))
|
|||||||
func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor {
|
func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor {
|
||||||
f := new(filedesc.Field)
|
f := new(filedesc.Field)
|
||||||
f.L0.ParentFile = filedesc.SurrogateProto2
|
f.L0.ParentFile = filedesc.SurrogateProto2
|
||||||
f.L1.EditionFeatures = f.L0.ParentFile.L1.EditionFeatures
|
packed := false
|
||||||
for len(tag) > 0 {
|
for len(tag) > 0 {
|
||||||
i := strings.IndexByte(tag, ',')
|
i := strings.IndexByte(tag, ',')
|
||||||
if i < 0 {
|
if i < 0 {
|
||||||
@@ -108,7 +108,7 @@ func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescri
|
|||||||
f.L1.StringName.InitJSON(jsonName)
|
f.L1.StringName.InitJSON(jsonName)
|
||||||
}
|
}
|
||||||
case s == "packed":
|
case s == "packed":
|
||||||
f.L1.EditionFeatures.IsPacked = true
|
packed = true
|
||||||
case strings.HasPrefix(s, "def="):
|
case strings.HasPrefix(s, "def="):
|
||||||
// The default tag is special in that everything afterwards is the
|
// The default tag is special in that everything afterwards is the
|
||||||
// default regardless of the presence of commas.
|
// default regardless of the presence of commas.
|
||||||
@@ -121,6 +121,13 @@ func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescri
|
|||||||
tag = strings.TrimPrefix(tag[i:], ",")
|
tag = strings.TrimPrefix(tag[i:], ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update EditionFeatures after the loop and after we know whether this is
|
||||||
|
// a proto2 or proto3 field.
|
||||||
|
f.L1.EditionFeatures = f.L0.ParentFile.L1.EditionFeatures
|
||||||
|
if packed {
|
||||||
|
f.L1.EditionFeatures.IsPacked = true
|
||||||
|
}
|
||||||
|
|
||||||
// The generator uses the group message name instead of the field name.
|
// The generator uses the group message name instead of the field name.
|
||||||
// We obtain the real field name by lowercasing the group name.
|
// We obtain the real field name by lowercasing the group name.
|
||||||
if f.L1.Kind == protoreflect.GroupKind {
|
if f.L1.Kind == protoreflect.GroupKind {
|
||||||
|
|||||||
121
vendor/google.golang.org/protobuf/internal/encoding/text/decode.go
generated
vendored
121
vendor/google.golang.org/protobuf/internal/encoding/text/decode.go
generated
vendored
@@ -424,27 +424,34 @@ func (d *Decoder) parseFieldName() (tok Token, err error) {
|
|||||||
return Token{}, d.newSyntaxError("invalid field name: %s", errId(d.in))
|
return Token{}, d.newSyntaxError("invalid field name: %s", errId(d.in))
|
||||||
}
|
}
|
||||||
|
|
||||||
// parseTypeName parses Any type URL or extension field name. The name is
|
// parseTypeName parses an Any type URL or an extension field name. The name is
|
||||||
// enclosed in [ and ] characters. The C++ parser does not handle many legal URL
|
// enclosed in [ and ] characters. We allow almost arbitrary type URL prefixes,
|
||||||
// strings. This implementation is more liberal and allows for the pattern
|
// closely following the text-format spec [1,2]. We implement "ExtensionName |
|
||||||
// ^[-_a-zA-Z0-9]+([./][-_a-zA-Z0-9]+)*`). Whitespaces and comments are allowed
|
// AnyName" as follows (with some exceptions for backwards compatibility):
|
||||||
// in between [ ], '.', '/' and the sub names.
|
//
|
||||||
|
// char = [-_a-zA-Z0-9]
|
||||||
|
// url_char = char | [.~!$&'()*+,;=] | "%", hex, hex
|
||||||
|
//
|
||||||
|
// Ident = char, { char }
|
||||||
|
// TypeName = Ident, { ".", Ident } ;
|
||||||
|
// UrlPrefix = url_char, { url_char | "/" } ;
|
||||||
|
// ExtensionName = "[", TypeName, "]" ;
|
||||||
|
// AnyName = "[", UrlPrefix, "/", TypeName, "]" ;
|
||||||
|
//
|
||||||
|
// Additionally, we allow arbitrary whitespace and comments between [ and ].
|
||||||
|
//
|
||||||
|
// [1] https://protobuf.dev/reference/protobuf/textformat-spec/#characters
|
||||||
|
// [2] https://protobuf.dev/reference/protobuf/textformat-spec/#field-names
|
||||||
func (d *Decoder) parseTypeName() (Token, error) {
|
func (d *Decoder) parseTypeName() (Token, error) {
|
||||||
startPos := len(d.orig) - len(d.in)
|
|
||||||
// Use alias s to advance first in order to use d.in for error handling.
|
// Use alias s to advance first in order to use d.in for error handling.
|
||||||
// Caller already checks for [ as first character.
|
// Caller already checks for [ as first character (d.in[0] == '[').
|
||||||
s := consume(d.in[1:], 0)
|
s := consume(d.in[1:], 0)
|
||||||
if len(s) == 0 {
|
if len(s) == 0 {
|
||||||
return Token{}, ErrUnexpectedEOF
|
return Token{}, ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Collect everything between [ and ] in name.
|
||||||
var name []byte
|
var name []byte
|
||||||
for len(s) > 0 && isTypeNameChar(s[0]) {
|
|
||||||
name = append(name, s[0])
|
|
||||||
s = s[1:]
|
|
||||||
}
|
|
||||||
s = consume(s, 0)
|
|
||||||
|
|
||||||
var closed bool
|
var closed bool
|
||||||
for len(s) > 0 && !closed {
|
for len(s) > 0 && !closed {
|
||||||
switch {
|
switch {
|
||||||
@@ -452,23 +459,20 @@ func (d *Decoder) parseTypeName() (Token, error) {
|
|||||||
s = s[1:]
|
s = s[1:]
|
||||||
closed = true
|
closed = true
|
||||||
|
|
||||||
case s[0] == '/', s[0] == '.':
|
case s[0] == '/' || isTypeNameChar(s[0]) || isUrlExtraChar(s[0]):
|
||||||
if len(name) > 0 && (name[len(name)-1] == '/' || name[len(name)-1] == '.') {
|
|
||||||
return Token{}, d.newSyntaxError("invalid type URL/extension field name: %s",
|
|
||||||
d.orig[startPos:len(d.orig)-len(s)+1])
|
|
||||||
}
|
|
||||||
name = append(name, s[0])
|
name = append(name, s[0])
|
||||||
s = s[1:]
|
s = consume(s[1:], 0)
|
||||||
s = consume(s, 0)
|
|
||||||
for len(s) > 0 && isTypeNameChar(s[0]) {
|
// URL percent-encoded chars
|
||||||
name = append(name, s[0])
|
case s[0] == '%':
|
||||||
s = s[1:]
|
if len(s) < 3 || !isHexChar(s[1]) || !isHexChar(s[2]) {
|
||||||
|
return Token{}, d.parseTypeNameError(s, 3)
|
||||||
}
|
}
|
||||||
s = consume(s, 0)
|
name = append(name, s[0], s[1], s[2])
|
||||||
|
s = consume(s[3:], 0)
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return Token{}, d.newSyntaxError(
|
return Token{}, d.parseTypeNameError(s, 1)
|
||||||
"invalid type URL/extension field name: %s", d.orig[startPos:len(d.orig)-len(s)+1])
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -476,15 +480,38 @@ func (d *Decoder) parseTypeName() (Token, error) {
|
|||||||
return Token{}, ErrUnexpectedEOF
|
return Token{}, ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
|
|
||||||
// First character cannot be '.'. Last character cannot be '.' or '/'.
|
// Split collected name on last '/' into urlPrefix and typeName (if '/' is
|
||||||
size := len(name)
|
// present).
|
||||||
if size == 0 || name[0] == '.' || name[size-1] == '.' || name[size-1] == '/' {
|
typeName := name
|
||||||
return Token{}, d.newSyntaxError("invalid type URL/extension field name: %s",
|
if i := bytes.LastIndexByte(name, '/'); i != -1 {
|
||||||
d.orig[startPos:len(d.orig)-len(s)])
|
urlPrefix := name[:i]
|
||||||
|
typeName = name[i+1:]
|
||||||
|
|
||||||
|
// urlPrefix may be empty (for backwards compatibility).
|
||||||
|
// If non-empty, it must not start with '/'.
|
||||||
|
if len(urlPrefix) > 0 && urlPrefix[0] == '/' {
|
||||||
|
return Token{}, d.parseTypeNameError(s, 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// typeName must not be empty (note: "" splits to [""]) and all identifier
|
||||||
|
// parts must not be empty.
|
||||||
|
for _, ident := range bytes.Split(typeName, []byte{'.'}) {
|
||||||
|
if len(ident) == 0 {
|
||||||
|
return Token{}, d.parseTypeNameError(s, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// typeName must not contain any percent-encoded or special URL chars.
|
||||||
|
for _, b := range typeName {
|
||||||
|
if b == '%' || (b != '.' && isUrlExtraChar(b)) {
|
||||||
|
return Token{}, d.parseTypeNameError(s, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
startPos := len(d.orig) - len(d.in)
|
||||||
|
endPos := len(d.orig) - len(s)
|
||||||
d.in = s
|
d.in = s
|
||||||
endPos := len(d.orig) - len(d.in)
|
|
||||||
d.consume(0)
|
d.consume(0)
|
||||||
|
|
||||||
return Token{
|
return Token{
|
||||||
@@ -496,16 +523,32 @@ func (d *Decoder) parseTypeName() (Token, error) {
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func isTypeNameChar(b byte) bool {
|
func (d *Decoder) parseTypeNameError(s []byte, numUnconsumedChars int) error {
|
||||||
return (b == '-' || b == '_' ||
|
return d.newSyntaxError(
|
||||||
('0' <= b && b <= '9') ||
|
"invalid type URL/extension field name: %s",
|
||||||
('a' <= b && b <= 'z') ||
|
d.in[:len(d.in)-len(s)+min(numUnconsumedChars, len(s))],
|
||||||
('A' <= b && b <= 'Z'))
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func isWhiteSpace(b byte) bool {
|
func isHexChar(b byte) bool {
|
||||||
|
return ('0' <= b && b <= '9') ||
|
||||||
|
('a' <= b && b <= 'f') ||
|
||||||
|
('A' <= b && b <= 'F')
|
||||||
|
}
|
||||||
|
|
||||||
|
func isTypeNameChar(b byte) bool {
|
||||||
|
return b == '-' || b == '_' ||
|
||||||
|
('0' <= b && b <= '9') ||
|
||||||
|
('a' <= b && b <= 'z') ||
|
||||||
|
('A' <= b && b <= 'Z')
|
||||||
|
}
|
||||||
|
|
||||||
|
// isUrlExtraChar complements isTypeNameChar with extra characters that we allow
|
||||||
|
// in URLs but not in type names. Note that '/' is not included so that it can
|
||||||
|
// be treated specially.
|
||||||
|
func isUrlExtraChar(b byte) bool {
|
||||||
switch b {
|
switch b {
|
||||||
case ' ', '\n', '\r', '\t':
|
case '.', '~', '!', '$', '&', '(', ')', '*', '+', ',', ';', '=':
|
||||||
return true
|
return true
|
||||||
default:
|
default:
|
||||||
return false
|
return false
|
||||||
|
|||||||
1
vendor/google.golang.org/protobuf/internal/filedesc/desc.go
generated
vendored
1
vendor/google.golang.org/protobuf/internal/filedesc/desc.go
generated
vendored
@@ -32,6 +32,7 @@ const (
|
|||||||
EditionProto3 Edition = 999
|
EditionProto3 Edition = 999
|
||||||
Edition2023 Edition = 1000
|
Edition2023 Edition = 1000
|
||||||
Edition2024 Edition = 1001
|
Edition2024 Edition = 1001
|
||||||
|
EditionUnstable Edition = 9999
|
||||||
EditionUnsupported Edition = 100000
|
EditionUnsupported Edition = 100000
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
22
vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
generated
vendored
22
vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
generated
vendored
@@ -330,7 +330,6 @@ func (md *Message) unmarshalFull(b []byte, sb *strs.Builder) {
|
|||||||
md.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb)
|
md.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb)
|
||||||
extensionIdx++
|
extensionIdx++
|
||||||
case genid.DescriptorProto_Options_field_number:
|
case genid.DescriptorProto_Options_field_number:
|
||||||
md.unmarshalOptions(v)
|
|
||||||
rawOptions = appendOptions(rawOptions, v)
|
rawOptions = appendOptions(rawOptions, v)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -356,27 +355,6 @@ func (md *Message) unmarshalFull(b []byte, sb *strs.Builder) {
|
|||||||
md.L2.Options = md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Message, rawOptions)
|
md.L2.Options = md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Message, rawOptions)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (md *Message) unmarshalOptions(b []byte) {
|
|
||||||
for len(b) > 0 {
|
|
||||||
num, typ, n := protowire.ConsumeTag(b)
|
|
||||||
b = b[n:]
|
|
||||||
switch typ {
|
|
||||||
case protowire.VarintType:
|
|
||||||
v, m := protowire.ConsumeVarint(b)
|
|
||||||
b = b[m:]
|
|
||||||
switch num {
|
|
||||||
case genid.MessageOptions_MapEntry_field_number:
|
|
||||||
md.L1.IsMapEntry = protowire.DecodeBool(v)
|
|
||||||
case genid.MessageOptions_MessageSetWireFormat_field_number:
|
|
||||||
md.L1.IsMessageSet = protowire.DecodeBool(v)
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
m := protowire.ConsumeFieldValue(num, typ, b)
|
|
||||||
b = b[m:]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func unmarshalMessageReservedRange(b []byte) (r [2]protoreflect.FieldNumber) {
|
func unmarshalMessageReservedRange(b []byte) (r [2]protoreflect.FieldNumber) {
|
||||||
for len(b) > 0 {
|
for len(b) > 0 {
|
||||||
num, typ, n := protowire.ConsumeTag(b)
|
num, typ, n := protowire.ConsumeTag(b)
|
||||||
|
|||||||
1
vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go
generated
vendored
1
vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go
generated
vendored
@@ -26,6 +26,7 @@ const (
|
|||||||
Edition_EDITION_PROTO3_enum_value = 999
|
Edition_EDITION_PROTO3_enum_value = 999
|
||||||
Edition_EDITION_2023_enum_value = 1000
|
Edition_EDITION_2023_enum_value = 1000
|
||||||
Edition_EDITION_2024_enum_value = 1001
|
Edition_EDITION_2024_enum_value = 1001
|
||||||
|
Edition_EDITION_UNSTABLE_enum_value = 9999
|
||||||
Edition_EDITION_1_TEST_ONLY_enum_value = 1
|
Edition_EDITION_1_TEST_ONLY_enum_value = 1
|
||||||
Edition_EDITION_2_TEST_ONLY_enum_value = 2
|
Edition_EDITION_2_TEST_ONLY_enum_value = 2
|
||||||
Edition_EDITION_99997_TEST_ONLY_enum_value = 99997
|
Edition_EDITION_99997_TEST_ONLY_enum_value = 99997
|
||||||
|
|||||||
6
vendor/google.golang.org/protobuf/internal/impl/codec_map.go
generated
vendored
6
vendor/google.golang.org/protobuf/internal/impl/codec_map.go
generated
vendored
@@ -113,6 +113,9 @@ func sizeMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalO
|
|||||||
}
|
}
|
||||||
|
|
||||||
func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {
|
func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {
|
||||||
|
if opts.depth--; opts.depth < 0 {
|
||||||
|
return out, errRecursionDepth
|
||||||
|
}
|
||||||
if wtyp != protowire.BytesType {
|
if wtyp != protowire.BytesType {
|
||||||
return out, errUnknown
|
return out, errUnknown
|
||||||
}
|
}
|
||||||
@@ -170,6 +173,9 @@ func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo
|
|||||||
}
|
}
|
||||||
|
|
||||||
func consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {
|
func consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {
|
||||||
|
if opts.depth--; opts.depth < 0 {
|
||||||
|
return out, errRecursionDepth
|
||||||
|
}
|
||||||
if wtyp != protowire.BytesType {
|
if wtyp != protowire.BytesType {
|
||||||
return out, errUnknown
|
return out, errUnknown
|
||||||
}
|
}
|
||||||
|
|||||||
3
vendor/google.golang.org/protobuf/internal/impl/decode.go
generated
vendored
3
vendor/google.golang.org/protobuf/internal/impl/decode.go
generated
vendored
@@ -102,8 +102,7 @@ var errUnknown = errors.New("unknown")
|
|||||||
|
|
||||||
func (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, err error) {
|
func (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, err error) {
|
||||||
mi.init()
|
mi.init()
|
||||||
opts.depth--
|
if opts.depth--; opts.depth < 0 {
|
||||||
if opts.depth < 0 {
|
|
||||||
return out, errRecursionDepth
|
return out, errRecursionDepth
|
||||||
}
|
}
|
||||||
if flags.ProtoLegacy && mi.isMessageSet {
|
if flags.ProtoLegacy && mi.isMessageSet {
|
||||||
|
|||||||
26
vendor/google.golang.org/protobuf/internal/impl/validate.go
generated
vendored
26
vendor/google.golang.org/protobuf/internal/impl/validate.go
generated
vendored
@@ -68,9 +68,13 @@ func Validate(mt protoreflect.MessageType, in protoiface.UnmarshalInput) (out pr
|
|||||||
if in.Resolver == nil {
|
if in.Resolver == nil {
|
||||||
in.Resolver = protoregistry.GlobalTypes
|
in.Resolver = protoregistry.GlobalTypes
|
||||||
}
|
}
|
||||||
|
if in.Depth == 0 {
|
||||||
|
in.Depth = protowire.DefaultRecursionLimit
|
||||||
|
}
|
||||||
o, st := mi.validate(in.Buf, 0, unmarshalOptions{
|
o, st := mi.validate(in.Buf, 0, unmarshalOptions{
|
||||||
flags: in.Flags,
|
flags: in.Flags,
|
||||||
resolver: in.Resolver,
|
resolver: in.Resolver,
|
||||||
|
depth: in.Depth,
|
||||||
})
|
})
|
||||||
if o.initialized {
|
if o.initialized {
|
||||||
out.Flags |= protoiface.UnmarshalInitialized
|
out.Flags |= protoiface.UnmarshalInitialized
|
||||||
@@ -257,6 +261,9 @@ func (mi *MessageInfo) validate(b []byte, groupTag protowire.Number, opts unmars
|
|||||||
states[0].typ = validationTypeGroup
|
states[0].typ = validationTypeGroup
|
||||||
states[0].endGroup = groupTag
|
states[0].endGroup = groupTag
|
||||||
}
|
}
|
||||||
|
if opts.depth--; opts.depth < 0 {
|
||||||
|
return out, ValidationInvalid
|
||||||
|
}
|
||||||
initialized := true
|
initialized := true
|
||||||
start := len(b)
|
start := len(b)
|
||||||
State:
|
State:
|
||||||
@@ -451,6 +458,13 @@ State:
|
|||||||
mi: vi.mi,
|
mi: vi.mi,
|
||||||
tail: b,
|
tail: b,
|
||||||
})
|
})
|
||||||
|
if vi.typ == validationTypeMessage ||
|
||||||
|
vi.typ == validationTypeGroup ||
|
||||||
|
vi.typ == validationTypeMap {
|
||||||
|
if opts.depth--; opts.depth < 0 {
|
||||||
|
return out, ValidationInvalid
|
||||||
|
}
|
||||||
|
}
|
||||||
b = v
|
b = v
|
||||||
continue State
|
continue State
|
||||||
case validationTypeRepeatedVarint:
|
case validationTypeRepeatedVarint:
|
||||||
@@ -499,6 +513,9 @@ State:
|
|||||||
mi: vi.mi,
|
mi: vi.mi,
|
||||||
endGroup: num,
|
endGroup: num,
|
||||||
})
|
})
|
||||||
|
if opts.depth--; opts.depth < 0 {
|
||||||
|
return out, ValidationInvalid
|
||||||
|
}
|
||||||
continue State
|
continue State
|
||||||
case flags.ProtoLegacy && vi.typ == validationTypeMessageSetItem:
|
case flags.ProtoLegacy && vi.typ == validationTypeMessageSetItem:
|
||||||
typeid, v, n, err := messageset.ConsumeFieldValue(b, false)
|
typeid, v, n, err := messageset.ConsumeFieldValue(b, false)
|
||||||
@@ -521,6 +538,13 @@ State:
|
|||||||
mi: xvi.mi,
|
mi: xvi.mi,
|
||||||
tail: b[n:],
|
tail: b[n:],
|
||||||
})
|
})
|
||||||
|
if xvi.typ == validationTypeMessage ||
|
||||||
|
xvi.typ == validationTypeGroup ||
|
||||||
|
xvi.typ == validationTypeMap {
|
||||||
|
if opts.depth--; opts.depth < 0 {
|
||||||
|
return out, ValidationInvalid
|
||||||
|
}
|
||||||
|
}
|
||||||
b = v
|
b = v
|
||||||
continue State
|
continue State
|
||||||
}
|
}
|
||||||
@@ -547,12 +571,14 @@ State:
|
|||||||
switch st.typ {
|
switch st.typ {
|
||||||
case validationTypeMessage, validationTypeGroup:
|
case validationTypeMessage, validationTypeGroup:
|
||||||
numRequiredFields = int(st.mi.numRequiredFields)
|
numRequiredFields = int(st.mi.numRequiredFields)
|
||||||
|
opts.depth++
|
||||||
case validationTypeMap:
|
case validationTypeMap:
|
||||||
// If this is a map field with a message value that contains
|
// If this is a map field with a message value that contains
|
||||||
// required fields, require that the value be present.
|
// required fields, require that the value be present.
|
||||||
if st.mi != nil && st.mi.numRequiredFields > 0 {
|
if st.mi != nil && st.mi.numRequiredFields > 0 {
|
||||||
numRequiredFields = 1
|
numRequiredFields = 1
|
||||||
}
|
}
|
||||||
|
opts.depth++
|
||||||
}
|
}
|
||||||
// If there are more than 64 required fields, this check will
|
// If there are more than 64 required fields, this check will
|
||||||
// always fail and we will report that the message is potentially
|
// always fail and we will report that the message is potentially
|
||||||
|
|||||||
2
vendor/google.golang.org/protobuf/internal/version/version.go
generated
vendored
2
vendor/google.golang.org/protobuf/internal/version/version.go
generated
vendored
@@ -52,7 +52,7 @@ import (
|
|||||||
const (
|
const (
|
||||||
Major = 1
|
Major = 1
|
||||||
Minor = 36
|
Minor = 36
|
||||||
Patch = 10
|
Patch = 11
|
||||||
PreRelease = ""
|
PreRelease = ""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
10
vendor/google.golang.org/protobuf/proto/decode.go
generated
vendored
10
vendor/google.golang.org/protobuf/proto/decode.go
generated
vendored
@@ -121,9 +121,8 @@ func (o UnmarshalOptions) unmarshal(b []byte, m protoreflect.Message) (out proto
|
|||||||
|
|
||||||
out, err = methods.Unmarshal(in)
|
out, err = methods.Unmarshal(in)
|
||||||
} else {
|
} else {
|
||||||
o.RecursionLimit--
|
if o.RecursionLimit--; o.RecursionLimit < 0 {
|
||||||
if o.RecursionLimit < 0 {
|
return out, errRecursionDepth
|
||||||
return out, errors.New("exceeded max recursion depth")
|
|
||||||
}
|
}
|
||||||
err = o.unmarshalMessageSlow(b, m)
|
err = o.unmarshalMessageSlow(b, m)
|
||||||
}
|
}
|
||||||
@@ -220,6 +219,9 @@ func (o UnmarshalOptions) unmarshalSingular(b []byte, wtyp protowire.Type, m pro
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv protoreflect.Map, fd protoreflect.FieldDescriptor) (n int, err error) {
|
func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv protoreflect.Map, fd protoreflect.FieldDescriptor) (n int, err error) {
|
||||||
|
if o.RecursionLimit--; o.RecursionLimit < 0 {
|
||||||
|
return 0, errRecursionDepth
|
||||||
|
}
|
||||||
if wtyp != protowire.BytesType {
|
if wtyp != protowire.BytesType {
|
||||||
return 0, errUnknown
|
return 0, errUnknown
|
||||||
}
|
}
|
||||||
@@ -305,3 +307,5 @@ func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv proto
|
|||||||
var errUnknown = errors.New("BUG: internal error (unknown)")
|
var errUnknown = errors.New("BUG: internal error (unknown)")
|
||||||
|
|
||||||
var errDecode = errors.New("cannot parse invalid wire-format data")
|
var errDecode = errors.New("cannot parse invalid wire-format data")
|
||||||
|
|
||||||
|
var errRecursionDepth = errors.New("exceeded maximum recursion depth")
|
||||||
|
|||||||
13
vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go
generated
vendored
13
vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go
generated
vendored
@@ -172,13 +172,14 @@ import (
|
|||||||
// ) to obtain a formatter capable of generating timestamps in this format.
|
// ) to obtain a formatter capable of generating timestamps in this format.
|
||||||
type Timestamp struct {
|
type Timestamp struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
// Represents seconds of UTC time since Unix epoch
|
// Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must
|
||||||
// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
|
// be between -315576000000 and 315576000000 inclusive (which corresponds to
|
||||||
// 9999-12-31T23:59:59Z inclusive.
|
// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).
|
||||||
Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
|
Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
|
||||||
// Non-negative fractions of a second at nanosecond resolution. Negative
|
// Non-negative fractions of a second at nanosecond resolution. This field is
|
||||||
// second values with fractions must still have non-negative nanos values
|
// the nanosecond portion of the duration, not an alternative to seconds.
|
||||||
// that count forward in time. Must be from 0 to 999,999,999
|
// Negative second values with fractions must still have non-negative nanos
|
||||||
|
// values that count forward in time. Must be between 0 and 999,999,999
|
||||||
// inclusive.
|
// inclusive.
|
||||||
Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`
|
Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|||||||
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@@ -172,7 +172,7 @@ google.golang.org/grpc/stats
|
|||||||
google.golang.org/grpc/status
|
google.golang.org/grpc/status
|
||||||
google.golang.org/grpc/tap
|
google.golang.org/grpc/tap
|
||||||
google.golang.org/grpc/test/bufconn
|
google.golang.org/grpc/test/bufconn
|
||||||
# google.golang.org/protobuf v1.36.10
|
# google.golang.org/protobuf v1.36.11
|
||||||
## explicit; go 1.23
|
## explicit; go 1.23
|
||||||
google.golang.org/protobuf/encoding/protojson
|
google.golang.org/protobuf/encoding/protojson
|
||||||
google.golang.org/protobuf/encoding/prototext
|
google.golang.org/protobuf/encoding/prototext
|
||||||
|
|||||||
Reference in New Issue
Block a user