@lvce-editor/extension-search-view 7.20.0 → 7.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1799,6 +1799,7 @@ const RecentlyPublished$1 = 'Recently Published';
1799
1799
  const Recommended$1 = 'Recommended';
1800
1800
  const Updates = 'Updates';
1801
1801
  const BuiltIn = 'Built-in';
1802
+ const Linked$1 = 'Linked';
1802
1803
  const Enabled$2 = 'Enabled';
1803
1804
  const WorkspaceUnsupported$1 = 'Workspace Unsupported';
1804
1805
  const Deprecated$1 = 'Deprecated';
@@ -1912,6 +1913,9 @@ const updates = () => {
1912
1913
  const builtIn = () => {
1913
1914
  return i18nString(BuiltIn);
1914
1915
  };
1916
+ const linked = () => {
1917
+ return i18nString(Linked$1);
1918
+ };
1915
1919
  const enabled = () => {
1916
1920
  return i18nString(Enabled$2);
1917
1921
  };
@@ -2014,6 +2018,7 @@ const Installed = '@installed';
2014
2018
  const Enabled$1 = '@enabled';
2015
2019
  const Disabled$2 = '@disabled';
2016
2020
  const Builtin = '@builtin';
2021
+ const Linked = '@linked';
2017
2022
  const Sort = '@sort';
2018
2023
  const Id = '@id';
2019
2024
  const Category = '@category';
@@ -2047,6 +2052,7 @@ const parseValue = value => {
2047
2052
  let enabled = false;
2048
2053
  let disabled = false;
2049
2054
  let builtin = false;
2055
+ let linked = false;
2050
2056
  let sort = '';
2051
2057
  let id = '';
2052
2058
  let outdated = false;
@@ -2065,6 +2071,9 @@ const parseValue = value => {
2065
2071
  if (match.startsWith(Builtin)) {
2066
2072
  builtin = true;
2067
2073
  }
2074
+ if (match.startsWith(Linked)) {
2075
+ linked = true;
2076
+ }
2068
2077
  if (match.startsWith(Sort)) {
2069
2078
  // Parse sort value after @sort:
2070
2079
  const sortValue = match.slice(Sort.length);
@@ -2091,7 +2100,7 @@ const parseValue = value => {
2091
2100
  }
2092
2101
  return '';
2093
2102
  });
2094
- const isLocal = enabled || builtin || disabled || outdated || installed;
2103
+ const isLocal = enabled || builtin || disabled || outdated || installed || linked;
2095
2104
  return {
2096
2105
  builtin,
2097
2106
  category,
@@ -2100,6 +2109,7 @@ const parseValue = value => {
2100
2109
  id,
2101
2110
  installed,
2102
2111
  isLocal,
2112
+ linked,
2103
2113
  outdated,
2104
2114
  query: replaced,
2105
2115
  sort
@@ -2138,6 +2148,9 @@ const matchesParsedValue = (extension, parsedValue) => {
2138
2148
  if (parsedValue.disabled && !extensionIsDisabled || parsedValue.enabled && extensionIsDisabled) {
2139
2149
  return false;
2140
2150
  }
2151
+ if (parsedValue.linked && extension.linked !== true) {
2152
+ return false;
2153
+ }
2141
2154
  if (parsedValue.id && extension.id) {
2142
2155
  return parsedValue.id === extension.id;
2143
2156
  }
@@ -2657,7 +2670,7 @@ const getFuzzyHighlights = (label, query) => {
2657
2670
  return highlights;
2658
2671
  };
2659
2672
 
2660
- const Suggestions = ['@builtin', '@category:', '@disabled', '@enabled', '@featured', '@id:', '@installed', '@mcpservers', '@most-popular', '@outdated', '@recentlypublished', '@recommended', '@sort:installs', '@workspaceunsupported'];
2673
+ const Suggestions = ['@builtin', '@category:', '@disabled', '@enabled', '@featured', '@id:', '@installed', '@linked', '@mcpservers', '@most-popular', '@outdated', '@recentlypublished', '@recommended', '@sort:installs', '@workspaceunsupported'];
2661
2674
 
2662
2675
  const getCompletionItems = (value, cursorOffset) => {
2663
2676
  const range = getCompletionRange(value, cursorOffset);
@@ -3090,6 +3103,11 @@ const getMenuEntriesFilter = () => {
3090
3103
  flags: None$1,
3091
3104
  id: 'filterByBuiltin',
3092
3105
  label: builtIn()
3106
+ }, {
3107
+ command: 'Extensions.filterByLinked',
3108
+ flags: None$1,
3109
+ id: 'filterByLinked',
3110
+ label: linked()
3093
3111
  }, {
3094
3112
  command: 'Extensions.filterByEnabled',
3095
3113
  flags: None$1,
@@ -3583,7 +3601,15 @@ const getAllExtensions = (assetDir, platform) => {
3583
3601
  };
3584
3602
 
3585
3603
  const getBuiltin = extension => {
3586
- return extension !== null && typeof extension === 'object' && 'builtin' in extension && extension.builtin === true;
3604
+ if (extension === null || typeof extension !== 'object') {
3605
+ return false;
3606
+ }
3607
+ const {
3608
+ builtin,
3609
+ id,
3610
+ isBuiltin
3611
+ } = extension;
3612
+ return isBuiltin === true || builtin === true || typeof id === 'string' && id.startsWith('builtin.');
3587
3613
  };
3588
3614
 
3589
3615
  const isString = item => {
@@ -3689,6 +3715,16 @@ const getId = extension => {
3689
3715
  return extension.id;
3690
3716
  };
3691
3717
 
3718
+ const getLinked = extension => {
3719
+ if (extension === null || typeof extension !== 'object') {
3720
+ return false;
3721
+ }
3722
+ if ('linked' in extension && extension.linked === true) {
3723
+ return true;
3724
+ }
3725
+ return 'symlink' in extension && typeof extension.symlink === 'string' && extension.symlink.length > 0;
3726
+ };
3727
+
3692
3728
  const getName = extension => {
3693
3729
  if (extension === null || typeof extension !== 'object') {
3694
3730
  return 'n/a';
@@ -3760,6 +3796,7 @@ const normalizeExtension = (extension, platform, assetDir) => {
3760
3796
  downloadCount: getDownloadCount(extension),
3761
3797
  icon: getIcon(extension, platform, assetDir),
3762
3798
  id: getId(extension),
3799
+ linked: getLinked(extension),
3763
3800
  name: getName(extension),
3764
3801
  publisher: getPublisher(extension),
3765
3802
  rating: getRating(extension),
@@ -4184,6 +4221,16 @@ const getCss = state => {
4184
4221
  flex-shrink: 0;
4185
4222
  }
4186
4223
 
4224
+ .ExtensionListItemLinkedIcon {
4225
+ position: absolute;
4226
+ top: 6px;
4227
+ right: 6px;
4228
+ width: 14px;
4229
+ height: 14px;
4230
+ color: var(--WorkbenchForeground, rgb(188, 190, 190));
4231
+ opacity: 0.8;
4232
+ }
4233
+
4187
4234
  .ExtensionListItemDisabled:not(.ExtensionActive) {
4188
4235
  background: color-mix(in srgb, var(--SideBarBackground, rgb(30, 35, 36)) 95%, black);
4189
4236
  color: var(--DisabledForeground, color-mix(in srgb, var(--WorkbenchForeground) 48%, transparent));
@@ -4317,6 +4364,7 @@ const renderFocusContext = newState => {
4317
4364
  };
4318
4365
 
4319
4366
  const ComboBox = 'combobox';
4367
+ const Image = 'img';
4320
4368
  const List$1 = 'list';
4321
4369
  const ListBox = 'listbox';
4322
4370
  const ListItem = 'listitem';
@@ -4338,6 +4386,7 @@ const ExtensionListItemDisabled = 'ExtensionListItemDisabled';
4338
4386
  const ExtensionListItemDownloadCount = 'ExtensionListItemDownloadCount';
4339
4387
  const ExtensionListItemFooter = 'ExtensionListItemFooter';
4340
4388
  const ExtensionListItemIcon = 'ExtensionListItemIcon';
4389
+ const ExtensionListItemLinkedIcon = 'ExtensionListItemLinkedIcon';
4341
4390
  const ExtensionListItemMetadata = 'ExtensionListItemMetadata';
4342
4391
  const ExtensionListItemName = 'ExtensionListItemName';
4343
4392
  const ExtensionListItemRating = 'ExtensionListItemRating';
@@ -4648,10 +4697,12 @@ const getExtensionListItemStatisticsVirtualDom = (hasStatistics, downloadCount,
4648
4697
  return getExtensionStatisticsVirtualDom(downloadCount, rating);
4649
4698
  };
4650
4699
 
4651
- const listItemDetail = {
4652
- childCount: 3,
4653
- className: ExtensionListItemDetail,
4654
- type: Div
4700
+ const getListItemDetail = linked => {
4701
+ return {
4702
+ childCount: linked ? 4 : 3,
4703
+ className: ExtensionListItemDetail,
4704
+ type: Div
4705
+ };
4655
4706
  };
4656
4707
  const listItemName = {
4657
4708
  childCount: 1,
@@ -4668,6 +4719,20 @@ const listItemAuthorName = {
4668
4719
  className: ExtensionListItemAuthorName,
4669
4720
  type: Div
4670
4721
  };
4722
+ const getLinkedIconVirtualDom = linked$1 => {
4723
+ if (!linked$1) {
4724
+ return [];
4725
+ }
4726
+ const label = linked();
4727
+ return [{
4728
+ ariaLabel: label,
4729
+ childCount: 0,
4730
+ className: mergeClassNames(MaskIcon, 'MaskIconLinkExternal', ExtensionListItemLinkedIcon),
4731
+ role: Image,
4732
+ title: 'Extension is linked',
4733
+ type: Div
4734
+ }];
4735
+ };
4671
4736
  const getExtensionListItemVirtualDom = extension => {
4672
4737
  const {
4673
4738
  builtin = false,
@@ -4677,6 +4742,7 @@ const getExtensionListItemVirtualDom = extension => {
4677
4742
  focused,
4678
4743
  icon,
4679
4744
  id,
4745
+ linked = false,
4680
4746
  name,
4681
4747
  posInSet,
4682
4748
  publisher,
@@ -4701,7 +4767,7 @@ const getExtensionListItemVirtualDom = extension => {
4701
4767
  role: None,
4702
4768
  src: icon,
4703
4769
  type: Img
4704
- }, listItemDetail, listItemName, text(name), listItemDescription, text(description), getExtensionListItemFooter(hasStatistics), listItemAuthorName, text(publisher), ...getExtensionListItemStatisticsVirtualDom(hasStatistics, downloadCount, rating), ...actionsDom];
4770
+ }, getListItemDetail(linked), listItemName, text(name), listItemDescription, text(description), getExtensionListItemFooter(hasStatistics), listItemAuthorName, text(publisher), ...getExtensionListItemStatisticsVirtualDom(hasStatistics, downloadCount, rating), ...actionsDom, ...getLinkedIconVirtualDom(linked)];
4705
4771
  return dom;
4706
4772
  };
4707
4773
 
@@ -4774,6 +4840,7 @@ const getVisibleItem = (item, setSize, itemHeight, minLineY, relative, i, focuse
4774
4840
  downloadCount,
4775
4841
  icon,
4776
4842
  id,
4843
+ linked,
4777
4844
  name,
4778
4845
  publisher,
4779
4846
  rating,
@@ -4788,6 +4855,7 @@ const getVisibleItem = (item, setSize, itemHeight, minLineY, relative, i, focuse
4788
4855
  icon,
4789
4856
  id,
4790
4857
  index: i,
4858
+ linked,
4791
4859
  name,
4792
4860
  posInSet: i + 1,
4793
4861
  publisher,
@@ -4921,6 +4989,9 @@ const titleFilters = [{
4921
4989
  }, {
4922
4990
  label: builtIn,
4923
4991
  value: Builtin
4992
+ }, {
4993
+ label: linked,
4994
+ value: Linked
4924
4995
  }, {
4925
4996
  label: updates,
4926
4997
  value: Outdated
@@ -5240,6 +5311,7 @@ const commandMap = {
5240
5311
  'SearchExtensions.filterByEnabled': wrapAsyncCommand(createFilterCommand(Enabled$1)),
5241
5312
  'SearchExtensions.filterByFeatured': wrapAsyncCommand(createFilterCommand(Featured)),
5242
5313
  'SearchExtensions.filterByInstalled': wrapAsyncCommand(createFilterCommand(Installed)),
5314
+ 'SearchExtensions.filterByLinked': wrapAsyncCommand(createFilterCommand(Linked)),
5243
5315
  'SearchExtensions.filterByMcpServers': wrapAsyncCommand(createFilterCommand(McpServers)),
5244
5316
  'SearchExtensions.filterByMostPopular': wrapAsyncCommand(filterByMostPopularWithContext),
5245
5317
  'SearchExtensions.filterByRecentlyPublished': wrapAsyncCommand(createFilterCommand(RecentlyPublished)),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/extension-search-view",
3
- "version": "7.20.0",
3
+ "version": "7.20.2",
4
4
  "description": "Extension Search View Worker",
5
5
  "repository": {
6
6
  "type": "git",