@lvce-editor/extension-management-worker 4.30.1 → 4.30.3

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.
@@ -2034,7 +2034,7 @@ const activateByEvent = async (event, assetDir, platform) => {
2034
2034
  };
2035
2035
 
2036
2036
  const invalidateExtensionsCache = async () => {
2037
- await invoke$2('ExtensionManagement.invalidateExtensionsCache');
2037
+ await invoke$2('ExtensionManagement.handleExtensionsCacheInvalidated');
2038
2038
  };
2039
2039
 
2040
2040
  const handleChange = async _id => {
@@ -3244,12 +3244,6 @@ const getStatusBarItems = async () => {
3244
3244
  return results.flat();
3245
3245
  };
3246
3246
 
3247
- const contributesViews = extension => {
3248
- return Array.isArray(extension.views) && extension.views.length > 0;
3249
- };
3250
- const getManifestView = (extension, id) => {
3251
- return extension.views?.find(view => view.id === id);
3252
- };
3253
3247
  const getCss = (extension, manifestView, assetDir, platform) => {
3254
3248
  const css = manifestView?.css;
3255
3249
  if (typeof css !== 'string' || css.length === 0) {
@@ -3260,13 +3254,16 @@ const getCss = (extension, manifestView, assetDir, platform) => {
3260
3254
  browser: css
3261
3255
  }, assetDir, platform);
3262
3256
  };
3257
+
3263
3258
  const isAbsoluteIcon = icon => {
3264
3259
  return icon.startsWith('http://') || icon.startsWith('https://') || icon.startsWith('file://') || icon.startsWith('/');
3265
3260
  };
3261
+
3266
3262
  const isRelativeIconPath = icon => {
3267
3263
  return icon.startsWith('./') || icon.startsWith('../') || icon.includes('/') || /\.(?:bmp|gif|ico|jpe?g|png|svg|webp)$/i.test(icon);
3268
3264
  };
3269
- const getIcon = (extension, manifestView, registeredView, assetDir, platform) => {
3265
+
3266
+ const getIcon = (extension, manifestView, assetDir, platform) => {
3270
3267
  const manifestIcon = manifestView?.icon;
3271
3268
  if (typeof manifestIcon === 'string' && manifestIcon.length > 0) {
3272
3269
  if (isAbsoluteIcon(manifestIcon) || !isRelativeIconPath(manifestIcon)) {
@@ -3277,8 +3274,9 @@ const getIcon = (extension, manifestView, registeredView, assetDir, platform) =>
3277
3274
  browser: manifestIcon
3278
3275
  }, assetDir, platform);
3279
3276
  }
3280
- return registeredView.icon || '';
3277
+ return '';
3281
3278
  };
3279
+
3282
3280
  const getIframe = (extension, manifestView, assetDir, platform) => {
3283
3281
  const iframe = manifestView?.iframe;
3284
3282
  if (!iframe || typeof iframe.path !== 'string' || iframe.path.length === 0) {
@@ -3294,9 +3292,9 @@ const getIframe = (extension, manifestView, assetDir, platform) => {
3294
3292
  }, assetDir, platform)
3295
3293
  };
3296
3294
  };
3297
- const toView = (extension, registeredView, assetDir, platform) => {
3298
- const id = registeredView.id || '';
3299
- const manifestView = getManifestView(extension, id);
3295
+
3296
+ const toView = (extension, manifestView, assetDir, platform) => {
3297
+ const id = manifestView.id || '';
3300
3298
  const css = getCss(extension, manifestView, assetDir, platform);
3301
3299
  const selector = Array.isArray(manifestView?.selector) ? manifestView.selector.filter(item => typeof item === 'string') : undefined;
3302
3300
  const type = typeof manifestView?.type === 'string' ? manifestView.type : undefined;
@@ -3304,8 +3302,8 @@ const toView = (extension, registeredView, assetDir, platform) => {
3304
3302
  ...(css && {
3305
3303
  css
3306
3304
  }),
3307
- ...(registeredView.eventListeners && {
3308
- eventListeners: registeredView.eventListeners
3305
+ ...(Array.isArray(manifestView.eventListeners) && {
3306
+ eventListeners: manifestView.eventListeners
3309
3307
  }),
3310
3308
  ...(selector && {
3311
3309
  selector
@@ -3314,37 +3312,49 @@ const toView = (extension, registeredView, assetDir, platform) => {
3314
3312
  type
3315
3313
  }),
3316
3314
  extensionId: getExtensionId$1(extension),
3317
- icon: getIcon(extension, manifestView, registeredView, assetDir, platform),
3315
+ icon: getIcon(extension, manifestView, assetDir, platform),
3318
3316
  id,
3319
3317
  iframe: getIframe(extension, manifestView, assetDir, platform),
3320
- kind: registeredView.kind || manifestView?.kind || '',
3321
- showSideBarHeader: manifestView?.showSideBarHeader !== false,
3322
- title: registeredView.title || manifestView?.title || id
3318
+ kind: manifestView.kind || '',
3319
+ showSideBarHeader: manifestView.showSideBarHeader !== false,
3320
+ title: manifestView.title || id
3323
3321
  };
3324
3322
  };
3325
- const getRpcViewRegistrySnapshot = async rpc => {
3326
- return rpc.invoke('ExtensionApi.getViewRegistrySnapshot');
3327
- };
3328
- const getExtensionViews = async (extension, assetDir, platform) => {
3329
- const rpc = await getRpc$1(extension, assetDir, platform);
3330
- const snapshot = await getRpcViewRegistrySnapshot(rpc);
3331
- if (!Array.isArray(snapshot.views)) {
3323
+
3324
+ const getExtensionViews = (extension, assetDir, platform) => {
3325
+ if (!Array.isArray(extension.views)) {
3332
3326
  return [];
3333
3327
  }
3334
- return snapshot.views.filter(view => view && typeof view.id === 'string').map(view => toView(extension, view, assetDir, platform));
3328
+ return extension.views.filter(view => view && typeof view.id === 'string').map(view => toView(extension, view, assetDir, platform));
3335
3329
  };
3336
- const getViewsFromExtensionWorkers = async (extensions, assetDir, platform) => {
3337
- const matchingExtensions = extensions.filter(extension => isExtensionIsolated(extension) && contributesViews(extension));
3338
- const results = await Promise.all(matchingExtensions.map(extension => getExtensionViews(extension, assetDir, platform)));
3339
- return results.flat();
3330
+
3331
+ const contributesViews = extension => {
3332
+ return Array.isArray(extension.views) && extension.views.length > 0;
3340
3333
  };
3334
+
3335
+ const shouldLoadViews = extension => {
3336
+ if (!contributesViews(extension)) {
3337
+ return false;
3338
+ }
3339
+ if (!isExtensionIsolated(extension)) {
3340
+ warn(`Extension "${getExtensionId$1(extension)}" contributes activity bar views but is not isolated. The views will not be shown. Add "isolated": true to extension.json to enable them.`);
3341
+ return false;
3342
+ }
3343
+ return true;
3344
+ };
3345
+
3346
+ const getViewsFromExtensions = (extensions, assetDir, platform) => {
3347
+ const matchingExtensions = extensions.filter(shouldLoadViews);
3348
+ return matchingExtensions.flatMap(extension => getExtensionViews(extension, assetDir, platform));
3349
+ };
3350
+
3341
3351
  const getViews = async (assetDir, platform) => {
3342
3352
  const {
3343
3353
  assetDir: resolvedAssetDir,
3344
3354
  platform: resolvedPlatform
3345
3355
  } = await getRuntimeContext(assetDir, platform);
3346
3356
  const extensions = await getAllExtensions(resolvedAssetDir, resolvedPlatform);
3347
- return getViewsFromExtensionWorkers(extensions, resolvedAssetDir, resolvedPlatform);
3357
+ return getViewsFromExtensions(extensions, resolvedAssetDir, resolvedPlatform);
3348
3358
  };
3349
3359
 
3350
3360
  const handleData = () => {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/extension-management-worker",
3
- "version": "4.30.1",
3
+ "version": "4.30.3",
4
4
  "description": "Webworker for the Extension Management functionality in Lvce Editor.",
5
5
  "keywords": [
6
6
  "web-worker"