diff --git a/docker-compose.yaml b/docker-compose.yaml index fe0f38f69..b2da78ac4 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -12,7 +12,7 @@ name: fivenet services: # NGINX reverse proxy nginx-proxy: - image: docker.io/nginxproxy/nginx-proxy:1.6 + image: docker.io/nginxproxy/nginx-proxy:1.7 container_name: nginx-proxy environment: {} ports: diff --git a/gen/go/proto/resources/sync/data.pb.go b/gen/go/proto/resources/sync/data.pb.go index db8563a86..90191466d 100644 --- a/gen/go/proto/resources/sync/data.pb.go +++ b/gen/go/proto/resources/sync/data.pb.go @@ -372,6 +372,94 @@ func (x *UserLocation) GetRemove() bool { return false } +type DeleteUsers struct { + state protoimpl.MessageState `protogen:"open.v1"` + UserIds []int32 `protobuf:"varint,1,rep,packed,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteUsers) Reset() { + *x = DeleteUsers{} + mi := &file_resources_sync_data_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteUsers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUsers) ProtoMessage() {} + +func (x *DeleteUsers) ProtoReflect() protoreflect.Message { + mi := &file_resources_sync_data_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteUsers.ProtoReflect.Descriptor instead. +func (*DeleteUsers) Descriptor() ([]byte, []int) { + return file_resources_sync_data_proto_rawDescGZIP(), []int{7} +} + +func (x *DeleteUsers) GetUserIds() []int32 { + if x != nil { + return x.UserIds + } + return nil +} + +type DeleteVehicles struct { + state protoimpl.MessageState `protogen:"open.v1"` + Plates []string `protobuf:"bytes,1,rep,name=plates,proto3" json:"plates,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteVehicles) Reset() { + *x = DeleteVehicles{} + mi := &file_resources_sync_data_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteVehicles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteVehicles) ProtoMessage() {} + +func (x *DeleteVehicles) ProtoReflect() protoreflect.Message { + mi := &file_resources_sync_data_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteVehicles.ProtoReflect.Descriptor instead. +func (*DeleteVehicles) Descriptor() ([]byte, []int) { + return file_resources_sync_data_proto_rawDescGZIP(), []int{8} +} + +func (x *DeleteVehicles) GetPlates() []string { + if x != nil { + return x.Plates + } + return nil +} + var File_resources_sync_data_proto protoreflect.FileDescriptor var file_resources_sync_data_proto_rawDesc = []byte{ @@ -430,12 +518,18 @@ var file_resources_sync_data_proto_rawDesc = []byte{ 0x06, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x74, 0x2d, 0x61, 0x70, - 0x70, 0x2f, 0x66, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x3b, 0x73, 0x79, 0x6e, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x32, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, + 0x10, 0x64, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, + 0x06, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, 0x64, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x42, + 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x69, + 0x76, 0x65, 0x6e, 0x65, 0x74, 0x2d, 0x61, 0x70, 0x70, 0x2f, 0x66, 0x69, 0x76, 0x65, 0x6e, 0x65, + 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x3b, 0x73, 0x79, + 0x6e, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -450,7 +544,7 @@ func file_resources_sync_data_proto_rawDescGZIP() []byte { return file_resources_sync_data_proto_rawDescData } -var file_resources_sync_data_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_resources_sync_data_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_resources_sync_data_proto_goTypes = []any{ (*DataStatus)(nil), // 0: resources.sync.DataStatus (*DataJobs)(nil), // 1: resources.sync.DataJobs @@ -459,19 +553,21 @@ var file_resources_sync_data_proto_goTypes = []any{ (*DataLicenses)(nil), // 4: resources.sync.DataLicenses (*DataUserLocations)(nil), // 5: resources.sync.DataUserLocations (*UserLocation)(nil), // 6: resources.sync.UserLocation - (*users.Job)(nil), // 7: resources.users.Job - (*users.User)(nil), // 8: resources.users.User - (*vehicles.Vehicle)(nil), // 9: resources.vehicles.Vehicle - (*users.License)(nil), // 10: resources.users.License - (*livemap.Coords)(nil), // 11: resources.livemap.Coords + (*DeleteUsers)(nil), // 7: resources.sync.DeleteUsers + (*DeleteVehicles)(nil), // 8: resources.sync.DeleteVehicles + (*users.Job)(nil), // 9: resources.users.Job + (*users.User)(nil), // 10: resources.users.User + (*vehicles.Vehicle)(nil), // 11: resources.vehicles.Vehicle + (*users.License)(nil), // 12: resources.users.License + (*livemap.Coords)(nil), // 13: resources.livemap.Coords } var file_resources_sync_data_proto_depIdxs = []int32{ - 7, // 0: resources.sync.DataJobs.jobs:type_name -> resources.users.Job - 8, // 1: resources.sync.DataUsers.users:type_name -> resources.users.User - 9, // 2: resources.sync.DataVehicles.vehicles:type_name -> resources.vehicles.Vehicle - 10, // 3: resources.sync.DataLicenses.licenses:type_name -> resources.users.License + 9, // 0: resources.sync.DataJobs.jobs:type_name -> resources.users.Job + 10, // 1: resources.sync.DataUsers.users:type_name -> resources.users.User + 11, // 2: resources.sync.DataVehicles.vehicles:type_name -> resources.vehicles.Vehicle + 12, // 3: resources.sync.DataLicenses.licenses:type_name -> resources.users.License 6, // 4: resources.sync.DataUserLocations.users:type_name -> resources.sync.UserLocation - 11, // 5: resources.sync.UserLocation.coords:type_name -> resources.livemap.Coords + 13, // 5: resources.sync.UserLocation.coords:type_name -> resources.livemap.Coords 6, // [6:6] is the sub-list for method output_type 6, // [6:6] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name @@ -491,7 +587,7 @@ func file_resources_sync_data_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_resources_sync_data_proto_rawDesc, NumEnums: 0, - NumMessages: 7, + NumMessages: 9, NumExtensions: 0, NumServices: 0, }, diff --git a/gen/go/proto/resources/sync/data.pb.sanitizer.go b/gen/go/proto/resources/sync/data.pb.sanitizer.go index 7a5ab00ae..d9740daec 100644 --- a/gen/go/proto/resources/sync/data.pb.sanitizer.go +++ b/gen/go/proto/resources/sync/data.pb.sanitizer.go @@ -111,6 +111,22 @@ func (m *DataVehicles) Sanitize() error { return nil } +func (m *DeleteUsers) Sanitize() error { + if m == nil { + return nil + } + + return nil +} + +func (m *DeleteVehicles) Sanitize() error { + if m == nil { + return nil + } + + return nil +} + func (m *UserLocation) Sanitize() error { if m == nil { return nil diff --git a/gen/go/proto/resources/sync/data.pb.validate.go b/gen/go/proto/resources/sync/data.pb.validate.go index 3bd80d53c..81a0424e8 100644 --- a/gen/go/proto/resources/sync/data.pb.validate.go +++ b/gen/go/proto/resources/sync/data.pb.validate.go @@ -1027,3 +1027,224 @@ var _ interface { Cause() error ErrorName() string } = UserLocationValidationError{} + +// Validate checks the field values on DeleteUsers 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 *DeleteUsers) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteUsers 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 DeleteUsersMultiError, or +// nil if none found. +func (m *DeleteUsers) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteUsers) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(m.GetUserIds()) > 100 { + err := DeleteUsersValidationError{ + field: "UserIds", + reason: "value must contain no more than 100 item(s)", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return DeleteUsersMultiError(errors) + } + + return nil +} + +// DeleteUsersMultiError is an error wrapping multiple validation errors +// returned by DeleteUsers.ValidateAll() if the designated constraints aren't met. +type DeleteUsersMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteUsersMultiError) 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 DeleteUsersMultiError) AllErrors() []error { return m } + +// DeleteUsersValidationError is the validation error returned by +// DeleteUsers.Validate if the designated constraints aren't met. +type DeleteUsersValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteUsersValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteUsersValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteUsersValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteUsersValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteUsersValidationError) ErrorName() string { return "DeleteUsersValidationError" } + +// Error satisfies the builtin error interface +func (e DeleteUsersValidationError) 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 %sDeleteUsers.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteUsersValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteUsersValidationError{} + +// Validate checks the field values on DeleteVehicles 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 *DeleteVehicles) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteVehicles 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 DeleteVehiclesMultiError, +// or nil if none found. +func (m *DeleteVehicles) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteVehicles) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(m.GetPlates()) > 100 { + err := DeleteVehiclesValidationError{ + field: "Plates", + reason: "value must contain no more than 100 item(s)", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return DeleteVehiclesMultiError(errors) + } + + return nil +} + +// DeleteVehiclesMultiError is an error wrapping multiple validation errors +// returned by DeleteVehicles.ValidateAll() if the designated constraints +// aren't met. +type DeleteVehiclesMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteVehiclesMultiError) 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 DeleteVehiclesMultiError) AllErrors() []error { return m } + +// DeleteVehiclesValidationError is the validation error returned by +// DeleteVehicles.Validate if the designated constraints aren't met. +type DeleteVehiclesValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteVehiclesValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteVehiclesValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteVehiclesValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteVehiclesValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteVehiclesValidationError) ErrorName() string { return "DeleteVehiclesValidationError" } + +// Error satisfies the builtin error interface +func (e DeleteVehiclesValidationError) 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 %sDeleteVehicles.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteVehiclesValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteVehiclesValidationError{} diff --git a/gen/go/proto/services/sync/sync.pb.go b/gen/go/proto/services/sync/sync.pb.go index 9e486b08a..fa060b7bf 100644 --- a/gen/go/proto/services/sync/sync.pb.go +++ b/gen/go/proto/services/sync/sync.pb.go @@ -731,6 +731,124 @@ func (x *SendDataResponse) GetAffectedRows() int64 { return 0 } +type DeleteDataRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Data: + // + // *DeleteDataRequest_Users + // *DeleteDataRequest_Vehicles + Data isDeleteDataRequest_Data `protobuf_oneof:"data"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteDataRequest) Reset() { + *x = DeleteDataRequest{} + mi := &file_services_sync_sync_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteDataRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDataRequest) ProtoMessage() {} + +func (x *DeleteDataRequest) ProtoReflect() protoreflect.Message { + mi := &file_services_sync_sync_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteDataRequest.ProtoReflect.Descriptor instead. +func (*DeleteDataRequest) Descriptor() ([]byte, []int) { + return file_services_sync_sync_proto_rawDescGZIP(), []int{10} +} + +func (x *DeleteDataRequest) GetData() isDeleteDataRequest_Data { + if x != nil { + return x.Data + } + return nil +} + +func (x *DeleteDataRequest) GetUsers() *sync.DeleteUsers { + if x != nil { + if x, ok := x.Data.(*DeleteDataRequest_Users); ok { + return x.Users + } + } + return nil +} + +func (x *DeleteDataRequest) GetVehicles() *sync.DeleteUsers { + if x != nil { + if x, ok := x.Data.(*DeleteDataRequest_Vehicles); ok { + return x.Vehicles + } + } + return nil +} + +type isDeleteDataRequest_Data interface { + isDeleteDataRequest_Data() +} + +type DeleteDataRequest_Users struct { + Users *sync.DeleteUsers `protobuf:"bytes,1,opt,name=users,proto3,oneof"` +} + +type DeleteDataRequest_Vehicles struct { + Vehicles *sync.DeleteUsers `protobuf:"bytes,2,opt,name=vehicles,proto3,oneof"` +} + +func (*DeleteDataRequest_Users) isDeleteDataRequest_Data() {} + +func (*DeleteDataRequest_Vehicles) isDeleteDataRequest_Data() {} + +type DeleteDataResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteDataResponse) Reset() { + *x = DeleteDataResponse{} + mi := &file_services_sync_sync_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteDataResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDataResponse) ProtoMessage() {} + +func (x *DeleteDataResponse) ProtoReflect() protoreflect.Message { + mi := &file_services_sync_sync_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteDataResponse.ProtoReflect.Descriptor instead. +func (*DeleteDataResponse) Descriptor() ([]byte, []int) { + return file_services_sync_sync_proto_rawDescGZIP(), []int{11} +} + type StreamRequest struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields @@ -739,7 +857,7 @@ type StreamRequest struct { func (x *StreamRequest) Reset() { *x = StreamRequest{} - mi := &file_services_sync_sync_proto_msgTypes[10] + mi := &file_services_sync_sync_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -751,7 +869,7 @@ func (x *StreamRequest) String() string { func (*StreamRequest) ProtoMessage() {} func (x *StreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_services_sync_sync_proto_msgTypes[10] + mi := &file_services_sync_sync_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -764,7 +882,7 @@ func (x *StreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamRequest.ProtoReflect.Descriptor instead. func (*StreamRequest) Descriptor() ([]byte, []int) { - return file_services_sync_sync_proto_rawDescGZIP(), []int{10} + return file_services_sync_sync_proto_rawDescGZIP(), []int{12} } type StreamResponse struct { @@ -776,7 +894,7 @@ type StreamResponse struct { func (x *StreamResponse) Reset() { *x = StreamResponse{} - mi := &file_services_sync_sync_proto_msgTypes[11] + mi := &file_services_sync_sync_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -788,7 +906,7 @@ func (x *StreamResponse) String() string { func (*StreamResponse) ProtoMessage() {} func (x *StreamResponse) ProtoReflect() protoreflect.Message { - mi := &file_services_sync_sync_proto_msgTypes[11] + mi := &file_services_sync_sync_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -801,7 +919,7 @@ func (x *StreamResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamResponse.ProtoReflect.Descriptor instead. func (*StreamResponse) Descriptor() ([]byte, []int) { - return file_services_sync_sync_proto_rawDescGZIP(), []int{11} + return file_services_sync_sync_proto_rawDescGZIP(), []int{13} } func (x *StreamResponse) GetUserId() int32 { @@ -939,48 +1057,64 @@ var file_services_sync_sync_proto_rawDesc = []byte{ 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, - 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x29, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x32, 0x8d, 0x04, 0x0a, - 0x0b, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4e, 0x0a, 0x09, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0b, - 0x41, 0x64, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x21, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x41, - 0x64, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x22, 0x90, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x48, 0x00, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x08, 0x76, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x08, 0x76, 0x65, + 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x42, 0x0b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x03, + 0xf8, 0x42, 0x01, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x29, 0x0a, 0x0e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x32, 0xe0, 0x04, 0x0a, 0x0b, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4e, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x12, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0f, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, + 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x40, 0x5a, 0x3e, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x69, 0x76, 0x65, 0x6e, - 0x65, 0x74, 0x2d, 0x61, 0x70, 0x70, 0x2f, 0x66, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x74, 0x2f, 0x67, - 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x3b, 0x73, 0x79, 0x6e, 0x63, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4b, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0a, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x47, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x74, 0x2d, 0x61, + 0x70, 0x70, 0x2f, 0x66, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, + 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x3b, 0x73, 0x79, 0x6e, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -995,7 +1129,7 @@ func file_services_sync_sync_proto_rawDescGZIP() []byte { return file_services_sync_sync_proto_rawDescData } -var file_services_sync_sync_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_services_sync_sync_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_services_sync_sync_proto_goTypes = []any{ (*GetStatusRequest)(nil), // 0: services.sync.GetStatusRequest (*GetStatusResponse)(nil), // 1: services.sync.GetStatusResponse @@ -1007,58 +1141,65 @@ var file_services_sync_sync_proto_goTypes = []any{ (*TransferAccountResponse)(nil), // 7: services.sync.TransferAccountResponse (*SendDataRequest)(nil), // 8: services.sync.SendDataRequest (*SendDataResponse)(nil), // 9: services.sync.SendDataResponse - (*StreamRequest)(nil), // 10: services.sync.StreamRequest - (*StreamResponse)(nil), // 11: services.sync.StreamResponse - (*sync.DataStatus)(nil), // 12: resources.sync.DataStatus - (*sync.UserOAuth2Conn)(nil), // 13: resources.sync.UserOAuth2Conn - (*centrum.Dispatch)(nil), // 14: resources.centrum.Dispatch - (*users.UserActivity)(nil), // 15: resources.users.UserActivity - (*sync.UserProps)(nil), // 16: resources.sync.UserProps - (*jobs.JobsUserActivity)(nil), // 17: resources.jobs.JobsUserActivity - (*sync.JobsUserProps)(nil), // 18: resources.sync.JobsUserProps - (*jobs.TimeclockEntry)(nil), // 19: resources.jobs.TimeclockEntry - (*sync.UserUpdate)(nil), // 20: resources.sync.UserUpdate - (*sync.DataJobs)(nil), // 21: resources.sync.DataJobs - (*sync.DataLicenses)(nil), // 22: resources.sync.DataLicenses - (*sync.DataUsers)(nil), // 23: resources.sync.DataUsers - (*sync.DataVehicles)(nil), // 24: resources.sync.DataVehicles - (*sync.DataUserLocations)(nil), // 25: resources.sync.DataUserLocations + (*DeleteDataRequest)(nil), // 10: services.sync.DeleteDataRequest + (*DeleteDataResponse)(nil), // 11: services.sync.DeleteDataResponse + (*StreamRequest)(nil), // 12: services.sync.StreamRequest + (*StreamResponse)(nil), // 13: services.sync.StreamResponse + (*sync.DataStatus)(nil), // 14: resources.sync.DataStatus + (*sync.UserOAuth2Conn)(nil), // 15: resources.sync.UserOAuth2Conn + (*centrum.Dispatch)(nil), // 16: resources.centrum.Dispatch + (*users.UserActivity)(nil), // 17: resources.users.UserActivity + (*sync.UserProps)(nil), // 18: resources.sync.UserProps + (*jobs.JobsUserActivity)(nil), // 19: resources.jobs.JobsUserActivity + (*sync.JobsUserProps)(nil), // 20: resources.sync.JobsUserProps + (*jobs.TimeclockEntry)(nil), // 21: resources.jobs.TimeclockEntry + (*sync.UserUpdate)(nil), // 22: resources.sync.UserUpdate + (*sync.DataJobs)(nil), // 23: resources.sync.DataJobs + (*sync.DataLicenses)(nil), // 24: resources.sync.DataLicenses + (*sync.DataUsers)(nil), // 25: resources.sync.DataUsers + (*sync.DataVehicles)(nil), // 26: resources.sync.DataVehicles + (*sync.DataUserLocations)(nil), // 27: resources.sync.DataUserLocations + (*sync.DeleteUsers)(nil), // 28: resources.sync.DeleteUsers } var file_services_sync_sync_proto_depIdxs = []int32{ - 12, // 0: services.sync.GetStatusResponse.jobs:type_name -> resources.sync.DataStatus - 12, // 1: services.sync.GetStatusResponse.licenses:type_name -> resources.sync.DataStatus - 12, // 2: services.sync.GetStatusResponse.users:type_name -> resources.sync.DataStatus - 12, // 3: services.sync.GetStatusResponse.vehicles:type_name -> resources.sync.DataStatus - 13, // 4: services.sync.AddActivityRequest.user_oauth2:type_name -> resources.sync.UserOAuth2Conn - 14, // 5: services.sync.AddActivityRequest.dispatch:type_name -> resources.centrum.Dispatch - 15, // 6: services.sync.AddActivityRequest.user_activity:type_name -> resources.users.UserActivity - 16, // 7: services.sync.AddActivityRequest.user_props:type_name -> resources.sync.UserProps - 17, // 8: services.sync.AddActivityRequest.jobs_user_activity:type_name -> resources.jobs.JobsUserActivity - 18, // 9: services.sync.AddActivityRequest.jobs_user_props:type_name -> resources.sync.JobsUserProps - 19, // 10: services.sync.AddActivityRequest.jobs_timeclock:type_name -> resources.jobs.TimeclockEntry - 20, // 11: services.sync.AddActivityRequest.user_update:type_name -> resources.sync.UserUpdate - 21, // 12: services.sync.SendDataRequest.jobs:type_name -> resources.sync.DataJobs - 22, // 13: services.sync.SendDataRequest.licenses:type_name -> resources.sync.DataLicenses - 23, // 14: services.sync.SendDataRequest.users:type_name -> resources.sync.DataUsers - 24, // 15: services.sync.SendDataRequest.vehicles:type_name -> resources.sync.DataVehicles - 25, // 16: services.sync.SendDataRequest.user_locations:type_name -> resources.sync.DataUserLocations - 0, // 17: services.sync.SyncService.GetStatus:input_type -> services.sync.GetStatusRequest - 2, // 18: services.sync.SyncService.AddActivity:input_type -> services.sync.AddActivityRequest - 4, // 19: services.sync.SyncService.RegisterAccount:input_type -> services.sync.RegisterAccountRequest - 6, // 20: services.sync.SyncService.TransferAccount:input_type -> services.sync.TransferAccountRequest - 8, // 21: services.sync.SyncService.SendData:input_type -> services.sync.SendDataRequest - 10, // 22: services.sync.SyncService.Stream:input_type -> services.sync.StreamRequest - 1, // 23: services.sync.SyncService.GetStatus:output_type -> services.sync.GetStatusResponse - 3, // 24: services.sync.SyncService.AddActivity:output_type -> services.sync.AddActivityResponse - 5, // 25: services.sync.SyncService.RegisterAccount:output_type -> services.sync.RegisterAccountResponse - 7, // 26: services.sync.SyncService.TransferAccount:output_type -> services.sync.TransferAccountResponse - 9, // 27: services.sync.SyncService.SendData:output_type -> services.sync.SendDataResponse - 11, // 28: services.sync.SyncService.Stream:output_type -> services.sync.StreamResponse - 23, // [23:29] is the sub-list for method output_type - 17, // [17:23] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 14, // 0: services.sync.GetStatusResponse.jobs:type_name -> resources.sync.DataStatus + 14, // 1: services.sync.GetStatusResponse.licenses:type_name -> resources.sync.DataStatus + 14, // 2: services.sync.GetStatusResponse.users:type_name -> resources.sync.DataStatus + 14, // 3: services.sync.GetStatusResponse.vehicles:type_name -> resources.sync.DataStatus + 15, // 4: services.sync.AddActivityRequest.user_oauth2:type_name -> resources.sync.UserOAuth2Conn + 16, // 5: services.sync.AddActivityRequest.dispatch:type_name -> resources.centrum.Dispatch + 17, // 6: services.sync.AddActivityRequest.user_activity:type_name -> resources.users.UserActivity + 18, // 7: services.sync.AddActivityRequest.user_props:type_name -> resources.sync.UserProps + 19, // 8: services.sync.AddActivityRequest.jobs_user_activity:type_name -> resources.jobs.JobsUserActivity + 20, // 9: services.sync.AddActivityRequest.jobs_user_props:type_name -> resources.sync.JobsUserProps + 21, // 10: services.sync.AddActivityRequest.jobs_timeclock:type_name -> resources.jobs.TimeclockEntry + 22, // 11: services.sync.AddActivityRequest.user_update:type_name -> resources.sync.UserUpdate + 23, // 12: services.sync.SendDataRequest.jobs:type_name -> resources.sync.DataJobs + 24, // 13: services.sync.SendDataRequest.licenses:type_name -> resources.sync.DataLicenses + 25, // 14: services.sync.SendDataRequest.users:type_name -> resources.sync.DataUsers + 26, // 15: services.sync.SendDataRequest.vehicles:type_name -> resources.sync.DataVehicles + 27, // 16: services.sync.SendDataRequest.user_locations:type_name -> resources.sync.DataUserLocations + 28, // 17: services.sync.DeleteDataRequest.users:type_name -> resources.sync.DeleteUsers + 28, // 18: services.sync.DeleteDataRequest.vehicles:type_name -> resources.sync.DeleteUsers + 0, // 19: services.sync.SyncService.GetStatus:input_type -> services.sync.GetStatusRequest + 2, // 20: services.sync.SyncService.AddActivity:input_type -> services.sync.AddActivityRequest + 4, // 21: services.sync.SyncService.RegisterAccount:input_type -> services.sync.RegisterAccountRequest + 6, // 22: services.sync.SyncService.TransferAccount:input_type -> services.sync.TransferAccountRequest + 8, // 23: services.sync.SyncService.SendData:input_type -> services.sync.SendDataRequest + 10, // 24: services.sync.SyncService.DeleteData:input_type -> services.sync.DeleteDataRequest + 12, // 25: services.sync.SyncService.Stream:input_type -> services.sync.StreamRequest + 1, // 26: services.sync.SyncService.GetStatus:output_type -> services.sync.GetStatusResponse + 3, // 27: services.sync.SyncService.AddActivity:output_type -> services.sync.AddActivityResponse + 5, // 28: services.sync.SyncService.RegisterAccount:output_type -> services.sync.RegisterAccountResponse + 7, // 29: services.sync.SyncService.TransferAccount:output_type -> services.sync.TransferAccountResponse + 9, // 30: services.sync.SyncService.SendData:output_type -> services.sync.SendDataResponse + 11, // 31: services.sync.SyncService.DeleteData:output_type -> services.sync.DeleteDataResponse + 13, // 32: services.sync.SyncService.Stream:output_type -> services.sync.StreamResponse + 26, // [26:33] is the sub-list for method output_type + 19, // [19:26] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_services_sync_sync_proto_init() } @@ -1085,13 +1226,17 @@ func file_services_sync_sync_proto_init() { (*SendDataRequest_Vehicles)(nil), (*SendDataRequest_UserLocations)(nil), } + file_services_sync_sync_proto_msgTypes[10].OneofWrappers = []any{ + (*DeleteDataRequest_Users)(nil), + (*DeleteDataRequest_Vehicles)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_services_sync_sync_proto_rawDesc, NumEnums: 0, - NumMessages: 12, + NumMessages: 14, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/go/proto/services/sync/sync.pb.sanitizer.go b/gen/go/proto/services/sync/sync.pb.sanitizer.go index 86e1d876c..c590955da 100644 --- a/gen/go/proto/services/sync/sync.pb.sanitizer.go +++ b/gen/go/proto/services/sync/sync.pb.sanitizer.go @@ -87,6 +87,42 @@ func (m *AddActivityResponse) Sanitize() error { return nil } +func (m *DeleteDataRequest) Sanitize() error { + if m == nil { + return nil + } + + // Field: Users + switch v := m.Data.(type) { + + case *DeleteDataRequest_Users: + if v, ok := interface{}(v).(interface{ Sanitize() error }); ok { + if err := v.Sanitize(); err != nil { + return err + } + } + + // Field: Vehicles + case *DeleteDataRequest_Vehicles: + if v, ok := interface{}(v).(interface{ Sanitize() error }); ok { + if err := v.Sanitize(); err != nil { + return err + } + } + + } + + return nil +} + +func (m *DeleteDataResponse) Sanitize() error { + if m == nil { + return nil + } + + return nil +} + func (m *GetStatusRequest) Sanitize() error { if m == nil { return nil diff --git a/gen/go/proto/services/sync/sync.pb.validate.go b/gen/go/proto/services/sync/sync.pb.validate.go index a4c9b4fc5..64504fdf2 100644 --- a/gen/go/proto/services/sync/sync.pb.validate.go +++ b/gen/go/proto/services/sync/sync.pb.validate.go @@ -1832,6 +1832,310 @@ var _ interface { ErrorName() string } = SendDataResponseValidationError{} +// Validate checks the field values on DeleteDataRequest 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 *DeleteDataRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteDataRequest 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 +// DeleteDataRequestMultiError, or nil if none found. +func (m *DeleteDataRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteDataRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + oneofDataPresent := false + switch v := m.Data.(type) { + case *DeleteDataRequest_Users: + if v == nil { + err := DeleteDataRequestValidationError{ + field: "Data", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + oneofDataPresent = true + + if all { + switch v := interface{}(m.GetUsers()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, DeleteDataRequestValidationError{ + field: "Users", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, DeleteDataRequestValidationError{ + field: "Users", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetUsers()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DeleteDataRequestValidationError{ + field: "Users", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *DeleteDataRequest_Vehicles: + if v == nil { + err := DeleteDataRequestValidationError{ + field: "Data", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + oneofDataPresent = true + + if all { + switch v := interface{}(m.GetVehicles()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, DeleteDataRequestValidationError{ + field: "Vehicles", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, DeleteDataRequestValidationError{ + field: "Vehicles", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetVehicles()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DeleteDataRequestValidationError{ + field: "Vehicles", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + _ = v // ensures v is used + } + if !oneofDataPresent { + err := DeleteDataRequestValidationError{ + field: "Data", + reason: "value is required", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return DeleteDataRequestMultiError(errors) + } + + return nil +} + +// DeleteDataRequestMultiError is an error wrapping multiple validation errors +// returned by DeleteDataRequest.ValidateAll() if the designated constraints +// aren't met. +type DeleteDataRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteDataRequestMultiError) 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 DeleteDataRequestMultiError) AllErrors() []error { return m } + +// DeleteDataRequestValidationError is the validation error returned by +// DeleteDataRequest.Validate if the designated constraints aren't met. +type DeleteDataRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteDataRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteDataRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteDataRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteDataRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteDataRequestValidationError) ErrorName() string { + return "DeleteDataRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteDataRequestValidationError) 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 %sDeleteDataRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteDataRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteDataRequestValidationError{} + +// Validate checks the field values on DeleteDataResponse 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 *DeleteDataResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteDataResponse 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 +// DeleteDataResponseMultiError, or nil if none found. +func (m *DeleteDataResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteDataResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return DeleteDataResponseMultiError(errors) + } + + return nil +} + +// DeleteDataResponseMultiError is an error wrapping multiple validation errors +// returned by DeleteDataResponse.ValidateAll() if the designated constraints +// aren't met. +type DeleteDataResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteDataResponseMultiError) 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 DeleteDataResponseMultiError) AllErrors() []error { return m } + +// DeleteDataResponseValidationError is the validation error returned by +// DeleteDataResponse.Validate if the designated constraints aren't met. +type DeleteDataResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteDataResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteDataResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteDataResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteDataResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteDataResponseValidationError) ErrorName() string { + return "DeleteDataResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteDataResponseValidationError) 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 %sDeleteDataResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteDataResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteDataResponseValidationError{} + // Validate checks the field values on StreamRequest 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. diff --git a/gen/go/proto/services/sync/sync_grpc.pb.go b/gen/go/proto/services/sync/sync_grpc.pb.go index ead2a459a..ae07d050b 100644 --- a/gen/go/proto/services/sync/sync_grpc.pb.go +++ b/gen/go/proto/services/sync/sync_grpc.pb.go @@ -24,6 +24,7 @@ const ( SyncService_RegisterAccount_FullMethodName = "/services.sync.SyncService/RegisterAccount" SyncService_TransferAccount_FullMethodName = "/services.sync.SyncService/TransferAccount" SyncService_SendData_FullMethodName = "/services.sync.SyncService/SendData" + SyncService_DeleteData_FullMethodName = "/services.sync.SyncService/DeleteData" SyncService_Stream_FullMethodName = "/services.sync.SyncService/Stream" ) @@ -41,6 +42,8 @@ type SyncServiceClient interface { TransferAccount(ctx context.Context, in *TransferAccountRequest, opts ...grpc.CallOption) (*TransferAccountResponse, error) // DBSync's method of sending (mass) data to the FiveNet server for storing. SendData(ctx context.Context, in *SendDataRequest, opts ...grpc.CallOption) (*SendDataResponse, error) + // Way for the gameserver to delete certain data as well + DeleteData(ctx context.Context, in *DeleteDataRequest, opts ...grpc.CallOption) (*DeleteDataResponse, error) // Used for the server to stream events to the dbsync (e.g., "refresh" of user/char data) Stream(ctx context.Context, in *StreamRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamResponse], error) } @@ -103,6 +106,16 @@ func (c *syncServiceClient) SendData(ctx context.Context, in *SendDataRequest, o return out, nil } +func (c *syncServiceClient) DeleteData(ctx context.Context, in *DeleteDataRequest, opts ...grpc.CallOption) (*DeleteDataResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DeleteDataResponse) + err := c.cc.Invoke(ctx, SyncService_DeleteData_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *syncServiceClient) Stream(ctx context.Context, in *StreamRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamResponse], error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) stream, err := c.cc.NewStream(ctx, &SyncService_ServiceDesc.Streams[0], SyncService_Stream_FullMethodName, cOpts...) @@ -136,6 +149,8 @@ type SyncServiceServer interface { TransferAccount(context.Context, *TransferAccountRequest) (*TransferAccountResponse, error) // DBSync's method of sending (mass) data to the FiveNet server for storing. SendData(context.Context, *SendDataRequest) (*SendDataResponse, error) + // Way for the gameserver to delete certain data as well + DeleteData(context.Context, *DeleteDataRequest) (*DeleteDataResponse, error) // Used for the server to stream events to the dbsync (e.g., "refresh" of user/char data) Stream(*StreamRequest, grpc.ServerStreamingServer[StreamResponse]) error mustEmbedUnimplementedSyncServiceServer() @@ -163,6 +178,9 @@ func (UnimplementedSyncServiceServer) TransferAccount(context.Context, *Transfer func (UnimplementedSyncServiceServer) SendData(context.Context, *SendDataRequest) (*SendDataResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SendData not implemented") } +func (UnimplementedSyncServiceServer) DeleteData(context.Context, *DeleteDataRequest) (*DeleteDataResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteData not implemented") +} func (UnimplementedSyncServiceServer) Stream(*StreamRequest, grpc.ServerStreamingServer[StreamResponse]) error { return status.Errorf(codes.Unimplemented, "method Stream not implemented") } @@ -277,6 +295,24 @@ func _SyncService_SendData_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _SyncService_DeleteData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteDataRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SyncServiceServer).DeleteData(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SyncService_DeleteData_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SyncServiceServer).DeleteData(ctx, req.(*DeleteDataRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _SyncService_Stream_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(StreamRequest) if err := stream.RecvMsg(m); err != nil { @@ -315,6 +351,10 @@ var SyncService_ServiceDesc = grpc.ServiceDesc{ MethodName: "SendData", Handler: _SyncService_SendData_Handler, }, + { + MethodName: "DeleteData", + Handler: _SyncService_DeleteData_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/gen/grpc-api.md b/gen/grpc-api.md index a63a3327b..acfde0e3c 100644 --- a/gen/grpc-api.md +++ b/gen/grpc-api.md @@ -454,6 +454,8 @@ - [DataUserLocations](#resources-sync-DataUserLocations) - [DataUsers](#resources-sync-DataUsers) - [DataVehicles](#resources-sync-DataVehicles) + - [DeleteUsers](#resources-sync-DeleteUsers) + - [DeleteVehicles](#resources-sync-DeleteVehicles) - [UserLocation](#resources-sync-UserLocation) - [services/auth/auth.proto](#services_auth_auth-proto) @@ -928,6 +930,8 @@ - [services/sync/sync.proto](#services_sync_sync-proto) - [AddActivityRequest](#services-sync-AddActivityRequest) - [AddActivityResponse](#services-sync-AddActivityResponse) + - [DeleteDataRequest](#services-sync-DeleteDataRequest) + - [DeleteDataResponse](#services-sync-DeleteDataResponse) - [GetStatusRequest](#services-sync-GetStatusRequest) - [GetStatusResponse](#services-sync-GetStatusResponse) - [RegisterAccountRequest](#services-sync-RegisterAccountRequest) @@ -7320,6 +7324,36 @@ Connect an identifier/license to the provider with the specified external id (e. + + +### DeleteUsers + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| user_ids | [int32](#int32) | repeated | | + + + + + + + + +### DeleteVehicles + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| plates | [string](#string) | repeated | | + + + + + + ### UserLocation @@ -13839,6 +13873,32 @@ Connect an identifier/license to the provider with the specified external id (e. + + +### DeleteDataRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| users | [resources.sync.DeleteUsers](#resources-sync-DeleteUsers) | | | +| vehicles | [resources.sync.DeleteUsers](#resources-sync-DeleteUsers) | | | + + + + + + + + +### DeleteDataResponse + + + + + + + ### GetStatusRequest @@ -14004,6 +14064,7 @@ Connect an identifier/license to the provider with the specified external id (e. | RegisterAccount | [RegisterAccountRequest](#services-sync-RegisterAccountRequest) | [RegisterAccountResponse](#services-sync-RegisterAccountResponse) | Get registration token for a new user account or return the account id and username, for a given identifier/license. | | TransferAccount | [TransferAccountRequest](#services-sync-TransferAccountRequest) | [TransferAccountResponse](#services-sync-TransferAccountResponse) | Transfer account from one license to another | | SendData | [SendDataRequest](#services-sync-SendDataRequest) | [SendDataResponse](#services-sync-SendDataResponse) | DBSync's method of sending (mass) data to the FiveNet server for storing. | +| DeleteData | [DeleteDataRequest](#services-sync-DeleteDataRequest) | [DeleteDataResponse](#services-sync-DeleteDataResponse) | Way for the gameserver to delete certain data as well | | Stream | [StreamRequest](#services-sync-StreamRequest) | [StreamResponse](#services-sync-StreamResponse) stream | Used for the server to stream events to the dbsync (e.g., "refresh" of user/char data) | diff --git a/gen/ts/resources/sync/data.ts b/gen/ts/resources/sync/data.ts index 8f42fca01..87c4f438a 100644 --- a/gen/ts/resources/sync/data.ts +++ b/gen/ts/resources/sync/data.ts @@ -98,6 +98,24 @@ export interface UserLocation { */ remove: boolean; } +/** + * @generated from protobuf message resources.sync.DeleteUsers + */ +export interface DeleteUsers { + /** + * @generated from protobuf field: repeated int32 user_ids = 1; + */ + userIds: number[]; +} +/** + * @generated from protobuf message resources.sync.DeleteVehicles + */ +export interface DeleteVehicles { + /** + * @generated from protobuf field: repeated string plates = 1; + */ + plates: string[]; +} // @generated message type with reflection information, may provide speed optimized methods class DataStatus$Type extends MessageType { constructor() { @@ -465,3 +483,105 @@ class UserLocation$Type extends MessageType { * @generated MessageType for protobuf message resources.sync.UserLocation */ export const UserLocation = new UserLocation$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class DeleteUsers$Type extends MessageType { + constructor() { + super("resources.sync.DeleteUsers", [ + { no: 1, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/, options: { "validate.rules": { repeated: { maxItems: "100" } } } } + ]); + } + create(value?: PartialMessage): DeleteUsers { + const message = globalThis.Object.create((this.messagePrototype!)); + message.userIds = []; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteUsers): DeleteUsers { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* repeated int32 user_ids */ 1: + if (wireType === WireType.LengthDelimited) + for (let e = reader.int32() + reader.pos; reader.pos < e;) + message.userIds.push(reader.int32()); + else + message.userIds.push(reader.int32()); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: DeleteUsers, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* repeated int32 user_ids = 1; */ + if (message.userIds.length) { + writer.tag(1, WireType.LengthDelimited).fork(); + for (let i = 0; i < message.userIds.length; i++) + writer.int32(message.userIds[i]); + writer.join(); + } + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message resources.sync.DeleteUsers + */ +export const DeleteUsers = new DeleteUsers$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class DeleteVehicles$Type extends MessageType { + constructor() { + super("resources.sync.DeleteVehicles", [ + { no: 1, name: "plates", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { maxItems: "100" } } } } + ]); + } + create(value?: PartialMessage): DeleteVehicles { + const message = globalThis.Object.create((this.messagePrototype!)); + message.plates = []; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteVehicles): DeleteVehicles { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* repeated string plates */ 1: + message.plates.push(reader.string()); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: DeleteVehicles, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* repeated string plates = 1; */ + for (let i = 0; i < message.plates.length; i++) + writer.tag(1, WireType.LengthDelimited).string(message.plates[i]); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message resources.sync.DeleteVehicles + */ +export const DeleteVehicles = new DeleteVehicles$Type(); diff --git a/gen/ts/services/sync/sync.client.ts b/gen/ts/services/sync/sync.client.ts index b948e62c1..f73bcb7ec 100644 --- a/gen/ts/services/sync/sync.client.ts +++ b/gen/ts/services/sync/sync.client.ts @@ -7,6 +7,8 @@ import { SyncService } from "./sync"; import type { StreamResponse } from "./sync"; import type { StreamRequest } from "./sync"; import type { ServerStreamingCall } from "@protobuf-ts/runtime-rpc"; +import type { DeleteDataResponse } from "./sync"; +import type { DeleteDataRequest } from "./sync"; import type { SendDataResponse } from "./sync"; import type { SendDataRequest } from "./sync"; import type { TransferAccountResponse } from "./sync"; @@ -54,6 +56,12 @@ export interface ISyncServiceClient { * @generated from protobuf rpc: SendData(services.sync.SendDataRequest) returns (services.sync.SendDataResponse); */ sendData(input: SendDataRequest, options?: RpcOptions): UnaryCall; + /** + * Way for the gameserver to delete certain data as well + * + * @generated from protobuf rpc: DeleteData(services.sync.DeleteDataRequest) returns (services.sync.DeleteDataResponse); + */ + deleteData(input: DeleteDataRequest, options?: RpcOptions): UnaryCall; /** * Used for the server to stream events to the dbsync (e.g., "refresh" of user/char data) * @@ -115,13 +123,22 @@ export class SyncServiceClient implements ISyncServiceClient, ServiceInfo { const method = this.methods[4], opt = this._transport.mergeOptions(options); return stackIntercept("unary", this._transport, method, opt, input); } + /** + * Way for the gameserver to delete certain data as well + * + * @generated from protobuf rpc: DeleteData(services.sync.DeleteDataRequest) returns (services.sync.DeleteDataResponse); + */ + deleteData(input: DeleteDataRequest, options?: RpcOptions): UnaryCall { + const method = this.methods[5], opt = this._transport.mergeOptions(options); + return stackIntercept("unary", this._transport, method, opt, input); + } /** * Used for the server to stream events to the dbsync (e.g., "refresh" of user/char data) * * @generated from protobuf rpc: Stream(services.sync.StreamRequest) returns (stream services.sync.StreamResponse); */ stream(input: StreamRequest, options?: RpcOptions): ServerStreamingCall { - const method = this.methods[5], opt = this._transport.mergeOptions(options); + const method = this.methods[6], opt = this._transport.mergeOptions(options); return stackIntercept("serverStreaming", this._transport, method, opt, input); } } diff --git a/gen/ts/services/sync/sync.ts b/gen/ts/services/sync/sync.ts index 05fd612e7..2225fcef6 100644 --- a/gen/ts/services/sync/sync.ts +++ b/gen/ts/services/sync/sync.ts @@ -11,6 +11,7 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; +import { DeleteUsers } from "../../resources/sync/data"; import { DataUserLocations } from "../../resources/sync/data"; import { DataVehicles } from "../../resources/sync/data"; import { DataUsers } from "../../resources/sync/data"; @@ -229,6 +230,34 @@ export interface SendDataResponse { */ affectedRows: number; } +/** + * @generated from protobuf message services.sync.DeleteDataRequest + */ +export interface DeleteDataRequest { + /** + * @generated from protobuf oneof: data + */ + data: { + oneofKind: "users"; + /** + * @generated from protobuf field: resources.sync.DeleteUsers users = 1; + */ + users: DeleteUsers; + } | { + oneofKind: "vehicles"; + /** + * @generated from protobuf field: resources.sync.DeleteUsers vehicles = 2; + */ + vehicles: DeleteUsers; + } | { + oneofKind: undefined; + }; +} +/** + * @generated from protobuf message services.sync.DeleteDataResponse + */ +export interface DeleteDataResponse { +} /** * @generated from protobuf message services.sync.StreamRequest */ @@ -820,6 +849,91 @@ class SendDataResponse$Type extends MessageType { */ export const SendDataResponse = new SendDataResponse$Type(); // @generated message type with reflection information, may provide speed optimized methods +class DeleteDataRequest$Type extends MessageType { + constructor() { + super("services.sync.DeleteDataRequest", [ + { no: 1, name: "users", kind: "message", oneof: "data", T: () => DeleteUsers }, + { no: 2, name: "vehicles", kind: "message", oneof: "data", T: () => DeleteUsers } + ]); + } + create(value?: PartialMessage): DeleteDataRequest { + const message = globalThis.Object.create((this.messagePrototype!)); + message.data = { oneofKind: undefined }; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteDataRequest): DeleteDataRequest { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* resources.sync.DeleteUsers users */ 1: + message.data = { + oneofKind: "users", + users: DeleteUsers.internalBinaryRead(reader, reader.uint32(), options, (message.data as any).users) + }; + break; + case /* resources.sync.DeleteUsers vehicles */ 2: + message.data = { + oneofKind: "vehicles", + vehicles: DeleteUsers.internalBinaryRead(reader, reader.uint32(), options, (message.data as any).vehicles) + }; + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: DeleteDataRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* resources.sync.DeleteUsers users = 1; */ + if (message.data.oneofKind === "users") + DeleteUsers.internalBinaryWrite(message.data.users, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + /* resources.sync.DeleteUsers vehicles = 2; */ + if (message.data.oneofKind === "vehicles") + DeleteUsers.internalBinaryWrite(message.data.vehicles, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message services.sync.DeleteDataRequest + */ +export const DeleteDataRequest = new DeleteDataRequest$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class DeleteDataResponse$Type extends MessageType { + constructor() { + super("services.sync.DeleteDataResponse", []); + } + create(value?: PartialMessage): DeleteDataResponse { + const message = globalThis.Object.create((this.messagePrototype!)); + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteDataResponse): DeleteDataResponse { + return target ?? this.create(); + } + internalBinaryWrite(message: DeleteDataResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message services.sync.DeleteDataResponse + */ +export const DeleteDataResponse = new DeleteDataResponse$Type(); +// @generated message type with reflection information, may provide speed optimized methods class StreamRequest$Type extends MessageType { constructor() { super("services.sync.StreamRequest", []); @@ -900,5 +1014,6 @@ export const SyncService = new ServiceType("services.sync.SyncService", [ { name: "RegisterAccount", options: {}, I: RegisterAccountRequest, O: RegisterAccountResponse }, { name: "TransferAccount", options: {}, I: TransferAccountRequest, O: TransferAccountResponse }, { name: "SendData", options: {}, I: SendDataRequest, O: SendDataResponse }, + { name: "DeleteData", options: {}, I: DeleteDataRequest, O: DeleteDataResponse }, { name: "Stream", serverStreaming: true, options: {}, I: StreamRequest, O: StreamResponse } ]); diff --git a/gen/ts/svcs.ts b/gen/ts/svcs.ts index f94ab99a7..2dc20e071 100644 --- a/gen/ts/svcs.ts +++ b/gen/ts/svcs.ts @@ -300,6 +300,7 @@ export const grpcMethods = [ 'SyncService/RegisterAccount', 'SyncService/TransferAccount', 'SyncService/SendData', + 'SyncService/DeleteData', 'SyncService/Stream', 'WikiService/ListPages', 'WikiService/GetPage', diff --git a/go.mod b/go.mod index 77a3d152b..cca3c05cd 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( github.com/jinzhu/now v1.1.5 github.com/json-iterator/go v1.1.12 github.com/microcosm-cc/bluemonday v1.0.27 - github.com/minio/minio-go/v7 v7.0.83 + github.com/minio/minio-go/v7 v7.0.84 github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f github.com/nats-io/nats-server/v2 v2.10.24 github.com/nats-io/nats.go v1.38.0 @@ -46,7 +46,7 @@ require ( github.com/paulmach/orb v0.11.1 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.20.5 - github.com/puzpuzpuz/xsync/v3 v3.4.0 + github.com/puzpuzpuz/xsync/v3 v3.4.1 github.com/rs/cors v1.11.1 github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.10.0 @@ -89,28 +89,28 @@ require ( github.com/aymerick/douceur v0.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bits-and-blooms/bitset v1.20.0 // indirect - github.com/blevesearch/bleve_index_api v1.1.12 // indirect + github.com/blevesearch/bleve_index_api v1.2.1 // indirect github.com/blevesearch/geo v0.1.20 // indirect github.com/blevesearch/go-faiss v1.0.24 // indirect github.com/blevesearch/go-porterstemmer v1.0.3 // indirect github.com/blevesearch/gtreap v0.1.1 // indirect github.com/blevesearch/mmap-go v1.0.4 // indirect - github.com/blevesearch/scorch_segment_api/v2 v2.2.16 // indirect + github.com/blevesearch/scorch_segment_api/v2 v2.3.1 // indirect github.com/blevesearch/segment v0.9.1 // indirect github.com/blevesearch/snowballstem v0.9.0 // indirect github.com/blevesearch/upsidedown_store_api v1.0.2 // indirect - github.com/blevesearch/vellum v1.0.10 // indirect - github.com/blevesearch/zapx/v11 v11.3.10 // indirect - github.com/blevesearch/zapx/v12 v12.3.10 // indirect - github.com/blevesearch/zapx/v13 v13.3.10 // indirect - github.com/blevesearch/zapx/v14 v14.3.10 // indirect - github.com/blevesearch/zapx/v15 v15.3.16 // indirect + github.com/blevesearch/vellum v1.1.0 // indirect + github.com/blevesearch/zapx/v11 v11.3.11 // indirect + github.com/blevesearch/zapx/v12 v12.3.11 // indirect + github.com/blevesearch/zapx/v13 v13.3.11 // indirect + github.com/blevesearch/zapx/v14 v14.3.11 // indirect + github.com/blevesearch/zapx/v15 v15.3.18 // indirect github.com/blevesearch/zapx/v16 v16.1.9-0.20241217210638-a0519e7caf3b // indirect github.com/bytedance/sonic v1.12.7 // indirect github.com/bytedance/sonic/loader v0.2.3 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cloudwego/base64x v0.1.5 // indirect github.com/containerd/continuity v0.4.5 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/disintegration/imaging v1.6.2 // indirect diff --git a/go.sum b/go.sum index 26f9f71f0..99970a380 100644 --- a/go.sum +++ b/go.sum @@ -127,8 +127,8 @@ github.com/bits-and-blooms/bitset v1.20.0 h1:2F+rfL86jE2d/bmw7OhqUg2Sj/1rURkBn3M github.com/bits-and-blooms/bitset v1.20.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/blevesearch/bleve/v2 v2.4.4 h1:RwwLGjUm54SwyyykbrZs4vc1qjzYic4ZnAnY9TwNl60= github.com/blevesearch/bleve/v2 v2.4.4/go.mod h1:fa2Eo6DP7JR+dMFpQe+WiZXINKSunh7WBtlDGbolKXk= -github.com/blevesearch/bleve_index_api v1.1.12 h1:P4bw9/G/5rulOF7SJ9l4FsDoo7UFJ+5kexNy1RXfegY= -github.com/blevesearch/bleve_index_api v1.1.12/go.mod h1:PbcwjIcRmjhGbkS/lJCpfgVSMROV6TRubGGAODaK1W8= +github.com/blevesearch/bleve_index_api v1.2.1 h1:IuXwLvmyp7I7+e0FOA68gcHHLfzSQ4AqQ8wVab5uxk0= +github.com/blevesearch/bleve_index_api v1.2.1/go.mod h1:rKQDl4u51uwafZxFrPD1R7xFOwKnzZW7s/LSeK4lgo0= github.com/blevesearch/geo v0.1.20 h1:paaSpu2Ewh/tn5DKn/FB5SzvH0EWupxHEIwbCk/QPqM= github.com/blevesearch/geo v0.1.20/go.mod h1:DVG2QjwHNMFmjo+ZgzrIq2sfCh6rIHzy9d9d0B59I6w= github.com/blevesearch/go-faiss v1.0.24 h1:K79IvKjoKHdi7FdiXEsAhxpMuns0x4fM0BO93bW5jLI= @@ -139,26 +139,26 @@ github.com/blevesearch/gtreap v0.1.1 h1:2JWigFrzDMR+42WGIN/V2p0cUvn4UP3C4Q5nmaZG github.com/blevesearch/gtreap v0.1.1/go.mod h1:QaQyDRAT51sotthUWAH4Sj08awFSSWzgYICSZ3w0tYk= github.com/blevesearch/mmap-go v1.0.4 h1:OVhDhT5B/M1HNPpYPBKIEJaD0F3Si+CrEKULGCDPWmc= github.com/blevesearch/mmap-go v1.0.4/go.mod h1:EWmEAOmdAS9z/pi/+Toxu99DnsbhG1TIxUoRmJw/pSs= -github.com/blevesearch/scorch_segment_api/v2 v2.2.16 h1:uGvKVvG7zvSxCwcm4/ehBa9cCEuZVE+/zvrSl57QUVY= -github.com/blevesearch/scorch_segment_api/v2 v2.2.16/go.mod h1:VF5oHVbIFTu+znY1v30GjSpT5+9YFs9dV2hjvuh34F0= +github.com/blevesearch/scorch_segment_api/v2 v2.3.1 h1:jjexIzwOdBtC9MlUceNErYHepLvoKxTdA5atbeZSRWE= +github.com/blevesearch/scorch_segment_api/v2 v2.3.1/go.mod h1:Np3Y03rsemM5TsyFxQ3wy+tG97EcviLTbp2S5W0tpRY= github.com/blevesearch/segment v0.9.1 h1:+dThDy+Lvgj5JMxhmOVlgFfkUtZV2kw49xax4+jTfSU= github.com/blevesearch/segment v0.9.1/go.mod h1:zN21iLm7+GnBHWTao9I+Au/7MBiL8pPFtJBJTsk6kQw= github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s= github.com/blevesearch/snowballstem v0.9.0/go.mod h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs= github.com/blevesearch/upsidedown_store_api v1.0.2 h1:U53Q6YoWEARVLd1OYNc9kvhBMGZzVrdmaozG2MfoB+A= github.com/blevesearch/upsidedown_store_api v1.0.2/go.mod h1:M01mh3Gpfy56Ps/UXHjEO/knbqyQ1Oamg8If49gRwrQ= -github.com/blevesearch/vellum v1.0.10 h1:HGPJDT2bTva12hrHepVT3rOyIKFFF4t7Gf6yMxyMIPI= -github.com/blevesearch/vellum v1.0.10/go.mod h1:ul1oT0FhSMDIExNjIxHqJoGpVrBpKCdgDQNxfqgJt7k= -github.com/blevesearch/zapx/v11 v11.3.10 h1:hvjgj9tZ9DeIqBCxKhi70TtSZYMdcFn7gDb71Xo/fvk= -github.com/blevesearch/zapx/v11 v11.3.10/go.mod h1:0+gW+FaE48fNxoVtMY5ugtNHHof/PxCqh7CnhYdnMzQ= -github.com/blevesearch/zapx/v12 v12.3.10 h1:yHfj3vXLSYmmsBleJFROXuO08mS3L1qDCdDK81jDl8s= -github.com/blevesearch/zapx/v12 v12.3.10/go.mod h1:0yeZg6JhaGxITlsS5co73aqPtM04+ycnI6D1v0mhbCs= -github.com/blevesearch/zapx/v13 v13.3.10 h1:0KY9tuxg06rXxOZHg3DwPJBjniSlqEgVpxIqMGahDE8= -github.com/blevesearch/zapx/v13 v13.3.10/go.mod h1:w2wjSDQ/WBVeEIvP0fvMJZAzDwqwIEzVPnCPrz93yAk= -github.com/blevesearch/zapx/v14 v14.3.10 h1:SG6xlsL+W6YjhX5N3aEiL/2tcWh3DO75Bnz77pSwwKU= -github.com/blevesearch/zapx/v14 v14.3.10/go.mod h1:qqyuR0u230jN1yMmE4FIAuCxmahRQEOehF78m6oTgns= -github.com/blevesearch/zapx/v15 v15.3.16 h1:Ct3rv7FUJPfPk99TI/OofdC+Kpb4IdyfdMH48sb+FmE= -github.com/blevesearch/zapx/v15 v15.3.16/go.mod h1:Turk/TNRKj9es7ZpKK95PS7f6D44Y7fAFy8F4LXQtGg= +github.com/blevesearch/vellum v1.1.0 h1:CinkGyIsgVlYf8Y2LUQHvdelgXr6PYuvoDIajq6yR9w= +github.com/blevesearch/vellum v1.1.0/go.mod h1:QgwWryE8ThtNPxtgWJof5ndPfx0/YMBh+W2weHKPw8Y= +github.com/blevesearch/zapx/v11 v11.3.11 h1:r6/wFHFAKWvXJb82f5aO53l6p+gRH6eiX7S1tb3VGc0= +github.com/blevesearch/zapx/v11 v11.3.11/go.mod h1:0+gW+FaE48fNxoVtMY5ugtNHHof/PxCqh7CnhYdnMzQ= +github.com/blevesearch/zapx/v12 v12.3.11 h1:GBBAmXesxXLV5UZ+FZ0qILb7HPssT+kxEkbPPfp5HPM= +github.com/blevesearch/zapx/v12 v12.3.11/go.mod h1:0yeZg6JhaGxITlsS5co73aqPtM04+ycnI6D1v0mhbCs= +github.com/blevesearch/zapx/v13 v13.3.11 h1:H5ZvgS1qM1XKzsAuwp3kvDfh5sJFu9bLH/B8U6Im5e8= +github.com/blevesearch/zapx/v13 v13.3.11/go.mod h1:w2wjSDQ/WBVeEIvP0fvMJZAzDwqwIEzVPnCPrz93yAk= +github.com/blevesearch/zapx/v14 v14.3.11 h1:pg+c/YFzMJ32GkOwLzH/HAQ/GBr6y1Ar7/K5ZQpxTNo= +github.com/blevesearch/zapx/v14 v14.3.11/go.mod h1:qqyuR0u230jN1yMmE4FIAuCxmahRQEOehF78m6oTgns= +github.com/blevesearch/zapx/v15 v15.3.18 h1:yJcQnQyHGNF6rAiwq85OHn3HaXo26t7vgd83RclEw7U= +github.com/blevesearch/zapx/v15 v15.3.18/go.mod h1:vXRQzJJvlGVCdmOD5hg7t7JdjUT5DmDPhsAfjvtzIq8= github.com/blevesearch/zapx/v16 v16.1.9-0.20241217210638-a0519e7caf3b h1:ju9Az5YgrzCeK3M1QwvZIpxYhChkXp7/L0RhDYsxXoE= github.com/blevesearch/zapx/v16 v16.1.9-0.20241217210638-a0519e7caf3b/go.mod h1:BlrYNpOu4BvVRslmIG+rLtKhmjIaRhIbG8sb9scGTwI= github.com/bytedance/sonic v1.12.7 h1:CQU8pxOy9HToxhndH0Kx/S1qU/CuS9GnKYrGioDcU1Q= @@ -181,8 +181,8 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= -github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= +github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= 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= @@ -633,8 +633,8 @@ github.com/minio/highwayhash v1.0.3 h1:kbnuUMoHYyVl7szWjSxJnxw11k2U709jqFPPmIUyD github.com/minio/highwayhash v1.0.3/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.83 h1:W4Kokksvlz3OKf3OqIlzDNKd4MERlC2oN8YptwJ0+GA= -github.com/minio/minio-go/v7 v7.0.83/go.mod h1:57YXpvc5l3rjPdhqNrDsvVlY0qPI6UTk1bflAe+9doY= +github.com/minio/minio-go/v7 v7.0.84 h1:D1HVmAF8JF8Bpi6IU4V9vIEj+8pc+xU88EWMs2yed0E= +github.com/minio/minio-go/v7 v7.0.84/go.mod h1:57YXpvc5l3rjPdhqNrDsvVlY0qPI6UTk1bflAe+9doY= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -772,8 +772,8 @@ github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/puzpuzpuz/xsync/v3 v3.4.0 h1:DuVBAdXuGFHv8adVXjWWZ63pJq+NRXOWVXlKDBZ+mJ4= -github.com/puzpuzpuz/xsync/v3 v3.4.0/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= +github.com/puzpuzpuz/xsync/v3 v3.4.1 h1:wWXLKXwzpsduC3kUSahiL45MWxkGb+AQG0dsri4iftA= +github.com/puzpuzpuz/xsync/v3 v3.4.1/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= diff --git a/package.json b/package.json index 33dce0115..3112f9a1a 100644 --- a/package.json +++ b/package.json @@ -24,10 +24,10 @@ "@iconify-json/flagpack": "1.2.2", "@iconify-json/mdi": "1.2.2", "@iconify-json/simple-icons": "1.2.20", - "@nuxt/content": "2.13.4", + "@nuxt/content": "3.0.0", "@nuxt/fonts": "0.10.3", "@nuxt/ui-pro": "1.7.0", - "@nuxtjs/robots": "5.1.1", + "@nuxtjs/robots": "5.2.2", "@pinia/nuxt": "0.9.0", "@protobuf-ts/grpcweb-transport": "2.9.4", "@unovis/ts": "1.5.0", @@ -46,7 +46,7 @@ "maska": "3.0.4", "mdi-vue3": "7.4.47", "nuxt-zod-i18n": "1.11.5", - "pinia": "2.3.0", + "pinia": "2.3.1", "slugify": "1.6.6", "splitpanes": "3.1.8", "uuid": "11.0.5", @@ -99,7 +99,7 @@ "cssnano": "7.0.6", "eslint": "9.18.0", "eslint-config-prettier": "10.0.1", - "eslint-plugin-prettier": "5.2.2", + "eslint-plugin-prettier": "5.2.3", "eslint-plugin-vue": "9.32.0", "nuxi": "3.20.0", "nuxt": "3.15.2", diff --git a/pkg/dbsync/sync_users.go b/pkg/dbsync/sync_users.go index 8798669ee..a71e360b3 100644 --- a/pkg/dbsync/sync_users.go +++ b/pkg/dbsync/sync_users.go @@ -78,14 +78,16 @@ func (s *usersSync) Sync(ctx context.Context) error { } } - // Split names if only one field is used by the framework + // Split names if only one field is used by the framework and only if we get 2 names out of it if s.cfg.Tables.Users.SplitName { for k := range users { if users[k].Lastname == "" { ss := strings.Split(users[k].Firstname, " ") - users[k].Lastname = ss[len(ss)-1] + if len(ss) > 1 { + users[k].Lastname = ss[len(ss)-1] - users[k].Firstname = strings.Replace(users[k].Firstname, " "+users[k].Lastname, "", 1) + users[k].Firstname = strings.Replace(users[k].Firstname, " "+users[k].Lastname, "", 1) + } } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2123f982..d71c52530 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,20 +25,20 @@ importers: specifier: 1.2.20 version: 1.2.20 '@nuxt/content': - specifier: 2.13.4 - version: 2.13.4(db0@0.2.1)(ioredis@5.4.2)(magicast@0.3.5)(nuxt@3.15.2(@parcel/watcher@2.5.0)(@types/node@22.10.7)(db0@0.2.1)(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1))(rollup@4.29.1)(vue@3.5.13(typescript@5.7.3)) + specifier: 3.0.0 + version: 3.0.0(@libsql/client@0.14.0)(magicast@0.3.5)(pg@8.13.1)(rollup@4.29.1) '@nuxt/fonts': specifier: 0.10.3 - version: 0.10.3(db0@0.2.1)(ioredis@5.4.2)(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1)) + version: 0.10.3(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(ioredis@5.4.2)(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1)) '@nuxt/ui-pro': specifier: 1.7.0 version: 1.7.0(change-case@5.4.4)(magicast@0.3.5)(rollup@4.29.1)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3)) '@nuxtjs/robots': - specifier: 5.1.1 - version: 5.1.1(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3)) + specifier: 5.2.2 + version: 5.2.2(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3)) '@pinia/nuxt': specifier: 0.9.0 - version: 0.9.0(magicast@0.3.5)(pinia@2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1) + version: 0.9.0(magicast@0.3.5)(pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1) '@protobuf-ts/grpcweb-transport': specifier: 2.9.4 version: 2.9.4 @@ -91,8 +91,8 @@ importers: specifier: 1.11.5 version: 1.11.5(magicast@0.3.5)(rollup@4.29.1)(typescript@5.7.3) pinia: - specifier: 2.3.0 - version: 2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) + specifier: 2.3.1 + version: 2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) slugify: specifier: 1.6.6 version: 1.6.6 @@ -228,7 +228,7 @@ importers: version: 12.4.0(typescript@5.7.3) '@vueuse/nuxt': specifier: 12.4.0 - version: 12.4.0(magicast@0.3.5)(nuxt@3.15.2(@parcel/watcher@2.5.0)(@types/node@22.10.7)(db0@0.2.1)(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1))(rollup@4.29.1)(typescript@5.7.3) + version: 12.4.0(magicast@0.3.5)(nuxt@3.15.2(@libsql/client@0.14.0)(@parcel/watcher@2.5.0)(@types/node@22.10.7)(better-sqlite3@11.8.1)(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1))(rollup@4.29.1)(typescript@5.7.3) '@vueuse/router': specifier: 12.4.0 version: 12.4.0(typescript@5.7.3)(vue-router@4.5.0(vue@3.5.13(typescript@5.7.3))) @@ -245,8 +245,8 @@ importers: specifier: 10.0.1 version: 10.0.1(eslint@9.18.0(jiti@2.4.2)) eslint-plugin-prettier: - specifier: 5.2.2 - version: 5.2.2(eslint-config-prettier@10.0.1(eslint@9.18.0(jiti@2.4.2)))(eslint@9.18.0(jiti@2.4.2))(prettier@3.4.2) + specifier: 5.2.3 + version: 5.2.3(eslint-config-prettier@10.0.1(eslint@9.18.0(jiti@2.4.2)))(eslint@9.18.0(jiti@2.4.2))(prettier@3.4.2) eslint-plugin-vue: specifier: 9.32.0 version: 9.32.0(eslint@9.18.0(jiti@2.4.2)) @@ -255,7 +255,7 @@ importers: version: 3.20.0 nuxt: specifier: 3.15.2 - version: 3.15.2(@parcel/watcher@2.5.0)(@types/node@22.10.7)(db0@0.2.1)(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1) + version: 3.15.2(@libsql/client@0.14.0)(@parcel/watcher@2.5.0)(@types/node@22.10.7)(better-sqlite3@11.8.1)(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1) nuxt-tiptap-editor: specifier: 2.1.4 version: 2.1.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/extension-code-block@2.10.4(@tiptap/core@2.10.4(@tiptap/pm@2.10.4))(@tiptap/pm@2.10.4))(highlight.js@11.11.0)(magicast@0.3.5)(rollup@4.29.1)(vue@3.5.13(typescript@5.7.3)) @@ -264,7 +264,7 @@ importers: version: 3.7.3(magicast@0.3.5)(prettier@3.4.2)(rollup@4.29.1) pinia-plugin-persistedstate: specifier: 4.2.0 - version: 4.2.0(@pinia/nuxt@0.9.0(magicast@0.3.5)(pinia@2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1))(magicast@0.3.5)(pinia@2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1) + version: 4.2.0(@pinia/nuxt@0.9.0(magicast@0.3.5)(pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1))(magicast@0.3.5)(pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1) postcss: specifier: 8.5.1 version: 8.5.1 @@ -1143,6 +1143,57 @@ packages: '@kwsites/promise-deferred@1.1.1': resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + '@libsql/client@0.14.0': + resolution: {integrity: sha512-/9HEKfn6fwXB5aTEEoMeFh4CtG0ZzbncBb1e++OCdVpgKZ/xyMsIVYXm0w7Pv4RUel803vE6LwniB3PqD72R0Q==} + + '@libsql/core@0.14.0': + resolution: {integrity: sha512-nhbuXf7GP3PSZgdCY2Ecj8vz187ptHlZQ0VRc751oB2C1W8jQUXKKklvt7t1LJiUTQBVJuadF628eUk+3cRi4Q==} + + '@libsql/darwin-arm64@0.4.7': + resolution: {integrity: sha512-yOL742IfWUlUevnI5PdnIT4fryY3LYTdLm56bnY0wXBw7dhFcnjuA7jrH3oSVz2mjZTHujxoITgAE7V6Z+eAbg==} + cpu: [arm64] + os: [darwin] + + '@libsql/darwin-x64@0.4.7': + resolution: {integrity: sha512-ezc7V75+eoyyH07BO9tIyJdqXXcRfZMbKcLCeF8+qWK5nP8wWuMcfOVywecsXGRbT99zc5eNra4NEx6z5PkSsA==} + cpu: [x64] + os: [darwin] + + '@libsql/hrana-client@0.7.0': + resolution: {integrity: sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==} + + '@libsql/isomorphic-fetch@0.3.1': + resolution: {integrity: sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==} + engines: {node: '>=18.0.0'} + + '@libsql/isomorphic-ws@0.1.5': + resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} + + '@libsql/linux-arm64-gnu@0.4.7': + resolution: {integrity: sha512-WlX2VYB5diM4kFfNaYcyhw5y+UJAI3xcMkEUJZPtRDEIu85SsSFrQ+gvoKfcVh76B//ztSeEX2wl9yrjF7BBCA==} + cpu: [arm64] + os: [linux] + + '@libsql/linux-arm64-musl@0.4.7': + resolution: {integrity: sha512-6kK9xAArVRlTCpWeqnNMCoXW1pe7WITI378n4NpvU5EJ0Ok3aNTIC2nRPRjhro90QcnmLL1jPcrVwO4WD1U0xw==} + cpu: [arm64] + os: [linux] + + '@libsql/linux-x64-gnu@0.4.7': + resolution: {integrity: sha512-CMnNRCmlWQqqzlTw6NeaZXzLWI8bydaXDke63JTUCvu8R+fj/ENsLrVBtPDlxQ0wGsYdXGlrUCH8Qi9gJep0yQ==} + cpu: [x64] + os: [linux] + + '@libsql/linux-x64-musl@0.4.7': + resolution: {integrity: sha512-nI6tpS1t6WzGAt1Kx1n1HsvtBbZ+jHn0m7ogNNT6pQHZQj7AFFTIMeDQw/i/Nt5H38np1GVRNsFe99eSIMs9XA==} + cpu: [x64] + os: [linux] + + '@libsql/win32-x64-msvc@0.4.7': + resolution: {integrity: sha512-7pJzOWzPm6oJUxml+PCDRzYQ4A1hTMHAciTAHfFK4fkbDZX33nWPVG7Y3vqdKtslcwAzwmrNDc6sXy2nwWnbiw==} + cpu: [x64] + os: [win32] + '@mapbox/geojson-rewind@0.5.2': resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==} hasBin: true @@ -1180,6 +1231,9 @@ packages: peerDependencies: rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + '@neon-rs/load@0.0.4': + resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} + '@netlify/functions@2.8.2': resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} engines: {node: '>=14.0.0'} @@ -1221,8 +1275,11 @@ packages: engines: {node: ^16.10.0 || >=18.0.0} hasBin: true - '@nuxt/content@2.13.4': - resolution: {integrity: sha512-NBaHL/SNYUK7+RLgOngSFmKqEPYc0dYdnwVFsxIdrOZUoUbD8ERJJDaoRwwtyYCMOgUeFA/zxAkuADytp+DKiQ==} + '@nuxt/content@3.0.0': + resolution: {integrity: sha512-JoC6DjJijY/PQV8S9jvet3vYZjHQnkLCtwY+EY/lcY5wvy4KctHiypO4YoH48HQSnTVhLGr/3q15i7z0aKoMag==} + peerDependencies: + '@libsql/client': '*' + pg: '*' '@nuxt/devalue@2.0.2': resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} @@ -1237,6 +1294,11 @@ packages: peerDependencies: vite: '*' + '@nuxt/devtools-kit@2.0.0-beta.3': + resolution: {integrity: sha512-VeMfxhwUk1InAca9C8HouIn0+4ON11B0MxL/Mv7m/FcgdyADH5nTp6P3+GoCe8TsHgyKSJ688ZVFFxXKDDDGcg==} + peerDependencies: + vite: '>=6.0' + '@nuxt/devtools-wizard@1.7.0': resolution: {integrity: sha512-86Gd92uEw0Dh2ErIYT9TMIrMOISE96fCRN4rxeryTvyiowQOsyrbkCeMNYrEehoRL+lohoyK6iDmFajadPNwWQ==} hasBin: true @@ -1287,10 +1349,6 @@ packages: resolution: {integrity: sha512-sAgLgSOj/SZxUmlJ/Q3TLRwIAqmiiZ5gCBrT+eq9CowIj7bgxX92pT720pDLEDs4wlXiTTsqC8nyqXQis8pPyA==} engines: {node: ^14.18.0 || >=16.10.0} - '@nuxt/schema@3.15.1': - resolution: {integrity: sha512-n5kOHt8uUyUM9z4Wu/8tIZkBYh3KTCGvyruG6oD9bfeT4OaS21+X3M7XsTXFMe+eYBZA70IFFlWn1JJZIPsKeA==} - engines: {node: ^14.18.0 || >=16.10.0} - '@nuxt/schema@3.15.2': resolution: {integrity: sha512-cTHGbLTbrQ83B+7Mh0ggc5MzIp74o8KciA0boCiBJyK5uImH9QQNK6VgfwRWcTD5sj3WNKiIB1luOMom3LHgVw==} engines: {node: ^14.18.0 || >=16.10.0} @@ -1319,11 +1377,11 @@ packages: resolution: {integrity: sha512-S8l5ri1GFo5OUsl9qSgicE9Sm0BZjVHU7p6ml1qhQUTewngnTPTlcytWX5etwJeAjHEu2w9VAV4qXTn9Q5EgmQ==} engines: {node: ^14.16.0 || >=16.11.0} - '@nuxtjs/mdc@0.9.5': - resolution: {integrity: sha512-bTnlY+oiW8QsmrLoiYN+rkSYxl7asELlwYeU9QPSkun5BVx7Yd8RajH8I+0QJZiMZzIHaO3LEgf3lzp5Lg6E0A==} + '@nuxtjs/mdc@0.13.1': + resolution: {integrity: sha512-4nywK8db32Qk5iGCtJA7ahT6Mns/47VTdjOLnjPtFlTdLegOtIlXTQ5OFsVkK+JQ9R8pxiNpv8FN7LzraqOjaw==} - '@nuxtjs/robots@5.1.1': - resolution: {integrity: sha512-ewba1DXqvwYE4Qhqdn0kJl3iOcYJ59ZceLWeSly+U9htrdCKlu9BFVS0/FyiMVssAn+p2YYAWWpho8gawGZoZA==} + '@nuxtjs/robots@5.2.2': + resolution: {integrity: sha512-8krXcdG/iysVhY1VNJFeLyCV20/Qvlq37TjRjgV91EKJnjcsjUWBlvyVYANOJsbKuoZK4WFoFUGt8Ehrbg91gg==} '@nuxtjs/tailwindcss@6.13.1': resolution: {integrity: sha512-atL2SaPsxLfMTlXUQvr1UpDYdz6ocNOhH35H+t7M++g4r79QiQScJ7XuyyMR9AyBN19lkPA3nw7NXxazXmYxlA==} @@ -1644,23 +1702,29 @@ packages: cpu: [x64] os: [win32] - '@shikijs/core@1.24.4': - resolution: {integrity: sha512-jjLsld+xEEGYlxAXDyGwWsKJ1sw5Pc1pnp4ai2ORpjx2UX08YYTC0NNqQYO1PaghYaR+PvgMOGuvzw2he9sk0Q==} + '@shikijs/core@1.29.1': + resolution: {integrity: sha512-Mo1gGGkuOYjDu5H8YwzmOuly9vNr8KDVkqj9xiKhhhFS8jisAtDSEWB9hzqRHLVQgFdA310e8XRJcW4tYhRB2A==} + + '@shikijs/engine-javascript@1.29.1': + resolution: {integrity: sha512-Hpi8k9x77rCQ7F/7zxIOUruNkNidMyBnP5qAGbLFqg4kRrg1HZhkB8btib5EXbQWTtLb5gBHOdBwshk20njD7Q==} + + '@shikijs/engine-oniguruma@1.29.1': + resolution: {integrity: sha512-gSt2WhLNgEeLstcweQOSp+C+MhOpTsgdNXRqr3zP6M+BUBZ8Md9OU2BYwUYsALBxHza7hwaIWtFHjQ/aOOychw==} - '@shikijs/engine-javascript@1.24.4': - resolution: {integrity: sha512-TClaQOLvo9WEMJv6GoUsykQ6QdynuKszuORFWCke8qvi6PeLm7FcD9+7y45UenysxEWYpDL5KJaVXTngTE+2BA==} + '@shikijs/langs@1.29.1': + resolution: {integrity: sha512-iERn4HlyuT044/FgrvLOaZgKVKf3PozjKjyV/RZ5GnlyYEAZFcgwHGkYboeBv2IybQG1KVS/e7VGgiAU4JY2Gw==} - '@shikijs/engine-oniguruma@1.24.4': - resolution: {integrity: sha512-Do2ry6flp2HWdvpj2XOwwa0ljZBRy15HKZITzPcNIBOGSeprnA8gOooA/bLsSPuy8aJBa+Q/r34dMmC3KNL/zw==} + '@shikijs/themes@1.29.1': + resolution: {integrity: sha512-lb11zf72Vc9uxkl+aec2oW1HVTHJ2LtgZgumb4Rr6By3y/96VmlU44bkxEb8WBWH3RUtbqAJEN0jljD9cF7H7g==} - '@shikijs/transformers@1.24.4': - resolution: {integrity: sha512-0jq5p9WLB7ToM/O7RWfxuIwirTJbIQsUR06jxdG3h3CEuO5m7ik8GnDsxwHhyIEfgJSZczSnVUZWFrNKy5It6g==} + '@shikijs/transformers@1.29.1': + resolution: {integrity: sha512-jVzJhriZ0t9y8TvsV4AzBm74BCLUoK6Bf41aIjJkZc1hKeL0PQtsNL096b1AxgZRwJwTfQalWZ+jBkRAuqVMPw==} - '@shikijs/types@1.24.4': - resolution: {integrity: sha512-0r0XU7Eaow0PuDxuWC1bVqmWCgm3XqizIaT7SM42K03vc69LGooT0U8ccSR44xP/hGlNx4FKhtYpV+BU6aaKAA==} + '@shikijs/types@1.29.1': + resolution: {integrity: sha512-aBqAuhYRp5vSir3Pc9+QPu9WESBOjUo03ao0IHLC4TyTioSsp/SkbAZSrIH4ghYYC1T1KTEpRSBa83bas4RnPA==} - '@shikijs/vscode-textmate@9.3.1': - resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} + '@shikijs/vscode-textmate@10.0.1': + resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} @@ -1673,6 +1737,10 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@sqlite.org/sqlite-wasm@3.48.0-build1': + resolution: {integrity: sha512-iRhDKMGVQ4P29W+fUnKV5TgX1fEsWyKzbiaHl/7b3EaCYFr7HUKO06eBz0fUYeFYBvyUiTd9SNDU7+mj2O0iWA==} + hasBin: true + '@stylistic/eslint-plugin@2.12.1': resolution: {integrity: sha512-fubZKIHSPuo07FgRTn6S4Nl0uXPRPYVNpyZzIDGfp7Fny6JjNus6kReLD7NI380JXi4HtUTSOZ34LBuNPO1XLQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2189,6 +2257,9 @@ packages: '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + '@types/ws@8.5.13': + resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} + '@types/zxcvbn@4.4.5': resolution: {integrity: sha512-FZJgC5Bxuqg7Rhsm/bx6gAruHHhDQ55r+s0JhDh8CQ16fD7NsJJ+p8YMMQDhSQoIrSmjpqqYWA96oQVMNkjRyA==} @@ -2267,35 +2338,18 @@ packages: '@ungap/structured-clone@1.2.1': resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} - '@unhead/dom@1.11.14': - resolution: {integrity: sha512-FaHCWo9JR4h7PCpSRaXuMC6ifXOuBzlI0PD1MmUcxND2ayDl1d6DauIbN8TUf9TDRxNkrK1Ehb0OCXjC1ZJtrg==} - '@unhead/dom@1.11.18': resolution: {integrity: sha512-zQuJUw/et9zYEV0SZWTDX23IgurwMaXycAuxt4L6OgNL0T4TWP3a0J/Vm3Q02hmdNo/cPKeVBrwBdnFUXjGU4w==} - '@unhead/schema@1.11.14': - resolution: {integrity: sha512-V9W9u5tF1/+TiLqxu+Qvh1ShoMDkPEwHoEo4DKdDG6ko7YlbzFfDxV6el9JwCren45U/4Vy/4Xi7j8OH02wsiA==} - '@unhead/schema@1.11.18': resolution: {integrity: sha512-a3TA/OJCRdfbFhcA3Hq24k1ZU1o9szicESrw8DZcGyQFacHnh84mVgnyqSkMnwgCmfN4kvjSiTBlLEHS6+wATw==} - '@unhead/shared@1.11.14': - resolution: {integrity: sha512-41Qt4PJKYVrEGOTXgBJLRYrEu3S7n5stoB4TFC6312CIBVedXqg7voHQurn32LVDjpfJftjLa2ggCjpqdqoRDw==} - '@unhead/shared@1.11.18': resolution: {integrity: sha512-OsupRQRxJqqnuKiL1Guqipjbl7MndD5DofvmGa3PFGu2qNPmOmH2mxGFjRBBgq2XxY1KalIHl/2I9HV6gbK8cw==} - '@unhead/ssr@1.11.14': - resolution: {integrity: sha512-JBF2f5PWPtpqBx/dan+4vL/dartSp8Nmd011zkT9qPYmizxO+/fsB1WQalbis1KszkfFatb6c4rO+hm0d6acOA==} - '@unhead/ssr@1.11.18': resolution: {integrity: sha512-uaHPz0RRAb18yKeCmHyHk5QKWRk/uHpOrqSbhRXTOhbrd3Ur3gGTVaAoyUoRYKGPU5B5/pyHh3TfLw0LkfrH1A==} - '@unhead/vue@1.11.14': - resolution: {integrity: sha512-6nfi7FsZ936gscmj+1nUB1pybiFMFbnuEFo7B/OY2klpLWsYDUOVvpsJhbu7C3u7wkTlJXglmAk6jdd8I7WgZA==} - peerDependencies: - vue: '>=2.7 || >=3' - '@unhead/vue@1.11.18': resolution: {integrity: sha512-Jfi7t/XNBnlcauP9UTH3VHBcS69G70ikFd2e5zdgULLDRWpOlLs1sSTH1V2juNptc93DOk9RQfC5jLWbLcivFw==} peerDependencies: @@ -2435,17 +2489,9 @@ packages: '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - '@vueuse/core@11.3.0': - resolution: {integrity: sha512-7OC4Rl1f9G8IT6rUfi9JrKiXy4bfmHhZ5x2Ceojy0jnd3mHNEvV4JaRygH362ror6/NZ+Nl+n13LPzGiPN8cKA==} - '@vueuse/core@12.4.0': resolution: {integrity: sha512-XnjQYcJwCsyXyIafyA6SvyN/OBtfPnjvJmbxNxQjCcyWD198urwm5TYvIUUyAxEAN0K7HJggOgT15cOlWFyLeA==} - '@vueuse/head@2.0.0': - resolution: {integrity: sha512-ykdOxTGs95xjD4WXE4na/umxZea2Itl0GWBILas+O4oqS7eXIods38INvk3XkJKjqMdWPcpCyLX/DioLQxU1KA==} - peerDependencies: - vue: '>=2.7 || >=3' - '@vueuse/integrations@12.4.0': resolution: {integrity: sha512-EZm+TLoZMeEwDnccnEqB54CvvcVKbVnJubOF380HqdyZAxWfQ8egnFCESdlXWEIbxFgjfhcGfZUvQx5Nqw9Ofw==} peerDependencies: @@ -2490,17 +2536,9 @@ packages: '@vueuse/math@12.4.0': resolution: {integrity: sha512-rVsmARhaFndB2ObpGyJgoeLRmNjko34t6QQ3x8DCmR4H9iAVIrSAyYtUf6anbLXo8KqMQ8obOagdYbcoWn9t1Q==} - '@vueuse/metadata@11.3.0': - resolution: {integrity: sha512-pwDnDspTqtTo2HwfLw4Rp6yywuuBdYnPYDq+mO38ZYKGebCUQC/nVj/PXSiK9HX5otxLz8Fn7ECPbjiRz2CC3g==} - '@vueuse/metadata@12.4.0': resolution: {integrity: sha512-AhPuHs/qtYrKHUlEoNO6zCXufu8OgbR8S/n2oMw1OQuBQJ3+HOLQ+EpvXs+feOlZMa0p8QVvDWNlmcJJY8rW2g==} - '@vueuse/nuxt@11.3.0': - resolution: {integrity: sha512-FxtRTgFmsoASamR3lOftv/r11o1BojF9zir8obbTnKamVZdlQ5rgJ0hHgVbrgA6dlMuEx/PzwqAmiKNFdU4oCQ==} - peerDependencies: - nuxt: ^3.0.0 - '@vueuse/nuxt@12.4.0': resolution: {integrity: sha512-3T4YTIxbScSfYPF6+EodL04b54CtaKwaPg+BQcod1BDa3j0afxbDlhqWv7uobacLR5xYWy+hITnmgT+TJQsdWA==} peerDependencies: @@ -2511,9 +2549,6 @@ packages: peerDependencies: vue-router: '>=4.0.0-rc.1' - '@vueuse/shared@11.3.0': - resolution: {integrity: sha512-P8gSSWQeucH5821ek2mn/ciCk+MS/zoRKqdQIM3bHq6p7GXDAJLmnRRKmF5F65sAVJIfzQlwR3aDzwCn10s8hA==} - '@vueuse/shared@12.4.0': resolution: {integrity: sha512-9yLgbHVIF12OSCojnjTIoZL1+UA10+O4E1aD6Hpfo/DKVm5o3SZIwz6CupqGy3+IcKI8d6Jnl26EQj/YucnW0Q==} @@ -2657,6 +2692,9 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + better-sqlite3@11.8.1: + resolution: {integrity: sha512-9BxNaBkblMjhJW8sMRZxnxVTRgbRmssZW0Oxc1MPBTfiR+WW21e2Mk4qu8CzrcZb1LwPCnFsfDEzq+SNcBU8eg==} + big-integer@1.6.52: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} @@ -2674,6 +2712,9 @@ packages: birpc@0.2.19: resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + blob-to-buffer@1.2.9: resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==} @@ -2715,6 +2756,9 @@ packages: resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==} engines: {node: '>=0.10'} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -2807,6 +2851,9 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -3270,6 +3317,10 @@ packages: decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dedupe@4.0.3: resolution: {integrity: sha512-WMo1AIq5MSstJ5DhVVccdue22MEpaxzf0tdznjXgWrfei9F3aNYP7xhbKgi1U8JlvTU4RyhUSLI63jt7PUipBQ==} engines: {node: '>=4.0'} @@ -3277,6 +3328,10 @@ packages: deep-equal@1.0.1: resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -3343,6 +3398,10 @@ packages: engines: {node: '>=0.10'} hasBin: true + detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -3446,6 +3505,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + engine.io-client@6.6.2: resolution: {integrity: sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==} @@ -3539,8 +3601,8 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-prettier@5.2.2: - resolution: {integrity: sha512-1yI3/hf35wmlq66C8yOyrujQnel+v5l1Vop5Cl2I6ylyNTT1JbuUUnV3/41PzwTzcyDp/oF0jWE3HXvcH5AQOQ==} + eslint-plugin-prettier@5.2.3: + resolution: {integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -3663,6 +3725,10 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -3777,6 +3843,9 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -3852,6 +3921,9 @@ packages: git-url-parse@16.0.0: resolution: {integrity: sha512-Y8iAF0AmCaqXc6a5GYgPQW9ESbncNLOL+CeQAJRhmWUOmnPkKpBYeWYp4mFd3LA5j53CdGDdslzX12yEBVHQQg==} + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -3944,30 +4016,54 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-embedded@3.0.0: + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} + + hast-util-format@1.1.0: + resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==} + hast-util-from-parse5@8.0.2: resolution: {integrity: sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==} + hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} + hast-util-is-body-ok-link@3.0.1: + resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==} + hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + hast-util-minify-whitespace@1.0.1: + resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==} + hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + hast-util-phrasing@3.0.1: + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} + hast-util-raw@9.1.0: resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} hast-util-to-html@9.0.4: resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} + hast-util-to-mdast@10.1.1: + resolution: {integrity: sha512-ObMDBFkVPHa0/47FUPO6UuupETRXNTY9y2dGBQQzEUrFq6LjUVwZEoUjjj/agvQ6oS+fAIyNzgNEa6h3lhaoKA==} + hast-util-to-parse5@8.0.0: resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} hast-util-to-string@3.0.1: resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} @@ -3998,6 +4094,9 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + html-whitespace-sensitive-tag-names@3.0.1: + resolution: {integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==} + http-assert@1.5.0: resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} engines: {node: '>= 0.8'} @@ -4243,6 +4342,9 @@ packages: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true + js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + js-levenshtein@1.1.6: resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} engines: {node: '>=0.10.0'} @@ -4367,6 +4469,11 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + libsql@0.4.7: + resolution: {integrity: sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==} + cpu: [x64, arm64, wasm32] + os: [darwin, linux, win32] + lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -4672,6 +4779,10 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -4680,6 +4791,10 @@ packages: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} hasBin: true + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.0.8: resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} @@ -4709,9 +4824,6 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minisearch@7.1.1: - resolution: {integrity: sha512-b3YZEYCEH4EdCAtYP7OlDyx7FdPwNzuNwLQ34SfJpM9dlbBZzeXndGavTrC+VCiRWomL21SWfMc6SCKO/U2ZNw==} - minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -4723,6 +4835,9 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -4775,6 +4890,9 @@ packages: nanotar@0.1.1: resolution: {integrity: sha512-AiJsGsSF3O0havL1BydvI4+wR76sKT+okKRwWIaK96cZUnXqH0uNBOsHlbwZq3+m2BR1VKqHDVudl3gO4mYjpQ==} + napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4792,6 +4910,10 @@ packages: xml2js: optional: true + node-abi@3.73.0: + resolution: {integrity: sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==} + engines: {node: '>=10'} + node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} @@ -4862,6 +4984,10 @@ packages: engines: {node: ^16.10.0 || >=18.0.0} hasBin: true + nuxt-component-meta@0.10.0: + resolution: {integrity: sha512-iq7hbSnfp4Ff/PTMYBF8pYabTQuF3u7HVN66Kb3hOnrnaPEdXEn/q6HkAn5V8UjOVSgXYpvycM0wSnwyADYNVA==} + hasBin: true + nuxt-site-config-kit@3.0.6: resolution: {integrity: sha512-QBOFzAIo+D02avFQQ7gNlRyA372/PQlgW2IjL2nttvjfHapqYbvP6tIP55soL+1+D8YvF/bGZgS+vJtfQhroUg==} @@ -4927,8 +5053,8 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - oniguruma-to-es@0.8.1: - resolution: {integrity: sha512-dekySTEvCxCj0IgKcA2uUCO/e4ArsqpucDPcX26w9ajx+DvMWLc5eZeJaRQkd7oC/+rwif5gnT900tA34uN9Zw==} + oniguruma-to-es@2.2.0: + resolution: {integrity: sha512-EEsso27ri0sf+t4uRFEj5C5gvXQj0d0w1Y2qq06b+hDLBnvzO1rWTwEW4C7ytan6nhg4WPwE26eLoiPhHUbvKg==} only@0.0.2: resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} @@ -5088,6 +5214,9 @@ packages: pathe@2.0.1: resolution: {integrity: sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw==} + pathe@2.0.2: + resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} + pbf@3.3.0: resolution: {integrity: sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==} hasBin: true @@ -5095,6 +5224,40 @@ packages: perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + pg-cloudflare@1.1.1: + resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} + + pg-connection-string@2.7.0: + resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-pool@3.7.0: + resolution: {integrity: sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.7.0: + resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + pg@8.13.1: + resolution: {integrity: sha512-OUir1A0rPNZlX//c7ksiu7crsGZTKSOXJPgtNiHGIlC9H0lO+NC6ZDYksSgBYY/thSWhnSRBv8w1lieNNGATNQ==} + engines: {node: '>= 8.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -5121,8 +5284,8 @@ packages: pinia: optional: true - pinia@2.3.0: - resolution: {integrity: sha512-ohZj3jla0LL0OH5PlLTDMzqKiVw2XARmC1XYLdLWIPBMdhDW/123ZWr4zVAhtJm+aoSkFa13pYXskAvAscIkhQ==} + pinia@2.3.1: + resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==} peerDependencies: typescript: '>=4.4.4' vue: ^2.7.0 || ^3.5.11 @@ -5386,9 +5549,30 @@ packages: resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + + postgres-bytea@1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} + + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + potpack@1.0.2: resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==} + prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + engines: {node: '>=10'} + hasBin: true + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -5483,6 +5667,9 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + promise-limit@2.7.0: + resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -5566,6 +5753,9 @@ packages: protocols@2.0.1: resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} @@ -5596,6 +5786,10 @@ packages: rc9@2.1.2: resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} @@ -5610,6 +5804,10 @@ packages: readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + readable-stream@4.6.0: resolution: {integrity: sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5640,14 +5838,14 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regex-recursion@5.0.0: - resolution: {integrity: sha512-UwyOqeobrCCqTXPcsSqH4gDhOjD5cI/b8kjngWgSZbxYh5yVjAwTjO5+hAuPRNiuR70+5RlWSs+U9PVcVcW9Lw==} + regex-recursion@5.1.1: + resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - regex@5.0.2: - resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==} + regex@5.1.1: + resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} regexp-ast-analysis@0.7.1: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} @@ -5664,9 +5862,15 @@ packages: rehype-external-links@3.0.0: resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} + rehype-minify-whitespace@6.0.2: + resolution: {integrity: sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw==} + rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + rehype-remark@10.0.0: + resolution: {integrity: sha512-+aDXY/icqMFOafJQomVjxe3BAP7aR3lIsQ3GV6VIwpbCD2nvNFOXjGvotMe5p0Ny+Gt6L13DhEf/FjOOpTuUbQ==} + rehype-slug@6.0.0: resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} @@ -5683,8 +5887,8 @@ packages: remark-gfm@4.0.0: resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} - remark-mdc@3.5.1: - resolution: {integrity: sha512-5eWB7CL2cFzJ0RYk/EsktRKo4cyE7gxxXcVXA4TVQYRd962cE9HW902zfdVZOBYKYlJqB2XEeC9dtAEzdg3RaA==} + remark-mdc@3.5.2: + resolution: {integrity: sha512-DMNyAwWfVtFIHP80IngiLhN4xXRGKO8OpvWYhsT468dXsjc4tvrENjQwZABPwgKXcFpHwwIZL2i/Wq/IDGF8VQ==} remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} @@ -5866,8 +6070,8 @@ packages: resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} engines: {node: '>= 0.4'} - shiki@1.24.4: - resolution: {integrity: sha512-aVGSFAOAr1v26Hh/+GBIsRVDWJ583XYV7CuNURKRWh9gpGv4OdbisZGq96B9arMYTZhTQkmRF5BrShOSTvNqhw==} + shiki@1.29.1: + resolution: {integrity: sha512-TghWKV9pJTd/N+IgAIVJtr0qZkB7FfFCUrrEJc0aRmZupo3D1OCVRknQWVRVA7AX/M0Ld7QfoAruPzr3CnUJuw==} signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -5876,6 +6080,12 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-git@3.27.0: resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} @@ -5961,6 +6171,10 @@ packages: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + splitpanes@3.1.8: resolution: {integrity: sha512-iYir0doakV9gYBfCuflGCxCD5Yhh09OGgT+epjfc6LZfTvGDdMXuD0Q4w6jI3hlkdRR1Ta3DlARcV3MOkybymg==} peerDependencies: @@ -6019,6 +6233,10 @@ packages: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -6100,6 +6318,13 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} @@ -6203,6 +6428,9 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + trim-trailing-lines@2.1.0: + resolution: {integrity: sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==} + trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} @@ -6228,6 +6456,9 @@ packages: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -6290,9 +6521,6 @@ packages: unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} - unhead@1.11.14: - resolution: {integrity: sha512-XmXW0aZyX9kGk9ejCKCSvv/J4T3Rt4hoAe2EofM+nhG+zwZ7AArUMK/0F/fj6FTkfgY0u0/JryE00qUDULgygA==} - unhead@1.11.18: resolution: {integrity: sha512-TWgGUoZMpYe2yJwY6jZ0/9kpQT18ygr2h5lI6cUXdfD9UzDc0ytM9jGaleSYkj9guJWXkk7izYBnzJvxl8mRvQ==} @@ -6325,6 +6553,9 @@ packages: unist-builder@4.0.0: resolution: {integrity: sha512-wmRFnH+BLpZnTKpc5L7O67Kac89s9HMrtELpnNaE6TAobq5DTZZs5YaTQfAZBA9bFPECx2uVAPO31c+GVug8mg==} + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} @@ -6728,6 +6959,17 @@ packages: vue-bundle-renderer@2.1.1: resolution: {integrity: sha512-+qALLI5cQncuetYOXp4yScwYvqh8c6SMXee3B+M7oTZxOgtESP0l4j/fXdEJoZ+EdMxkGWIj+aSEyjXkOdmd7g==} + vue-component-meta@2.2.0: + resolution: {integrity: sha512-IitQWA2vqutKUoOYawW4KDcSONKq1i4uyr+3NesQWuQbSdLg4tNcfHjQnAQMzHqAMunBTMST8uiknrYixZWHFQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + vue-component-type-helpers@2.2.0: + resolution: {integrity: sha512-cYrAnv2me7bPDcg9kIcGwjJiSB6Qyi08+jLDo9yuvoFQjzHiPTzML7RnkJB1+3P6KMsX/KbCD4QE3Tv/knEllw==} + vue-countup-v3@1.4.2: resolution: {integrity: sha512-nRC65jBcdgwybxqztgd/WaK8ZN5T9ECPyiCFGYFMewCsvqdRVo1CtpT7JREcPNF837Fgu/izTSFiuzrIGD6w0A==} peerDependencies: @@ -6926,6 +7168,10 @@ packages: resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} engines: {node: '>=0.4.0'} + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + xxhashjs@0.2.2: resolution: {integrity: sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==} @@ -6990,6 +7236,17 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} + zod-to-json-schema@3.24.1: + resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} + peerDependencies: + zod: ^3.24.1 + + zod-to-ts@1.2.0: + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} + peerDependencies: + typescript: ^4.9.4 || ^5.0.2 + zod: ^3 + zod@3.24.1: resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} @@ -7775,6 +8032,62 @@ snapshots: '@kwsites/promise-deferred@1.1.1': {} + '@libsql/client@0.14.0': + dependencies: + '@libsql/core': 0.14.0 + '@libsql/hrana-client': 0.7.0 + js-base64: 3.7.7 + libsql: 0.4.7 + promise-limit: 2.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/core@0.14.0': + dependencies: + js-base64: 3.7.7 + + '@libsql/darwin-arm64@0.4.7': + optional: true + + '@libsql/darwin-x64@0.4.7': + optional: true + + '@libsql/hrana-client@0.7.0': + dependencies: + '@libsql/isomorphic-fetch': 0.3.1 + '@libsql/isomorphic-ws': 0.1.5 + js-base64: 3.7.7 + node-fetch: 3.3.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/isomorphic-fetch@0.3.1': {} + + '@libsql/isomorphic-ws@0.1.5': + dependencies: + '@types/ws': 8.5.13 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/linux-arm64-gnu@0.4.7': + optional: true + + '@libsql/linux-arm64-musl@0.4.7': + optional: true + + '@libsql/linux-x64-gnu@0.4.7': + optional: true + + '@libsql/linux-x64-musl@0.4.7': + optional: true + + '@libsql/win32-x64-msvc@0.4.7': + optional: true + '@mapbox/geojson-rewind@0.5.2': dependencies: get-stream: 6.0.1 @@ -7815,6 +8128,8 @@ snapshots: json5: 2.2.3 rollup: 4.29.1 + '@neon-rs/load@0.0.4': {} + '@netlify/functions@2.8.2': dependencies: '@netlify/serverless-functions-api': 1.26.1 @@ -7878,62 +8193,60 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/content@2.13.4(db0@0.2.1)(ioredis@5.4.2)(magicast@0.3.5)(nuxt@3.15.2(@parcel/watcher@2.5.0)(@types/node@22.10.7)(db0@0.2.1)(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1))(rollup@4.29.1)(vue@3.5.13(typescript@5.7.3))': + '@nuxt/content@3.0.0(@libsql/client@0.14.0)(magicast@0.3.5)(pg@8.13.1)(rollup@4.29.1)': dependencies: + '@libsql/client': 0.14.0 '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) - '@nuxtjs/mdc': 0.9.5(magicast@0.3.5)(rollup@4.29.1) - '@vueuse/core': 11.3.0(vue@3.5.13(typescript@5.7.3)) - '@vueuse/head': 2.0.0(vue@3.5.13(typescript@5.7.3)) - '@vueuse/nuxt': 11.3.0(magicast@0.3.5)(nuxt@3.15.2(@parcel/watcher@2.5.0)(@types/node@22.10.7)(db0@0.2.1)(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1))(rollup@4.29.1)(vue@3.5.13(typescript@5.7.3)) + '@nuxtjs/mdc': 0.13.1(magicast@0.3.5)(rollup@4.29.1) + '@shikijs/langs': 1.29.1 + '@sqlite.org/sqlite-wasm': 3.48.0-build1 + better-sqlite3: 11.8.1 + c12: 2.0.1(magicast@0.3.5) + chokidar: 4.0.3 consola: 3.4.0 defu: 6.1.4 destr: 2.0.3 - json5: 2.2.3 + fast-glob: 3.3.3 + git-url-parse: 16.0.0 + jiti: 2.4.2 knitwork: 1.2.0 listhen: 1.9.0 + mdast-util-to-hast: 13.2.0 mdast-util-to-string: 4.0.0 - mdurl: 2.0.0 micromark: 4.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-resolve-all: 2.0.1 micromark-util-sanitize-uri: 2.0.1 - micromark-util-types: 2.0.1 - minisearch: 7.1.1 + micromatch: 4.0.8 + minimatch: 10.0.1 + nuxt-component-meta: 0.10.0(magicast@0.3.5)(rollup@4.29.1) ohash: 1.1.4 - pathe: 1.1.2 + parse-git-config: 3.0.0 + pathe: 2.0.1 + pg: 8.13.1 + pkg-types: 1.3.1 + remark-mdc: 3.5.2 scule: 1.3.0 - shiki: 1.24.4 + shiki: 1.29.1 slugify: 1.6.6 socket.io-client: 4.8.1 + tar: 7.4.3 + typescript: 5.7.3 ufo: 1.5.4 + unified: 11.0.5 unist-util-stringify-position: 4.0.0 - unstorage: 1.14.1(db0@0.2.1)(ioredis@5.4.2) + unist-util-visit: 5.0.0 ws: 8.18.0 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-ts: 1.2.0(typescript@5.7.3)(zod@3.24.1) transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/kv' - - '@vue/composition-api' - - aws4fetch - bufferutil - - db0 - - idb-keyval - - ioredis - magicast - - nuxt - rollup - supports-color - - uploadthing - utf-8-validate - - vue '@nuxt/devalue@2.0.2': {} @@ -7959,6 +8272,17 @@ snapshots: - rollup - supports-color + '@nuxt/devtools-kit@2.0.0-beta.3(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) + '@nuxt/schema': 3.15.2 + execa: 7.2.0 + vite: 6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1) + transitivePeerDependencies: + - magicast + - rollup + - supports-color + '@nuxt/devtools-wizard@1.7.0': dependencies: consola: 3.4.0 @@ -8083,7 +8407,7 @@ snapshots: - utf-8-validate - vite - '@nuxt/fonts@0.10.3(db0@0.2.1)(ioredis@5.4.2)(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))': + '@nuxt/fonts@0.10.3(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(ioredis@5.4.2)(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))': dependencies: '@nuxt/devtools-kit': 1.6.4(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1)) '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) @@ -8104,7 +8428,7 @@ snapshots: ufo: 1.5.4 unifont: 0.1.7 unplugin: 2.1.0 - unstorage: 1.14.1(db0@0.2.1)(ioredis@5.4.2) + unstorage: 1.14.1(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(ioredis@5.4.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -8201,13 +8525,6 @@ snapshots: - rollup - supports-color - '@nuxt/schema@3.15.1': - dependencies: - consola: 3.4.0 - defu: 6.1.4 - pathe: 2.0.0 - std-env: 3.8.0 - '@nuxt/schema@3.15.2': dependencies: consola: 3.4.0 @@ -8417,10 +8734,10 @@ snapshots: - typescript - vue - '@nuxtjs/mdc@0.9.5(magicast@0.3.5)(rollup@4.29.1)': + '@nuxtjs/mdc@0.13.1(magicast@0.3.5)(rollup@4.29.1)': dependencies: '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) - '@shikijs/transformers': 1.24.4 + '@shikijs/transformers': 1.29.1 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 '@vue/compiler-core': 3.5.13 @@ -8430,25 +8747,30 @@ snapshots: destr: 2.0.3 detab: 3.0.2 github-slugger: 2.0.0 + hast-util-format: 1.1.0 + hast-util-to-mdast: 10.1.1 hast-util-to-string: 3.0.1 mdast-util-to-hast: 13.2.0 micromark-util-sanitize-uri: 2.0.1 ohash: 1.1.4 parse5: 7.2.1 - pathe: 1.1.2 + pathe: 2.0.2 property-information: 6.5.0 rehype-external-links: 3.0.0 + rehype-minify-whitespace: 6.0.2 rehype-raw: 7.0.0 + rehype-remark: 10.0.0 rehype-slug: 6.0.0 rehype-sort-attribute-values: 5.0.1 rehype-sort-attributes: 5.0.1 remark-emoji: 5.0.1 remark-gfm: 4.0.0 - remark-mdc: 3.5.1 + remark-mdc: 3.5.2 remark-parse: 11.0.0 remark-rehype: 11.1.1 + remark-stringify: 11.0.0 scule: 1.3.0 - shiki: 1.24.4 + shiki: 1.29.1 ufo: 1.5.4 unified: 11.0.5 unist-builder: 4.0.0 @@ -8460,15 +8782,15 @@ snapshots: - rollup - supports-color - '@nuxtjs/robots@5.1.1(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3))': + '@nuxtjs/robots@5.2.2(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3))': dependencies: - '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1)) + '@nuxt/devtools-kit': 2.0.0-beta.3(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1)) '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) consola: 3.4.0 defu: 6.1.4 nuxt-site-config: 3.0.6(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3)) - pathe: 2.0.1 - pkg-types: 1.3.0 + pathe: 2.0.2 + pkg-types: 1.3.1 sirv: 3.0.0 std-env: 3.8.0 ufo: 1.5.4 @@ -8566,10 +8888,10 @@ snapshots: '@parcel/watcher-win32-ia32': 2.5.0 '@parcel/watcher-win32-x64': 2.5.0 - '@pinia/nuxt@0.9.0(magicast@0.3.5)(pinia@2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1)': + '@pinia/nuxt@0.9.0(magicast@0.3.5)(pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1)': dependencies: '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) - pinia: 2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) + pinia: 2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) transitivePeerDependencies: - magicast - rollup @@ -8765,36 +9087,45 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.29.1': optional: true - '@shikijs/core@1.24.4': + '@shikijs/core@1.29.1': dependencies: - '@shikijs/engine-javascript': 1.24.4 - '@shikijs/engine-oniguruma': 1.24.4 - '@shikijs/types': 1.24.4 - '@shikijs/vscode-textmate': 9.3.1 + '@shikijs/engine-javascript': 1.29.1 + '@shikijs/engine-oniguruma': 1.29.1 + '@shikijs/types': 1.29.1 + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 hast-util-to-html: 9.0.4 - '@shikijs/engine-javascript@1.24.4': + '@shikijs/engine-javascript@1.29.1': + dependencies: + '@shikijs/types': 1.29.1 + '@shikijs/vscode-textmate': 10.0.1 + oniguruma-to-es: 2.2.0 + + '@shikijs/engine-oniguruma@1.29.1': + dependencies: + '@shikijs/types': 1.29.1 + '@shikijs/vscode-textmate': 10.0.1 + + '@shikijs/langs@1.29.1': dependencies: - '@shikijs/types': 1.24.4 - '@shikijs/vscode-textmate': 9.3.1 - oniguruma-to-es: 0.8.1 + '@shikijs/types': 1.29.1 - '@shikijs/engine-oniguruma@1.24.4': + '@shikijs/themes@1.29.1': dependencies: - '@shikijs/types': 1.24.4 - '@shikijs/vscode-textmate': 9.3.1 + '@shikijs/types': 1.29.1 - '@shikijs/transformers@1.24.4': + '@shikijs/transformers@1.29.1': dependencies: - shiki: 1.24.4 + '@shikijs/core': 1.29.1 + '@shikijs/types': 1.29.1 - '@shikijs/types@1.24.4': + '@shikijs/types@1.29.1': dependencies: - '@shikijs/vscode-textmate': 9.3.1 + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@9.3.1': {} + '@shikijs/vscode-textmate@10.0.1': {} '@sindresorhus/is@4.6.0': {} @@ -8802,6 +9133,8 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} + '@sqlite.org/sqlite-wasm@3.48.0-build1': {} + '@stylistic/eslint-plugin@2.12.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/utils': 8.18.2(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) @@ -9349,6 +9682,10 @@ snapshots: '@types/web-bluetooth@0.0.20': {} + '@types/ws@8.5.13': + dependencies: + '@types/node': 22.10.7 + '@types/zxcvbn@4.4.5': {} '@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': @@ -9467,54 +9804,26 @@ snapshots: '@ungap/structured-clone@1.2.1': {} - '@unhead/dom@1.11.14': - dependencies: - '@unhead/schema': 1.11.14 - '@unhead/shared': 1.11.14 - '@unhead/dom@1.11.18': dependencies: '@unhead/schema': 1.11.18 '@unhead/shared': 1.11.18 - '@unhead/schema@1.11.14': - dependencies: - hookable: 5.5.3 - zhead: 2.2.4 - '@unhead/schema@1.11.18': dependencies: hookable: 5.5.3 zhead: 2.2.4 - '@unhead/shared@1.11.14': - dependencies: - '@unhead/schema': 1.11.14 - '@unhead/shared@1.11.18': dependencies: '@unhead/schema': 1.11.18 packrup: 0.1.2 - '@unhead/ssr@1.11.14': - dependencies: - '@unhead/schema': 1.11.14 - '@unhead/shared': 1.11.14 - '@unhead/ssr@1.11.18': dependencies: '@unhead/schema': 1.11.18 '@unhead/shared': 1.11.18 - '@unhead/vue@1.11.14(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@unhead/schema': 1.11.14 - '@unhead/shared': 1.11.14 - defu: 6.1.4 - hookable: 5.5.3 - unhead: 1.11.14 - vue: 3.5.13(typescript@5.7.3) - '@unhead/vue@1.11.18(vue@3.5.13(typescript@5.7.3))': dependencies: '@unhead/schema': 1.11.18 @@ -9780,16 +10089,6 @@ snapshots: '@vue/shared@3.5.13': {} - '@vueuse/core@11.3.0(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 11.3.0 - '@vueuse/shared': 11.3.0(vue@3.5.13(typescript@5.7.3)) - vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - '@vueuse/core@12.4.0(typescript@5.7.3)': dependencies: '@types/web-bluetooth': 0.0.20 @@ -9799,14 +10098,6 @@ snapshots: transitivePeerDependencies: - typescript - '@vueuse/head@2.0.0(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@unhead/dom': 1.11.14 - '@unhead/schema': 1.11.14 - '@unhead/ssr': 1.11.14 - '@unhead/vue': 1.11.14(vue@3.5.13(typescript@5.7.3)) - vue: 3.5.13(typescript@5.7.3) - '@vueuse/integrations@12.4.0(change-case@5.4.4)(fuse.js@7.0.0)(typescript@5.7.3)': dependencies: '@vueuse/core': 12.4.0(typescript@5.7.3) @@ -9825,32 +10116,15 @@ snapshots: transitivePeerDependencies: - typescript - '@vueuse/metadata@11.3.0': {} - '@vueuse/metadata@12.4.0': {} - '@vueuse/nuxt@11.3.0(magicast@0.3.5)(nuxt@3.15.2(@parcel/watcher@2.5.0)(@types/node@22.10.7)(db0@0.2.1)(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1))(rollup@4.29.1)(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) - '@vueuse/core': 11.3.0(vue@3.5.13(typescript@5.7.3)) - '@vueuse/metadata': 11.3.0 - local-pkg: 0.5.1 - nuxt: 3.15.2(@parcel/watcher@2.5.0)(@types/node@22.10.7)(db0@0.2.1)(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1) - vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) - transitivePeerDependencies: - - '@vue/composition-api' - - magicast - - rollup - - supports-color - - vue - - '@vueuse/nuxt@12.4.0(magicast@0.3.5)(nuxt@3.15.2(@parcel/watcher@2.5.0)(@types/node@22.10.7)(db0@0.2.1)(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1))(rollup@4.29.1)(typescript@5.7.3)': + '@vueuse/nuxt@12.4.0(magicast@0.3.5)(nuxt@3.15.2(@libsql/client@0.14.0)(@parcel/watcher@2.5.0)(@types/node@22.10.7)(better-sqlite3@11.8.1)(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1))(rollup@4.29.1)(typescript@5.7.3)': dependencies: '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) '@vueuse/core': 12.4.0(typescript@5.7.3) '@vueuse/metadata': 12.4.0 local-pkg: 1.0.0 - nuxt: 3.15.2(@parcel/watcher@2.5.0)(@types/node@22.10.7)(db0@0.2.1)(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1) + nuxt: 3.15.2(@libsql/client@0.14.0)(@parcel/watcher@2.5.0)(@types/node@22.10.7)(better-sqlite3@11.8.1)(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1) vue: 3.5.13(typescript@5.7.3) transitivePeerDependencies: - magicast @@ -9866,13 +10140,6 @@ snapshots: transitivePeerDependencies: - typescript - '@vueuse/shared@11.3.0(vue@3.5.13(typescript@5.7.3))': - dependencies: - vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - '@vueuse/shared@12.4.0(typescript@5.7.3)': dependencies: vue: 3.5.13(typescript@5.7.3) @@ -10013,6 +10280,11 @@ snapshots: base64-js@1.5.1: {} + better-sqlite3@11.8.1: + dependencies: + bindings: 1.5.0 + prebuild-install: 7.1.2 + big-integer@1.6.52: {} binary-extensions@2.3.0: {} @@ -10028,6 +10300,12 @@ snapshots: birpc@0.2.19: {} + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + blob-to-buffer@1.2.9: {} bluebird@3.4.7: {} @@ -10066,6 +10344,11 @@ snapshots: buffer-indexof-polyfill@1.0.2: {} + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + buffer@6.0.3: dependencies: base64-js: 1.5.1 @@ -10162,6 +10445,8 @@ snapshots: dependencies: readdirp: 4.0.2 + chownr@1.1.4: {} + chownr@2.0.0: {} chownr@3.0.0: {} @@ -10586,7 +10871,10 @@ snapshots: date-fns@4.1.0: {} - db0@0.2.1: {} + db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1): + optionalDependencies: + '@libsql/client': 0.14.0 + better-sqlite3: 11.8.1 de-indent@1.0.2: {} @@ -10612,10 +10900,16 @@ snapshots: dependencies: character-entities: 2.0.2 + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + dedupe@4.0.3: {} deep-equal@1.0.1: {} + deep-extend@0.6.0: {} + deep-is@0.1.4: {} deep-pick-omit@1.2.1: {} @@ -10657,6 +10951,8 @@ snapshots: detect-libc@1.0.3: {} + detect-libc@2.0.2: {} + detect-libc@2.0.3: {} devalue@5.1.1: {} @@ -10737,6 +11033,10 @@ snapshots: encodeurl@2.0.0: {} + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + engine.io-client@6.6.2: dependencies: '@socket.io/component-emitter': 3.1.2 @@ -10904,7 +11204,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-prettier@5.2.2(eslint-config-prettier@10.0.1(eslint@9.18.0(jiti@2.4.2)))(eslint@9.18.0(jiti@2.4.2))(prettier@3.4.2): + eslint-plugin-prettier@5.2.3(eslint-config-prettier@10.0.1(eslint@9.18.0(jiti@2.4.2)))(eslint@9.18.0(jiti@2.4.2))(prettier@3.4.2): dependencies: eslint: 9.18.0(jiti@2.4.2) prettier: 3.4.2 @@ -11086,6 +11386,8 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + expand-template@2.0.3: {} + extend@3.0.2: {} externality@1.0.2: @@ -11214,6 +11516,8 @@ snapshots: fresh@0.5.2: {} + fs-constants@1.0.0: {} + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -11287,6 +11591,8 @@ snapshots: dependencies: git-up: 8.0.0 + github-from-package@0.0.0: {} + github-slugger@2.0.0: {} gl-matrix@3.4.3: {} @@ -11398,6 +11704,21 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-embedded@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-is-element: 3.0.0 + + hast-util-format@1.1.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-minify-whitespace: 1.0.1 + hast-util-phrasing: 3.0.1 + hast-util-whitespace: 3.0.0 + html-whitespace-sensitive-tag-names: 3.0.1 + unist-util-visit-parents: 6.0.1 + hast-util-from-parse5@8.0.2: dependencies: '@types/hast': 3.0.4 @@ -11409,18 +11730,42 @@ snapshots: vfile-location: 5.0.3 web-namespaces: 2.0.1 + hast-util-has-property@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-heading-rank@3.0.0: dependencies: '@types/hast': 3.0.4 + hast-util-is-body-ok-link@3.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-is-element@3.0.0: dependencies: '@types/hast': 3.0.4 + hast-util-minify-whitespace@1.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-is-element: 3.0.0 + hast-util-whitespace: 3.0.0 + unist-util-is: 6.0.0 + hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 + hast-util-phrasing@3.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-has-property: 3.0.0 + hast-util-is-body-ok-link: 3.0.1 + hast-util-is-element: 3.0.0 + hast-util-raw@9.1.0: dependencies: '@types/hast': 3.0.4 @@ -11451,6 +11796,23 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 + hast-util-to-mdast@10.1.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.1 + hast-util-phrasing: 3.0.1 + hast-util-to-html: 9.0.4 + hast-util-to-text: 4.0.2 + hast-util-whitespace: 3.0.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-hast: 13.2.0 + mdast-util-to-string: 4.0.0 + rehype-minify-whitespace: 6.0.2 + trim-trailing-lines: 2.1.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + hast-util-to-parse5@8.0.0: dependencies: '@types/hast': 3.0.4 @@ -11465,6 +11827,13 @@ snapshots: dependencies: '@types/hast': 3.0.4 + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -11491,6 +11860,8 @@ snapshots: html-void-elements@3.0.0: {} + html-whitespace-sensitive-tag-names@3.0.1: {} + http-assert@1.5.0: dependencies: deep-equal: 1.0.1 @@ -11708,6 +12079,8 @@ snapshots: jiti@2.4.2: {} + js-base64@3.7.7: {} + js-levenshtein@1.1.6: {} js-tokens@4.0.0: {} @@ -11844,6 +12217,19 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + libsql@0.4.7: + dependencies: + '@neon-rs/load': 0.0.4 + detect-libc: 2.0.2 + optionalDependencies: + '@libsql/darwin-arm64': 0.4.7 + '@libsql/darwin-x64': 0.4.7 + '@libsql/linux-arm64-gnu': 0.4.7 + '@libsql/linux-arm64-musl': 0.4.7 + '@libsql/linux-x64-gnu': 0.4.7 + '@libsql/linux-x64-musl': 0.4.7 + '@libsql/win32-x64-msvc': 0.4.7 + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -12352,10 +12738,16 @@ snapshots: mimic-fn@4.0.0: {} + mimic-response@3.1.0: {} + min-indent@1.0.1: {} mini-svg-data-uri@1.4.4: {} + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.0.8: dependencies: brace-expansion: 1.1.11 @@ -12382,8 +12774,6 @@ snapshots: minipass@7.1.2: {} - minisearch@7.1.1: {} - minizlib@2.1.2: dependencies: minipass: 3.3.6 @@ -12396,6 +12786,8 @@ snapshots: mitt@3.0.1: {} + mkdirp-classic@0.5.3: {} + mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -12440,11 +12832,13 @@ snapshots: nanotar@0.1.1: {} + napi-build-utils@1.0.2: {} + natural-compare@1.4.0: {} negotiator@0.6.3: {} - nitropack@2.10.4(typescript@5.7.3): + nitropack@2.10.4(@libsql/client@0.14.0)(better-sqlite3@11.8.1)(typescript@5.7.3): dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@netlify/functions': 2.8.2 @@ -12468,7 +12862,7 @@ snapshots: cookie-es: 1.2.2 croner: 9.0.0 crossws: 0.3.1 - db0: 0.2.1 + db0: 0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1) defu: 6.1.4 destr: 2.0.3 dot-prop: 9.0.0 @@ -12511,7 +12905,7 @@ snapshots: unctx: 2.4.1 unenv: 1.10.0 unimport: 3.14.6(rollup@4.29.1) - unstorage: 1.14.4(db0@0.2.1)(ioredis@5.4.2) + unstorage: 1.14.4(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(ioredis@5.4.2) untyped: 1.5.2 unwasm: 0.3.9 transitivePeerDependencies: @@ -12541,6 +12935,10 @@ snapshots: - typescript - uploadthing + node-abi@3.73.0: + dependencies: + semver: 7.6.3 + node-addon-api@7.1.1: {} node-domexception@1.0.0: {} @@ -12599,11 +12997,25 @@ snapshots: nuxi@3.20.0: {} + nuxt-component-meta@0.10.0(magicast@0.3.5)(rollup@4.29.1): + dependencies: + '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) + citty: 0.1.6 + mlly: 1.7.4 + scule: 1.3.0 + typescript: 5.7.3 + ufo: 1.5.4 + vue-component-meta: 2.2.0(typescript@5.7.3) + transitivePeerDependencies: + - magicast + - rollup + - supports-color + nuxt-site-config-kit@3.0.6(magicast@0.3.5)(rollup@4.29.1)(vue@3.5.13(typescript@5.7.3)): dependencies: '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) - '@nuxt/schema': 3.15.1 - pkg-types: 1.3.0 + '@nuxt/schema': 3.15.2 + pkg-types: 1.3.1 site-config-stack: 3.0.6(vue@3.5.13(typescript@5.7.3)) std-env: 3.8.0 ufo: 1.5.4 @@ -12617,10 +13029,10 @@ snapshots: dependencies: '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(rollup@4.29.1)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1)) '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) - '@nuxt/schema': 3.15.1 + '@nuxt/schema': 3.15.2 nuxt-site-config-kit: 3.0.6(magicast@0.3.5)(rollup@4.29.1)(vue@3.5.13(typescript@5.7.3)) pathe: 1.1.2 - pkg-types: 1.3.0 + pkg-types: 1.3.1 sirv: 3.0.0 site-config-stack: 3.0.6(vue@3.5.13(typescript@5.7.3)) ufo: 1.5.4 @@ -12681,7 +13093,7 @@ snapshots: - supports-color - typescript - nuxt@3.15.2(@parcel/watcher@2.5.0)(@types/node@22.10.7)(db0@0.2.1)(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1): + nuxt@3.15.2(@libsql/client@0.14.0)(@parcel/watcher@2.5.0)(@types/node@22.10.7)(better-sqlite3@11.8.1)(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(eslint@9.18.0(jiti@2.4.2))(ioredis@5.4.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.29.1)(sass@1.83.4)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.3))(yaml@2.6.1): dependencies: '@nuxt/cli': 3.20.0(magicast@0.3.5) '@nuxt/devalue': 2.0.2 @@ -12719,7 +13131,7 @@ snapshots: magic-string: 0.30.17 mlly: 1.7.4 nanotar: 0.1.1 - nitropack: 2.10.4(typescript@5.7.3) + nitropack: 2.10.4(@libsql/client@0.14.0)(better-sqlite3@11.8.1)(typescript@5.7.3) nypm: 0.4.1 ofetch: 1.4.1 ohash: 1.1.4 @@ -12741,7 +13153,7 @@ snapshots: unimport: 3.14.6(rollup@4.29.1) unplugin: 2.1.2 unplugin-vue-router: 0.10.9(rollup@4.29.1)(vue-router@4.5.0(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3)) - unstorage: 1.14.4(db0@0.2.1)(ioredis@5.4.2) + unstorage: 1.14.4(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(ioredis@5.4.2) untyped: 1.5.2 vue: 3.5.13(typescript@5.7.3) vue-bundle-renderer: 2.1.1 @@ -12844,11 +13256,11 @@ snapshots: dependencies: mimic-fn: 4.0.0 - oniguruma-to-es@0.8.1: + oniguruma-to-es@2.2.0: dependencies: emoji-regex-xs: 1.0.0 - regex: 5.0.2 - regex-recursion: 5.0.0 + regex: 5.1.1 + regex-recursion: 5.1.1 only@0.0.2: {} @@ -13012,6 +13424,8 @@ snapshots: pathe@2.0.1: {} + pathe@2.0.2: {} + pbf@3.3.0: dependencies: ieee754: 1.2.1 @@ -13019,6 +13433,41 @@ snapshots: perfect-debounce@1.0.0: {} + pg-cloudflare@1.1.1: + optional: true + + pg-connection-string@2.7.0: {} + + pg-int8@1.0.1: {} + + pg-pool@3.7.0(pg@8.13.1): + dependencies: + pg: 8.13.1 + + pg-protocol@1.7.0: {} + + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + + pg@8.13.1: + dependencies: + pg-connection-string: 2.7.0 + pg-pool: 3.7.0(pg@8.13.1) + pg-protocol: 1.7.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.1.1 + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -13027,21 +13476,21 @@ snapshots: pify@2.3.0: {} - pinia-plugin-persistedstate@4.2.0(@pinia/nuxt@0.9.0(magicast@0.3.5)(pinia@2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1))(magicast@0.3.5)(pinia@2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1): + pinia-plugin-persistedstate@4.2.0(@pinia/nuxt@0.9.0(magicast@0.3.5)(pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1))(magicast@0.3.5)(pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1): dependencies: '@nuxt/kit': 3.15.2(magicast@0.3.5)(rollup@4.29.1) deep-pick-omit: 1.2.1 defu: 6.1.4 destr: 2.0.3 optionalDependencies: - '@pinia/nuxt': 0.9.0(magicast@0.3.5)(pinia@2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1) - pinia: 2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) + '@pinia/nuxt': 0.9.0(magicast@0.3.5)(pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.29.1) + pinia: 2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) transitivePeerDependencies: - magicast - rollup - supports-color - pinia@2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)): + pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)): dependencies: '@vue/devtools-api': 6.6.4 vue: 3.5.13(typescript@5.7.3) @@ -13308,8 +13757,33 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postgres-array@2.0.0: {} + + postgres-bytea@1.0.0: {} + + postgres-date@1.0.7: {} + + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 + potpack@1.0.2: {} + prebuild-install@7.1.2: + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.73.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.2 + tunnel-agent: 0.6.0 + prelude-ls@1.2.1: {} prettier-linter-helpers@1.0.0: @@ -13340,6 +13814,8 @@ snapshots: process@0.11.10: {} + promise-limit@2.7.0: {} + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -13474,6 +13950,11 @@ snapshots: protocols@2.0.1: {} + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + punycode.js@2.3.1: {} punycode@2.3.1: {} @@ -13497,6 +13978,13 @@ snapshots: defu: 6.1.4 destr: 2.0.3 + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + read-cache@1.0.0: dependencies: pify: 2.3.0 @@ -13524,6 +14012,12 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + readable-stream@4.6.0: dependencies: abort-controller: 3.0.0 @@ -13554,13 +14048,14 @@ snapshots: regenerator-runtime@0.14.1: {} - regex-recursion@5.0.0: + regex-recursion@5.1.1: dependencies: + regex: 5.1.1 regex-utilities: 2.3.0 regex-utilities@2.3.0: {} - regex@5.0.2: + regex@5.1.1: dependencies: regex-utilities: 2.3.0 @@ -13584,12 +14079,25 @@ snapshots: space-separated-tokens: 2.0.2 unist-util-visit: 5.0.0 + rehype-minify-whitespace@6.0.2: + dependencies: + '@types/hast': 3.0.4 + hast-util-minify-whitespace: 1.0.1 + rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.1.0 vfile: 6.0.3 + rehype-remark@10.0.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + hast-util-to-mdast: 10.1.1 + unified: 11.0.5 + vfile: 6.0.3 + rehype-slug@6.0.0: dependencies: '@types/hast': 3.0.4 @@ -13628,7 +14136,7 @@ snapshots: transitivePeerDependencies: - supports-color - remark-mdc@3.5.1: + remark-mdc@3.5.2: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 @@ -13850,19 +14358,29 @@ snapshots: shell-quote@1.8.2: {} - shiki@1.24.4: + shiki@1.29.1: dependencies: - '@shikijs/core': 1.24.4 - '@shikijs/engine-javascript': 1.24.4 - '@shikijs/engine-oniguruma': 1.24.4 - '@shikijs/types': 1.24.4 - '@shikijs/vscode-textmate': 9.3.1 + '@shikijs/core': 1.29.1 + '@shikijs/engine-javascript': 1.29.1 + '@shikijs/engine-oniguruma': 1.29.1 + '@shikijs/langs': 1.29.1 + '@shikijs/themes': 1.29.1 + '@shikijs/types': 1.29.1 + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 signal-exit@3.0.7: {} signal-exit@4.1.0: {} + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + simple-git@3.27.0: dependencies: '@kwsites/file-exists': 1.1.1 @@ -13952,6 +14470,8 @@ snapshots: speakingurl@14.0.1: {} + split2@4.2.0: {} + splitpanes@3.1.8(vue@3.5.13(typescript@5.7.3)): dependencies: vue: 3.5.13(typescript@5.7.3) @@ -14013,6 +14533,8 @@ snapshots: dependencies: min-indent: 1.0.1 + strip-json-comments@2.0.1: {} + strip-json-comments@3.1.1: {} strip-literal@2.1.1: @@ -14123,6 +14645,21 @@ snapshots: tapable@2.2.1: {} + tar-fs@2.1.2: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + tar-stream@3.1.7: dependencies: b4a: 1.6.7 @@ -14229,6 +14766,8 @@ snapshots: trim-lines@3.0.1: {} + trim-trailing-lines@2.1.0: {} + trough@2.2.0: {} ts-api-utils@1.4.3(typescript@5.7.3): @@ -14245,6 +14784,10 @@ snapshots: tsscmp@1.0.6: {} + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -14295,13 +14838,6 @@ snapshots: node-fetch-native: 1.6.4 pathe: 1.1.2 - unhead@1.11.14: - dependencies: - '@unhead/dom': 1.11.14 - '@unhead/schema': 1.11.14 - '@unhead/shared': 1.11.14 - hookable: 5.5.3 - unhead@1.11.18: dependencies: '@unhead/dom': 1.11.18 @@ -14380,6 +14916,11 @@ snapshots: dependencies: '@types/unist': 3.0.3 + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 @@ -14452,7 +14993,7 @@ snapshots: acorn: 8.14.0 webpack-virtual-modules: 0.6.2 - unstorage@1.14.1(db0@0.2.1)(ioredis@5.4.2): + unstorage@1.14.1(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(ioredis@5.4.2): dependencies: anymatch: 3.1.3 chokidar: 3.6.0 @@ -14465,10 +15006,10 @@ snapshots: ofetch: 1.4.1 ufo: 1.5.4 optionalDependencies: - db0: 0.2.1 + db0: 0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1) ioredis: 5.4.2 - unstorage@1.14.4(db0@0.2.1)(ioredis@5.4.2): + unstorage@1.14.4(db0@0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1))(ioredis@5.4.2): dependencies: anymatch: 3.1.3 chokidar: 3.6.0 @@ -14479,7 +15020,7 @@ snapshots: ofetch: 1.4.1 ufo: 1.5.4 optionalDependencies: - db0: 0.2.1 + db0: 0.2.1(@libsql/client@0.14.0)(better-sqlite3@11.8.1) ioredis: 5.4.2 untun@0.1.3: @@ -14730,6 +15271,17 @@ snapshots: dependencies: ufo: 1.5.4 + vue-component-meta@2.2.0(typescript@5.7.3): + dependencies: + '@volar/typescript': 2.4.11 + '@vue/language-core': 2.2.0(typescript@5.7.3) + path-browserify: 1.0.1 + vue-component-type-helpers: 2.2.0 + optionalDependencies: + typescript: 5.7.3 + + vue-component-type-helpers@2.2.0: {} + vue-countup-v3@1.4.2(vue@3.5.13(typescript@5.7.3)): dependencies: countup.js: 2.8.0 @@ -14883,6 +15435,8 @@ snapshots: xmlhttprequest-ssl@2.1.2: {} + xtend@4.0.2: {} + xxhashjs@0.2.2: dependencies: cuint: 0.2.2 @@ -14935,6 +15489,15 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.6.0 + zod-to-json-schema@3.24.1(zod@3.24.1): + dependencies: + zod: 3.24.1 + + zod-to-ts@1.2.0(typescript@5.7.3)(zod@3.24.1): + dependencies: + typescript: 5.7.3 + zod: 3.24.1 + zod@3.24.1: {} zwitch@2.0.4: {} diff --git a/proto/resources/sync/data.proto b/proto/resources/sync/data.proto index 9289a3bad..d8a26de9f 100644 --- a/proto/resources/sync/data.proto +++ b/proto/resources/sync/data.proto @@ -43,3 +43,11 @@ message UserLocation { bool hidden = 4; bool remove = 5; } + +message DeleteUsers { + repeated int32 user_ids = 1 [(validate.rules).repeated.max_items = 100]; +} + +message DeleteVehicles { + repeated string plates = 1 [(validate.rules).repeated.max_items = 100]; +} diff --git a/proto/services/sync/sync.proto b/proto/services/sync/sync.proto index 357efd704..4d97bbfd2 100644 --- a/proto/services/sync/sync.proto +++ b/proto/services/sync/sync.proto @@ -89,6 +89,17 @@ message SendDataResponse { int64 affected_rows = 1; } +message DeleteDataRequest { + oneof data { + option (validate.required) = true; + + resources.sync.DeleteUsers users = 1; + resources.sync.DeleteUsers vehicles = 2; + } +} + +message DeleteDataResponse {} + message StreamRequest {} message StreamResponse { @@ -109,6 +120,9 @@ service SyncService { // DBSync's method of sending (mass) data to the FiveNet server for storing. rpc SendData(SendDataRequest) returns (SendDataResponse); + // Way for the gameserver to delete certain data as well + rpc DeleteData(DeleteDataRequest) returns (DeleteDataResponse); + // Used for the server to stream events to the dbsync (e.g., "refresh" of user/char data) rpc Stream(StreamRequest) returns (stream StreamResponse); } diff --git a/services/sync/data.go b/services/sync/data.go index 47db8e8f6..b69be9a41 100644 --- a/services/sync/data.go +++ b/services/sync/data.go @@ -649,3 +649,21 @@ func (s *Server) handleUserLocations(ctx context.Context, data *pbsync.SendDataR return rowsAffected, nil } + +func (s *Server) DeleteData(ctx context.Context, req *pbsync.DeleteDataRequest) (*pbsync.DeleteDataResponse, error) { + if s.esxCompat { + return nil, ErrSendDataDisabled + } + + switch d := req.Data.(type) { + case *pbsync.DeleteDataRequest_Users: + _ = d + // TODO + + case *pbsync.DeleteDataRequest_Vehicles: + _ = d + // TODO + } + + return &pbsync.DeleteDataResponse{}, nil +}