@lvce-editor/extension-detail-view 3.41.0 → 3.43.0

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.
@@ -729,7 +729,19 @@ const create$7 = rpcId => {
729
729
  };
730
730
  };
731
731
  const RendererWorker$1 = 1;
732
+ const FileSystemWorker$1 = 209;
732
733
  const MarkdownWorker$1 = 300;
734
+ const {
735
+ invoke: invoke$7,
736
+ set: set$7} = create$7(FileSystemWorker$1);
737
+ const readFile$1$1 = async uri => {
738
+ return invoke$7('FileSystem.readFile', uri);
739
+ };
740
+ const FileSystemWorker = {
741
+ __proto__: null,
742
+ invoke: invoke$7,
743
+ readFile: readFile$1$1,
744
+ set: set$7};
733
745
  const {
734
746
  invoke: invoke$5,
735
747
  set: set$5} = create$7(MarkdownWorker$1);
@@ -760,16 +772,14 @@ const sendMessagePortToMarkdownWorker$2 = async (port, rpcId) => {
760
772
  // @ts-ignore
761
773
  await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToMarkdownWorker', port, command, rpcId);
762
774
  };
763
- const readFile$2 = async uri => {
764
- return invoke$3('FileSystem.readFile', uri);
775
+ const sendMessagePortToFileSystemWorker$2 = async (port, rpcId) => {
776
+ const command = 'FileSystem.handleMessagePort';
777
+ // @ts-ignore
778
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToFileSystemWorker', port, command, rpcId);
765
779
  };
766
780
  const getAllExtensions$2 = async () => {
767
781
  return invoke$3('ExtensionManagement.getAllExtensions');
768
782
  };
769
- const getFolderSize$2 = async uri => {
770
- // @ts-ignore
771
- return await invoke$3('FileSystem.getFolderSize', uri);
772
- };
773
783
  const getExtension$3 = async id => {
774
784
  // @ts-ignore
775
785
  return invoke$3('ExtensionManagement.getExtension', id);
@@ -785,16 +795,15 @@ const RendererWorker = {
785
795
  __proto__: null,
786
796
  getAllExtensions: getAllExtensions$2,
787
797
  getExtension: getExtension$3,
788
- getFolderSize: getFolderSize$2,
789
798
  openNativeFolder: openNativeFolder$1,
790
- readFile: readFile$2,
799
+ sendMessagePortToFileSystemWorker: sendMessagePortToFileSystemWorker$2,
791
800
  sendMessagePortToMarkdownWorker: sendMessagePortToMarkdownWorker$2,
792
801
  set: set$3$1,
793
802
  setColorTheme: setColorTheme$2,
794
803
  uninstallExtension: uninstallExtension$1};
795
804
 
796
805
  const {
797
- set: set$3,
806
+ set: set$4,
798
807
  getVirtualDom,
799
808
  render
800
809
  } = MarkdownWorker;
@@ -1531,7 +1540,7 @@ const create$4 = (method, params) => {
1531
1540
  };
1532
1541
  };
1533
1542
  const callbacks = Object.create(null);
1534
- const set$2 = (id, fn) => {
1543
+ const set$3 = (id, fn) => {
1535
1544
  callbacks[id] = fn;
1536
1545
  };
1537
1546
  const get$1 = id => {
@@ -1550,7 +1559,7 @@ const registerPromise = () => {
1550
1559
  resolve,
1551
1560
  promise
1552
1561
  } = Promise.withResolvers();
1553
- set$2(id, resolve);
1562
+ set$3(id, resolve);
1554
1563
  return {
1555
1564
  id,
1556
1565
  promise
@@ -1894,7 +1903,7 @@ const send = (transport, method, ...params) => {
1894
1903
  const message = create$4(method, params);
1895
1904
  transport.send(message);
1896
1905
  };
1897
- const invoke = (ipc, method, ...params) => {
1906
+ const invoke$1 = (ipc, method, ...params) => {
1898
1907
  return invokeHelper(ipc, method, params, false);
1899
1908
  };
1900
1909
  const invokeAndTransfer = (ipc, method, ...params) => {
@@ -1927,7 +1936,7 @@ const createRpc = ipc => {
1927
1936
  send(ipc, method, ...params);
1928
1937
  },
1929
1938
  invoke(method, ...params) {
1930
- return invoke(ipc, method, ...params);
1939
+ return invoke$1(ipc, method, ...params);
1931
1940
  },
1932
1941
  invokeAndTransfer(method, ...params) {
1933
1942
  return invokeAndTransfer(ipc, method, ...params);
@@ -2085,7 +2094,7 @@ const copyImage = state => {
2085
2094
 
2086
2095
  const {
2087
2096
  get,
2088
- set: set$1,
2097
+ set: set$2,
2089
2098
  dispose: dispose$1,
2090
2099
  wrapCommand
2091
2100
  } = create$1();
@@ -2106,7 +2115,7 @@ const create = (uid, uri, x, y, width, height, platform, assetDir) => {
2106
2115
  description: '',
2107
2116
  detailsVirtualDom: [],
2108
2117
  displaySize: '',
2109
- entries: [],
2118
+ installationEntries: [],
2110
2119
  extension: {},
2111
2120
  extensionId: '',
2112
2121
  extensionVersion: '',
@@ -2124,7 +2133,7 @@ const create = (uid, uri, x, y, width, height, platform, assetDir) => {
2124
2133
  resources: [],
2125
2134
  scrollSource: 0,
2126
2135
  scrollToTopButtonEnabled: false,
2127
- secondEntries: [],
2136
+ marketplaceEntries: [],
2128
2137
  selectedFeature: '',
2129
2138
  selectedTab: '',
2130
2139
  settings: [],
@@ -2139,7 +2148,7 @@ const create = (uid, uri, x, y, width, height, platform, assetDir) => {
2139
2148
  width,
2140
2149
  readmeUrl: ''
2141
2150
  };
2142
- set$1(uid, state, state);
2151
+ set$2(uid, state, state);
2143
2152
  };
2144
2153
 
2145
2154
  const isEqual$2 = (oldState, newState) => {
@@ -2154,7 +2163,7 @@ const User = 1;
2154
2163
  const Script = 2;
2155
2164
 
2156
2165
  const isEqual = (oldState, newState) => {
2157
- return newState.scrollSource === Script || oldState.readmeScrollTop === newState.readmeScrollTop;
2166
+ return newState.scrollSource === User || oldState.readmeScrollTop === newState.readmeScrollTop;
2158
2167
  };
2159
2168
 
2160
2169
  const RenderFocus = 2;
@@ -2183,7 +2192,7 @@ const dispose = uid => {
2183
2192
  dispose$1(uid);
2184
2193
  };
2185
2194
 
2186
- const commandIds = ['copyImage', 'getMenuEntries', 'handleClickCategory', 'handleClickDisable', 'handleClickScrollToTop', 'handleClickSettings', 'handleClickSetColorTheme', 'handleClickSize', 'handleClickUninstall', 'handleFeaturesClick', 'handleIconError', 'handleTabsClick', 'handleWheel', 'renderEventListeners', 'resize', 'saveState', 'selectTab', 'terminate'];
2195
+ const commandIds = ['copyImage', 'getMenuEntries', 'handleClickCategory', 'handleClickDisable', 'handleClickScrollToTop', 'handleClickSetColorTheme', 'handleClickSettings', 'handleClickSize', 'handleClickUninstall', 'handleFeaturesClick', 'handleIconError', 'handleScroll', 'handleTabsClick', 'handleWheel', 'renderEventListeners', 'resize', 'saveState', 'selectTab', 'terminate'];
2187
2196
 
2188
2197
  const getCommandIds = () => {
2189
2198
  return commandIds;
@@ -2292,13 +2301,13 @@ const handleClickScrollToTop = state => {
2292
2301
  const {
2293
2302
  getAllExtensions: getAllExtensions$1,
2294
2303
  getExtension: getExtension$2,
2295
- getFolderSize: getFolderSize$1,
2296
2304
  openNativeFolder,
2297
- readFile: readFile$1,
2298
- set,
2305
+ set: set$1,
2299
2306
  setColorTheme: setColorTheme$1,
2300
2307
  uninstallExtension,
2301
- sendMessagePortToMarkdownWorker: sendMessagePortToMarkdownWorker$1} = RendererWorker;
2308
+ sendMessagePortToMarkdownWorker: sendMessagePortToMarkdownWorker$1,
2309
+ sendMessagePortToFileSystemWorker: sendMessagePortToFileSystemWorker$1
2310
+ } = RendererWorker;
2302
2311
 
2303
2312
  const setColorTheme = id => {
2304
2313
  return setColorTheme$1(id);
@@ -2367,15 +2376,21 @@ const handleIconError = state => {
2367
2376
  };
2368
2377
  };
2369
2378
 
2370
- const handleScroll = (state, scrollTop) => {
2379
+ const handleScroll = (state, scrollTop, scrollSource = Script) => {
2371
2380
  const newScrollTop = Math.max(0, scrollTop);
2372
2381
  return {
2373
2382
  ...state,
2374
2383
  readmeScrollTop: newScrollTop,
2375
- scrollSource: User
2384
+ scrollSource
2376
2385
  };
2377
2386
  };
2378
2387
 
2388
+ const {
2389
+ set,
2390
+ readFile: readFile$1,
2391
+ invoke
2392
+ } = FileSystemWorker;
2393
+
2379
2394
  const readFile = async uri => {
2380
2395
  return readFile$1(uri);
2381
2396
  };
@@ -2526,6 +2541,27 @@ const handleTabsClick = (state, name) => {
2526
2541
  return selectTab(state, name);
2527
2542
  };
2528
2543
 
2544
+ const sendMessagePortToFileSystemWorker = async port => {
2545
+ await sendMessagePortToFileSystemWorker$1(port, 0);
2546
+ };
2547
+
2548
+ const createFileSystemWorkerRpc = async () => {
2549
+ try {
2550
+ const rpc = await TransferMessagePortRpcParent.create({
2551
+ commandMap: {},
2552
+ send: sendMessagePortToFileSystemWorker
2553
+ });
2554
+ return rpc;
2555
+ } catch (error) {
2556
+ throw new VError(error, `Failed to create file system worker rpc`);
2557
+ }
2558
+ };
2559
+
2560
+ const initializeFileSystemWorker = async () => {
2561
+ const rpc = await createFileSystemWorkerRpc();
2562
+ set(rpc);
2563
+ };
2564
+
2529
2565
  const sendMessagePortToMarkdownWorker = async port => {
2530
2566
  await sendMessagePortToMarkdownWorker$1(port, 0);
2531
2567
  };
@@ -2544,12 +2580,11 @@ const createMarkdownWorkerRpc = async () => {
2544
2580
 
2545
2581
  const initializeMarkdownWorker = async () => {
2546
2582
  const rpc = await createMarkdownWorkerRpc();
2547
- set$3(rpc);
2583
+ set$4(rpc);
2548
2584
  };
2549
2585
 
2550
2586
  const initialize = async () => {
2551
- await initializeMarkdownWorker();
2552
- // TODO create connection to file system worker
2587
+ await Promise.all([initializeMarkdownWorker(), initializeFileSystemWorker()]);
2553
2588
  };
2554
2589
 
2555
2590
  const existsFile = async uri => {
@@ -2857,12 +2892,22 @@ const getDisplaySize = size => {
2857
2892
  });
2858
2893
  };
2859
2894
 
2895
+ const supportsFileSize = uri => {
2896
+ if (uri.startsWith('http:') || uri.startsWith('https://')) {
2897
+ return false;
2898
+ }
2899
+ return true;
2900
+ };
2860
2901
  const getFolderSize = async uri => {
2861
2902
  if (!uri) {
2862
2903
  throw new VError(`uri is required`);
2863
2904
  }
2905
+ if (!supportsFileSize(uri)) {
2906
+ return 0;
2907
+ }
2864
2908
  try {
2865
- return await getFolderSize$1(uri);
2909
+ // @ts-ignore
2910
+ return await invoke('FileSystem.getFolderSize', uri);
2866
2911
  } catch {
2867
2912
  return 0;
2868
2913
  }
@@ -3004,10 +3049,9 @@ const loadContent = async (state, platform, savedState) => {
3004
3049
  iconSrc,
3005
3050
  name
3006
3051
  } = headerData;
3007
- const readmeUrl = join(extension.path, 'README.md');
3008
- join(extension.path, 'CHANGELOG.md');
3009
- const hasReadme = await existsFile();
3010
- const hasChangelog = await existsFile();
3052
+ const readmeUrl = join(extensionUri, 'README.md');
3053
+ join(extensionUri, 'CHANGELOG.md');
3054
+ const [hasReadme, hasChangelog] = await Promise.all([existsFile(), existsFile()]);
3011
3055
  const readmeContent = await loadReadmeContent(readmeUrl);
3012
3056
  const baseUrl = getBaseUrl(extension.path, platform);
3013
3057
  const readmeHtml = await renderMarkdown(readmeContent, {
@@ -3049,7 +3093,7 @@ const loadContent = async (state, platform, savedState) => {
3049
3093
  description,
3050
3094
  detailsVirtualDom,
3051
3095
  displaySize,
3052
- entries: installationEntries,
3096
+ installationEntries,
3053
3097
  extension,
3054
3098
  extensionId,
3055
3099
  extensionVersion,
@@ -3063,7 +3107,7 @@ const loadContent = async (state, platform, savedState) => {
3063
3107
  resources,
3064
3108
  scrollSource: Script,
3065
3109
  scrollToTopButtonEnabled: true,
3066
- secondEntries: marketplaceEntries,
3110
+ marketplaceEntries,
3067
3111
  selectedTab,
3068
3112
  sizeOnDisk: size,
3069
3113
  sizeValue,
@@ -3239,7 +3283,7 @@ const getChildCount = (additionalDetails, scrollToTopEnabled) => {
3239
3283
  }
3240
3284
  return count;
3241
3285
  };
3242
- const getDetailsVirtualDom = (sanitizedReadmeHtml, width, scrollToTopButtonEnabled, categories$1, resources$1, showAdditionalDetailsBreakpoint, marketplaceEntries, installationEntries) => {
3286
+ const getDetailsVirtualDom = (sanitizedReadmeHtml, width, scrollToTopButtonEnabled, categories$1, resources$1, showAdditionalDetailsBreakpoint, installationEntries, marketplaceEntries) => {
3243
3287
  const firstHeading = installation();
3244
3288
  const secondHeading = marketplace();
3245
3289
  const thirdHeading = categories();
@@ -3306,7 +3350,7 @@ const getFeaturesVirtualDom = (features, selectedFeature, state) => {
3306
3350
  const getExtensionDetailContentVirtualDom = (sanitizedReadmeHtml, selectedTab, width, scrollToTopButtonEnabled, categories, resources, breakpoint, changelogDom, state) => {
3307
3351
  switch (selectedTab) {
3308
3352
  case Details:
3309
- return getDetailsVirtualDom(sanitizedReadmeHtml, width, scrollToTopButtonEnabled, categories, resources, breakpoint, state.entries, state.secondEntries);
3353
+ return getDetailsVirtualDom(sanitizedReadmeHtml, width, scrollToTopButtonEnabled, categories, resources, breakpoint, state.installationEntries, state.marketplaceEntries);
3310
3354
  case Features:
3311
3355
  return getFeaturesVirtualDom(state.features, state.selectedFeature, state);
3312
3356
  case Changelog:
@@ -3531,7 +3575,7 @@ const render2 = (uid, diffResult) => {
3531
3575
  oldState,
3532
3576
  newState
3533
3577
  } = get(uid);
3534
- set$1(uid, newState, newState);
3578
+ set$2(uid, newState, newState);
3535
3579
  const commands = applyRender(oldState, newState, diffResult);
3536
3580
  return commands;
3537
3581
  };
@@ -3548,7 +3592,8 @@ const renderEventListeners = () => {
3548
3592
  params: ['handleReadmeContextMenu', 'event.clientX', 'event.clientY', 'event.target.href', 'event.target.src']
3549
3593
  }, {
3550
3594
  name: HandleReadmeScroll,
3551
- params: ['handleScroll', 'event.target.scrollTop'],
3595
+ // @ts-ignore
3596
+ params: ['handleScroll', 'event.target.scrollTop', User],
3552
3597
  passive: true
3553
3598
  }, {
3554
3599
  name: HandleTabsClick,
@@ -3637,7 +3682,7 @@ const listen = async () => {
3637
3682
  const rpc = await WebWorkerRpcClient.create({
3638
3683
  commandMap: commandMap
3639
3684
  });
3640
- set(rpc);
3685
+ set$1(rpc);
3641
3686
  };
3642
3687
 
3643
3688
  const main = async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/extension-detail-view",
3
- "version": "3.41.0",
3
+ "version": "3.43.0",
4
4
  "description": "Extension Detail View Worker",
5
5
  "license": "MIT",
6
6
  "author": "Lvce Editor",