feat: icon/screenshots/docs_url fields on StoreEntry (v0.11.0)

Picks up the three new optional fields on the StoreEntry
proto. No new client method — fields are plumbed through
SearchStore. Studio reads them off the entry directly.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-05-07 21:51:29 +02:00
parent df6ab995d3
commit a893361ff9
3 changed files with 55 additions and 2 deletions

View file

@ -2518,6 +2518,9 @@ class StoreEntry extends $pb.GeneratedMessage {
$core.String? status,
$core.bool? installed,
$core.bool? featured,
$core.String? iconUrl,
$core.Iterable<$core.String>? screenshotUrls,
$core.String? docsUrl,
}) {
final $result = create();
if (name != null) {
@ -2565,6 +2568,15 @@ class StoreEntry extends $pb.GeneratedMessage {
if (featured != null) {
$result.featured = featured;
}
if (iconUrl != null) {
$result.iconUrl = iconUrl;
}
if (screenshotUrls != null) {
$result.screenshotUrls.addAll(screenshotUrls);
}
if (docsUrl != null) {
$result.docsUrl = docsUrl;
}
return $result;
}
StoreEntry._() : super();
@ -2587,6 +2599,9 @@ class StoreEntry extends $pb.GeneratedMessage {
..aOS(13, _omitFieldNames ? '' : 'status')
..aOB(14, _omitFieldNames ? '' : 'installed')
..aOB(15, _omitFieldNames ? '' : 'featured')
..aOS(16, _omitFieldNames ? '' : 'iconUrl')
..pPS(17, _omitFieldNames ? '' : 'screenshotUrls')
..aOS(18, _omitFieldNames ? '' : 'docsUrl')
..hasRequiredFields = false
;
@ -2727,6 +2742,39 @@ class StoreEntry extends $pb.GeneratedMessage {
$core.bool hasFeatured() => $_has(14);
@$pb.TagNumber(15)
void clearFeatured() => $_clearField(15);
/// Optional URL of a square icon (PNG / SVG, 256px+).
/// Studio loads and renders this in the detail sheet's hero
/// header in place of the category-derived fallback. Empty
/// fall back to the category icon.
@$pb.TagNumber(16)
$core.String get iconUrl => $_getSZ(15);
@$pb.TagNumber(16)
set iconUrl($core.String v) { $_setString(15, v); }
@$pb.TagNumber(16)
$core.bool hasIconUrl() => $_has(15);
@$pb.TagNumber(16)
void clearIconUrl() => $_clearField(16);
/// Optional screenshot URLs in display order. Studio renders
/// them as a horizontally-scrollable strip in the detail
/// sheet so operators can see what the module *does* before
/// installing.
@$pb.TagNumber(17)
$pb.PbList<$core.String> get screenshotUrls => $_getList(16);
/// Explicit docs URL override. Empty hub falls back to the
/// well-known raw-README paths against `repository`.
/// Use this when the README lives at a non-default branch /
/// path or when the docs are a separate Markdown file.
@$pb.TagNumber(18)
$core.String get docsUrl => $_getSZ(17);
@$pb.TagNumber(18)
set docsUrl($core.String v) { $_setString(17, v); }
@$pb.TagNumber(18)
$core.bool hasDocsUrl() => $_has(17);
@$pb.TagNumber(18)
void clearDocsUrl() => $_clearField(18);
}
class ChannelStatusResponse extends $pb.GeneratedMessage {

View file

@ -652,6 +652,9 @@ const StoreEntry$json = {
{'1': 'status', '3': 13, '4': 1, '5': 9, '10': 'status'},
{'1': 'installed', '3': 14, '4': 1, '5': 8, '10': 'installed'},
{'1': 'featured', '3': 15, '4': 1, '5': 8, '10': 'featured'},
{'1': 'icon_url', '3': 16, '4': 1, '5': 9, '10': 'iconUrl'},
{'1': 'screenshot_urls', '3': 17, '4': 3, '5': 9, '10': 'screenshotUrls'},
{'1': 'docs_url', '3': 18, '4': 1, '5': 9, '10': 'docsUrl'},
],
};
@ -665,7 +668,9 @@ final $typed_data.Uint8List storeEntryDescriptor = $convert.base64Decode(
'JlcXVpcmVzX3NlcnZpY2VzGAkgAygJUhByZXF1aXJlc1NlcnZpY2VzEhgKB2xpY2Vuc2UYCiAB'
'KAlSB2xpY2Vuc2USHgoKcmVwb3NpdG9yeRgLIAEoCVIKcmVwb3NpdG9yeRIhCgxiZXN0X3Zlcn'
'Npb24YDCABKAlSC2Jlc3RWZXJzaW9uEhYKBnN0YXR1cxgNIAEoCVIGc3RhdHVzEhwKCWluc3Rh'
'bGxlZBgOIAEoCFIJaW5zdGFsbGVkEhoKCGZlYXR1cmVkGA8gASgIUghmZWF0dXJlZA==');
'bGxlZBgOIAEoCFIJaW5zdGFsbGVkEhoKCGZlYXR1cmVkGA8gASgIUghmZWF0dXJlZBIZCghpY2'
'9uX3VybBgQIAEoCVIHaWNvblVybBInCg9zY3JlZW5zaG90X3VybHMYESADKAlSDnNjcmVlbnNo'
'b3RVcmxzEhkKCGRvY3NfdXJsGBIgASgJUgdkb2NzVXJs');
@$core.Deprecated('Use channelStatusResponseDescriptor instead')
const ChannelStatusResponse$json = {

View file

@ -1,6 +1,6 @@
name: fai_dart_sdk
description: gRPC client SDK for the F∆I Platform hub. Used by F∆I Studio and Tier-3 domain apps.
version: 0.10.1
version: 0.11.0
publish_to: 'none'
repository: https://git.flemming.ws/fai/dart-sdk