diff --git a/lib/src/generated/chain/v1/hub.pb.dart b/lib/src/generated/chain/v1/hub.pb.dart index a5767df..6c94d89 100644 --- a/lib/src/generated/chain/v1/hub.pb.dart +++ b/lib/src/generated/chain/v1/hub.pb.dart @@ -4608,6 +4608,8 @@ class StoreEntry extends $pb.GeneratedMessage { $core.String? provider, $core.String? sourceKind, $core.String? source, + $core.String? canonicalCategory, + $core.String? canonicalCategoryLabel, }) { final result = create(); if (name != null) result.name = name; @@ -4634,6 +4636,9 @@ class StoreEntry extends $pb.GeneratedMessage { if (provider != null) result.provider = provider; if (sourceKind != null) result.sourceKind = sourceKind; if (source != null) result.source = source; + if (canonicalCategory != null) result.canonicalCategory = canonicalCategory; + if (canonicalCategoryLabel != null) + result.canonicalCategoryLabel = canonicalCategoryLabel; return result; } @@ -4672,6 +4677,8 @@ class StoreEntry extends $pb.GeneratedMessage { ..aOS(20, _omitFieldNames ? '' : 'provider') ..aOS(21, _omitFieldNames ? '' : 'sourceKind') ..aOS(22, _omitFieldNames ? '' : 'source') + ..aOS(23, _omitFieldNames ? '' : 'canonicalCategory') + ..aOS(24, _omitFieldNames ? '' : 'canonicalCategoryLabel') ..hasRequiredFields = false; @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.') @@ -4906,6 +4913,32 @@ class StoreEntry extends $pb.GeneratedMessage { $core.bool hasSource() => $_has(21); @$pb.TagNumber(22) void clearSource() => $_clearField(22); + + /// Canonical, normalized category slug (e.g. "data", "text-language", + /// "studio-themes"). The hub maps the free-form `category` onto a + /// fixed taxonomy by capability namespace, so different stores using + /// different labels ("data" vs "data-processing") land in ONE bucket. + /// Studio groups + filters by this, not the raw `category`. Empty + /// from pre-0.21 hubs → Studio falls back to `category`. + @$pb.TagNumber(23) + $core.String get canonicalCategory => $_getSZ(22); + @$pb.TagNumber(23) + set canonicalCategory($core.String value) => $_setString(22, value); + @$pb.TagNumber(23) + $core.bool hasCanonicalCategory() => $_has(22); + @$pb.TagNumber(23) + void clearCanonicalCategory() => $_clearField(23); + + /// Human-readable label for `canonical_category` (e.g. "Data & + /// Formats"). English; Studio may localize via the slug. + @$pb.TagNumber(24) + $core.String get canonicalCategoryLabel => $_getSZ(23); + @$pb.TagNumber(24) + set canonicalCategoryLabel($core.String value) => $_setString(23, value); + @$pb.TagNumber(24) + $core.bool hasCanonicalCategoryLabel() => $_has(23); + @$pb.TagNumber(24) + void clearCanonicalCategoryLabel() => $_clearField(24); } class ChannelStatusResponse extends $pb.GeneratedMessage { diff --git a/lib/src/generated/chain/v1/hub.pbjson.dart b/lib/src/generated/chain/v1/hub.pbjson.dart index f786685..bec39a5 100644 --- a/lib/src/generated/chain/v1/hub.pbjson.dart +++ b/lib/src/generated/chain/v1/hub.pbjson.dart @@ -1262,6 +1262,20 @@ const StoreEntry$json = { {'1': 'provider', '3': 20, '4': 1, '5': 9, '10': 'provider'}, {'1': 'source_kind', '3': 21, '4': 1, '5': 9, '10': 'sourceKind'}, {'1': 'source', '3': 22, '4': 1, '5': 9, '10': 'source'}, + { + '1': 'canonical_category', + '3': 23, + '4': 1, + '5': 9, + '10': 'canonicalCategory' + }, + { + '1': 'canonical_category_label', + '3': 24, + '4': 1, + '5': 9, + '10': 'canonicalCategoryLabel' + }, ], }; @@ -1279,7 +1293,9 @@ final $typed_data.Uint8List storeEntryDescriptor = $convert.base64Decode( '9uX3VybBgQIAEoCVIHaWNvblVybBInCg9zY3JlZW5zaG90X3VybHMYESADKAlSDnNjcmVlbnNo' 'b3RVcmxzEhkKCGRvY3NfdXJsGBIgASgJUgdkb2NzVXJsEhIKBGtpbmQYEyABKAlSBGtpbmQSGg' 'oIcHJvdmlkZXIYFCABKAlSCHByb3ZpZGVyEh8KC3NvdXJjZV9raW5kGBUgASgJUgpzb3VyY2VL' - 'aW5kEhYKBnNvdXJjZRgWIAEoCVIGc291cmNl'); + 'aW5kEhYKBnNvdXJjZRgWIAEoCVIGc291cmNlEi0KEmNhbm9uaWNhbF9jYXRlZ29yeRgXIAEoCV' + 'IRY2Fub25pY2FsQ2F0ZWdvcnkSOAoYY2Fub25pY2FsX2NhdGVnb3J5X2xhYmVsGBggASgJUhZj' + 'YW5vbmljYWxDYXRlZ29yeUxhYmVs'); @$core.Deprecated('Use channelStatusResponseDescriptor instead') const ChannelStatusResponse$json = {