@lvce-editor/extension-detail-view 7.16.0 → 7.17.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.
@@ -2062,7 +2062,7 @@ const execute = (command, ...args) => {
2062
2062
 
2063
2063
  const Two$1 = '2.0';
2064
2064
  const callbacks = Object.create(null);
2065
- const get$3 = id => {
2065
+ const get$4 = id => {
2066
2066
  return callbacks[id];
2067
2067
  };
2068
2068
  const remove$1 = id => {
@@ -2252,7 +2252,7 @@ const warn = (...args) => {
2252
2252
  console.warn(...args);
2253
2253
  };
2254
2254
  const resolve = (id, response) => {
2255
- const fn = get$3(id);
2255
+ const fn = get$4(id);
2256
2256
  if (!fn) {
2257
2257
  console.log(response);
2258
2258
  warn(`callback ${id} may already be disposed`);
@@ -2644,10 +2644,10 @@ const createMockRpc = ({
2644
2644
  };
2645
2645
 
2646
2646
  const rpcs = Object.create(null);
2647
- const set$b = (id, rpc) => {
2647
+ const set$c = (id, rpc) => {
2648
2648
  rpcs[id] = rpc;
2649
2649
  };
2650
- const get$2 = id => {
2650
+ const get$3 = id => {
2651
2651
  return rpcs[id];
2652
2652
  };
2653
2653
  const remove = id => {
@@ -2658,18 +2658,18 @@ const remove = id => {
2658
2658
  const create$2 = rpcId => {
2659
2659
  return {
2660
2660
  async dispose() {
2661
- const rpc = get$2(rpcId);
2661
+ const rpc = get$3(rpcId);
2662
2662
  await rpc.dispose();
2663
2663
  },
2664
2664
  // @ts-ignore
2665
2665
  invoke(method, ...params) {
2666
- const rpc = get$2(rpcId);
2666
+ const rpc = get$3(rpcId);
2667
2667
  // @ts-ignore
2668
2668
  return rpc.invoke(method, ...params);
2669
2669
  },
2670
2670
  // @ts-ignore
2671
2671
  invokeAndTransfer(method, ...params) {
2672
- const rpc = get$2(rpcId);
2672
+ const rpc = get$3(rpcId);
2673
2673
  // @ts-ignore
2674
2674
  return rpc.invokeAndTransfer(method, ...params);
2675
2675
  },
@@ -2677,7 +2677,7 @@ const create$2 = rpcId => {
2677
2677
  const mockRpc = createMockRpc({
2678
2678
  commandMap
2679
2679
  });
2680
- set$b(rpcId, mockRpc);
2680
+ set$c(rpcId, mockRpc);
2681
2681
  // @ts-ignore
2682
2682
  mockRpc[Symbol.dispose] = () => {
2683
2683
  remove(rpcId);
@@ -2686,14 +2686,14 @@ const create$2 = rpcId => {
2686
2686
  return mockRpc;
2687
2687
  },
2688
2688
  set(rpc) {
2689
- set$b(rpcId, rpc);
2689
+ set$c(rpcId, rpc);
2690
2690
  }
2691
2691
  };
2692
2692
  };
2693
2693
 
2694
2694
  const {
2695
2695
  invoke: invoke$6,
2696
- set: set$a
2696
+ set: set$b
2697
2697
  } = create$2(ClipBoardWorker);
2698
2698
  const writeText$1 = async text => {
2699
2699
  return invoke$6('ClipBoard.writeText', text);
@@ -2704,7 +2704,7 @@ const writeImage = async image => {
2704
2704
 
2705
2705
  const {
2706
2706
  invoke: invoke$5,
2707
- set: set$9
2707
+ set: set$a
2708
2708
  } = create$2(ExtensionHostWorker);
2709
2709
  const getRuntimeStatus$2 = async extensionId => {
2710
2710
  // @ts-ignore
@@ -2715,12 +2715,12 @@ const ExtensionHost = {
2715
2715
  __proto__: null,
2716
2716
  getRuntimeStatus: getRuntimeStatus$2,
2717
2717
  invoke: invoke$5,
2718
- set: set$9
2718
+ set: set$a
2719
2719
  };
2720
2720
 
2721
2721
  const {
2722
2722
  invoke: invoke$4,
2723
- set: set$8
2723
+ set: set$9
2724
2724
  } = create$2(ExtensionManagementWorker);
2725
2725
  const enable2 = (id, platform) => {
2726
2726
  return invoke$4(`Extensions.enable2`, id, platform);
@@ -2734,7 +2734,7 @@ const getLanguages = (platform, assetDir) => {
2734
2734
 
2735
2735
  const {
2736
2736
  invoke: invoke$3,
2737
- set: set$7
2737
+ set: set$8
2738
2738
  } = create$2(FileSystemWorker$1);
2739
2739
  const readFile$2 = async uri => {
2740
2740
  return invoke$3('FileSystem.readFile', uri);
@@ -2748,12 +2748,12 @@ const FileSystemWorker = {
2748
2748
  exists: exists$1,
2749
2749
  invoke: invoke$3,
2750
2750
  readFile: readFile$2,
2751
- set: set$7
2751
+ set: set$8
2752
2752
  };
2753
2753
 
2754
2754
  const {
2755
2755
  invoke: invoke$2,
2756
- set: set$6
2756
+ set: set$7
2757
2757
  } = create$2(MarkdownWorker$1);
2758
2758
  const getVirtualDom$1 = async html => {
2759
2759
  // @ts-ignore
@@ -2769,13 +2769,13 @@ const MarkdownWorker = {
2769
2769
  getVirtualDom: getVirtualDom$1,
2770
2770
  invoke: invoke$2,
2771
2771
  render: render$1,
2772
- set: set$6
2772
+ set: set$7
2773
2773
  };
2774
2774
 
2775
2775
  const {
2776
2776
  invoke: invoke$1,
2777
2777
  invokeAndTransfer,
2778
- set: set$5
2778
+ set: set$6
2779
2779
  } = create$2(RendererWorker);
2780
2780
  const showContextMenu2 = async (uid, menuId, x, y, args) => {
2781
2781
  number(uid);
@@ -2844,7 +2844,7 @@ const getAllPreferences = async () => {
2844
2844
 
2845
2845
  const {
2846
2846
  getRuntimeStatus: getRuntimeStatus$1,
2847
- set: set$4
2847
+ set: set$5
2848
2848
  } = ExtensionHost;
2849
2849
 
2850
2850
  const getRuntimeStatus = async extensionId => {
@@ -3098,7 +3098,7 @@ const getScrollToTopVirtualDom = scrollToTopButtonEnabled => {
3098
3098
  const {
3099
3099
  getVirtualDom,
3100
3100
  render,
3101
- set: set$3
3101
+ set: set$4
3102
3102
  } = MarkdownWorker;
3103
3103
 
3104
3104
  const addScrollToTopVirtualDom = dom => {
@@ -3216,20 +3216,20 @@ const getCache = (cacheName, bucketName) => {
3216
3216
  };
3217
3217
 
3218
3218
  // TODO pass application name from renderer worker to not hardcode it
3219
- const cacheName = 'lvce-editor/markdown-cache';
3219
+ const cacheName$1 = 'lvce-editor/markdown-cache';
3220
3220
  const has = async (key, bucketName) => {
3221
- const cache = await getCache(cacheName, bucketName);
3221
+ const cache = await getCache(cacheName$1, bucketName);
3222
3222
  const response = await cache.match(key);
3223
3223
  return Boolean(response);
3224
3224
  };
3225
- const get$1 = async (key, bucketName) => {
3226
- const cache = await getCache(cacheName, bucketName);
3225
+ const get$2 = async (key, bucketName) => {
3226
+ const cache = await getCache(cacheName$1, bucketName);
3227
3227
  const response = await cache.match(key);
3228
3228
  const text = await response?.text();
3229
3229
  return text || '';
3230
3230
  };
3231
- const set$2 = async (key, bucketName, value) => {
3232
- const cache = await getCache(cacheName, bucketName);
3231
+ const set$3 = async (key, bucketName, value) => {
3232
+ const cache = await getCache(cacheName$1, bucketName);
3233
3233
  await cache.put(key, new Response(value, {
3234
3234
  headers: {
3235
3235
  'Content-Length': `${value.length}`,
@@ -3243,11 +3243,11 @@ const renderMarkdownCached = async (markdown, options) => {
3243
3243
  const bucketName = `markdown-cache`;
3244
3244
  const hasItem = await has(cacheKey, bucketName);
3245
3245
  if (hasItem) {
3246
- const value = await get$1(cacheKey, bucketName);
3246
+ const value = await get$2(cacheKey, bucketName);
3247
3247
  return value; // TODO validate if it's valid
3248
3248
  }
3249
3249
  const html = await render(markdown, options);
3250
- await set$2(cacheKey, bucketName, html);
3250
+ await set$3(cacheKey, bucketName, html);
3251
3251
  return html;
3252
3252
  };
3253
3253
 
@@ -3737,7 +3737,7 @@ const {
3737
3737
  exists,
3738
3738
  invoke,
3739
3739
  readFile: readFile$1,
3740
- set: set$1
3740
+ set: set$2
3741
3741
  } = FileSystemWorker;
3742
3742
  const readFileAsBlob = async uri => {
3743
3743
  // TODO maybe readAsObjectUrl?
@@ -3787,10 +3787,10 @@ const copyReadmeLink = async (state, href) => {
3787
3787
 
3788
3788
  const {
3789
3789
  dispose: dispose$1,
3790
- get,
3790
+ get: get$1,
3791
3791
  getCommandIds,
3792
3792
  registerCommands,
3793
- set,
3793
+ set: set$1,
3794
3794
  wrapCommand,
3795
3795
  wrapGetter
3796
3796
  } = create$1();
@@ -3871,7 +3871,7 @@ const create = (uid, uri, x, y, width, height, platform, assetDir) => {
3871
3871
  webViews: [],
3872
3872
  width
3873
3873
  };
3874
- set(uid, state, state);
3874
+ set$1(uid, state, state);
3875
3875
  };
3876
3876
 
3877
3877
  const isEqual$3 = (oldState, newState) => {
@@ -3907,7 +3907,7 @@ const diff2 = uid => {
3907
3907
  const {
3908
3908
  newState,
3909
3909
  oldState
3910
- } = get(uid);
3910
+ } = get$1(uid);
3911
3911
  const diffResult = [];
3912
3912
  for (let i = 0; i < modules.length; i++) {
3913
3913
  const fn = modules[i];
@@ -4243,7 +4243,7 @@ const getExtension$1 = async (id, platform) => {
4243
4243
 
4244
4244
  const getExtensionNew = async id => {
4245
4245
  try {
4246
- const rpc = get$2(ExtensionManagementWorker);
4246
+ const rpc = get$3(ExtensionManagementWorker);
4247
4247
  const extension = await rpc.invoke('Extensions.getExtension', id);
4248
4248
  if (extension) {
4249
4249
  return extension;
@@ -5741,16 +5741,68 @@ class GithubReleasesError extends Error {
5741
5741
  }
5742
5742
  }
5743
5743
 
5744
+ const bucketName = 'changelog-cache';
5745
+ const cacheName = 'lvce-editor/changelog-cache';
5746
+ const cachedAtHeader = 'X-Lvce-Editor-Cached-At';
5747
+ const maxAge = 60 * 60 * 1000;
5748
+ const getCacheKey = uri => {
5749
+ return `https://-/changelog/${encodeURIComponent(uri)}`;
5750
+ };
5751
+ const isFresh = (cachedAt, now) => {
5752
+ return Number.isFinite(cachedAt) && now - cachedAt <= maxAge;
5753
+ };
5754
+ const get = async (uri, now = Date.now(), getCacheFunction = getCache) => {
5755
+ try {
5756
+ const cache = await getCacheFunction(cacheName, bucketName);
5757
+ const response = await cache.match(getCacheKey(uri));
5758
+ if (!response) {
5759
+ return undefined;
5760
+ }
5761
+ const cachedAt = Number(response.headers.get(cachedAtHeader));
5762
+ if (!isFresh(cachedAt, now)) {
5763
+ return undefined;
5764
+ }
5765
+ return response.text();
5766
+ } catch {
5767
+ return undefined;
5768
+ }
5769
+ };
5770
+ const set = async (uri, value, now = Date.now(), getCacheFunction = getCache) => {
5771
+ try {
5772
+ const cache = await getCacheFunction(cacheName, bucketName);
5773
+ await cache.put(getCacheKey(uri), new Response(value, {
5774
+ headers: {
5775
+ [cachedAtHeader]: `${now}`,
5776
+ 'Content-Length': `${value.length}`,
5777
+ 'Content-Type': 'application/markdown'
5778
+ }
5779
+ }));
5780
+ } catch {
5781
+ return;
5782
+ }
5783
+ };
5784
+
5785
+ const ChangelogCache = {
5786
+ __proto__: null,
5787
+ get,
5788
+ set
5789
+ };
5790
+
5744
5791
  const error = async error => {
5745
5792
  // TODO send message to error worker or log worker
5746
5793
  // @ts-ignore
5747
5794
  console.error(error);
5748
5795
  };
5749
5796
 
5750
- const loadChangelogContent = async path => {
5797
+ const loadChangelogContent = async (path, cache = ChangelogCache) => {
5751
5798
  try {
5752
5799
  const changelogUrl = join(path, 'CHANGELOG.md');
5800
+ const cachedContent = await cache.get(changelogUrl);
5801
+ if (cachedContent !== undefined) {
5802
+ return cachedContent;
5803
+ }
5753
5804
  const changelogContent = await readFile(changelogUrl);
5805
+ await cache.set(changelogUrl, changelogContent);
5754
5806
  return changelogContent;
5755
5807
  } catch (error$1) {
5756
5808
  if (isEnoentError(error$1)) {
@@ -6103,7 +6155,7 @@ const createRpc = async () => {
6103
6155
  };
6104
6156
  const initializeClipBoardWorker = async () => {
6105
6157
  const rpc = await createRpc();
6106
- set$a(rpc);
6158
+ set$b(rpc);
6107
6159
  };
6108
6160
 
6109
6161
  const sendMessagePortToExtensionHostWorker = async port => {
@@ -6124,7 +6176,7 @@ const createExtensionHostWorkerRpc = async () => {
6124
6176
 
6125
6177
  const initializeExtensionHostWorker = async () => {
6126
6178
  const rpc = await createExtensionHostWorkerRpc();
6127
- set$4(rpc);
6179
+ set$5(rpc);
6128
6180
  };
6129
6181
 
6130
6182
  const createExtensionManagementWorkerRpc = async () => {
@@ -6142,7 +6194,7 @@ const createExtensionManagementWorkerRpc = async () => {
6142
6194
  const initializeExtensionManagementWorker = async () => {
6143
6195
  try {
6144
6196
  const rpc = await createExtensionManagementWorkerRpc();
6145
- set$8(rpc);
6197
+ set$9(rpc);
6146
6198
  } catch {
6147
6199
  // ignore
6148
6200
  }
@@ -6166,7 +6218,7 @@ const createFileSystemWorkerRpc = async () => {
6166
6218
 
6167
6219
  const initializeFileSystemWorker = async () => {
6168
6220
  const rpc = await createFileSystemWorkerRpc();
6169
- set$1(rpc);
6221
+ set$2(rpc);
6170
6222
  };
6171
6223
 
6172
6224
  const sendMessagePortToMarkdownWorker = async port => {
@@ -6183,7 +6235,7 @@ const createMarkdownWorkerRpc = async () => {
6183
6235
 
6184
6236
  const initializeMarkdownWorker = async () => {
6185
6237
  const rpc = await createMarkdownWorkerRpc();
6186
- set$3(rpc);
6238
+ set$4(rpc);
6187
6239
  };
6188
6240
 
6189
6241
  const initialize = async () => {
@@ -6935,8 +6987,8 @@ const render2 = (uid, diffResult) => {
6935
6987
  const {
6936
6988
  newState,
6937
6989
  oldState
6938
- } = get(uid);
6939
- set(uid, newState, newState);
6990
+ } = get$1(uid);
6991
+ set$1(uid, newState, newState);
6940
6992
  const commands = applyRender(oldState, newState, diffResult);
6941
6993
  return commands;
6942
6994
  };
@@ -7118,7 +7170,7 @@ const listen = async () => {
7118
7170
  const rpc = await create$3({
7119
7171
  commandMap: commandMap
7120
7172
  });
7121
- set$5(rpc);
7173
+ set$6(rpc);
7122
7174
  };
7123
7175
 
7124
7176
  const main = async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/extension-detail-view",
3
- "version": "7.16.0",
3
+ "version": "7.17.0",
4
4
  "description": "Extension Detail View Worker",
5
5
  "repository": {
6
6
  "type": "git",