@lvce-editor/extension-management-worker 4.15.0 → 4.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.
@@ -1725,11 +1725,41 @@ const getExtensionAbsolutePath = (id, isWeb, isBuiltin, path, relativePath, orig
1725
1725
  return new URL('/remote' + path + '/' + relativePath, origin).href;
1726
1726
  };
1727
1727
 
1728
+ const isMissingAssetDir = assetDir => {
1729
+ return typeof assetDir !== 'string' || assetDir.length === 0;
1730
+ };
1731
+ const isMissingPlatform = platform => {
1732
+ return typeof platform !== 'number' || platform === 0;
1733
+ };
1734
+ const isStaticHttpAssetDir = assetDir => {
1735
+ return assetDir.startsWith('/') || assetDir.startsWith('http');
1736
+ };
1737
+ const isHttpLocation = () => {
1738
+ return Reflect.has(globalThis, 'location') && globalThis.location.protocol.startsWith('http');
1739
+ };
1740
+ const getRuntimeContext = async (assetDir, platform) => {
1741
+ const resolvedAssetDir = isMissingAssetDir(assetDir) ? await invoke$3('Layout.getAssetDir') : assetDir;
1742
+ const resolvedPlatform = isMissingPlatform(platform) ? await invoke$3('Layout.getPlatform') : platform;
1743
+ if (isHttpLocation() && isStaticHttpAssetDir(resolvedAssetDir)) {
1744
+ return {
1745
+ assetDir: resolvedAssetDir,
1746
+ platform: Web
1747
+ };
1748
+ }
1749
+ return {
1750
+ assetDir: resolvedAssetDir,
1751
+ platform: resolvedPlatform
1752
+ };
1753
+ };
1754
+
1755
+ const getResponseErrorMessage = response => {
1756
+ return response.statusText || String(response.status) || 'Request failed';
1757
+ };
1728
1758
  const getJson$1 = async url => {
1729
1759
  try {
1730
1760
  const response = await fetch(url);
1731
1761
  if (!response.ok) {
1732
- throw new Error(response.statusText);
1762
+ throw new Error(getResponseErrorMessage(response));
1733
1763
  }
1734
1764
  const json = await response.json();
1735
1765
  return json;
@@ -1875,17 +1905,15 @@ const getExtensionsWithWorkspaceState = async extensions => {
1875
1905
  return withWorkspaceDisabledState(extensions, workspaceDisabledIds);
1876
1906
  };
1877
1907
  const getAllExtensionsWithState = async (extensionsState, assetDir, platform) => {
1878
- if (typeof assetDir !== 'string') {
1879
- assetDir = await invoke$3('Layout.getAssetDir');
1880
- }
1881
- if (!platform) {
1882
- platform = await invoke$3('Layout.getPlatform');
1883
- }
1884
- string(assetDir);
1885
- number(platform);
1908
+ const {
1909
+ assetDir: resolvedAssetDir,
1910
+ platform: resolvedPlatform
1911
+ } = await getRuntimeContext(assetDir, platform);
1912
+ string(resolvedAssetDir);
1913
+ number(resolvedPlatform);
1886
1914
  const meta = extensionsState.webExtensions;
1887
- if (platform === Web) {
1888
- const webExtensions = await getWebExtensions(assetDir);
1915
+ if (resolvedPlatform === Web) {
1916
+ const webExtensions = await getWebExtensions(resolvedAssetDir);
1889
1917
  return getExtensionsWithWorkspaceState([...webExtensions, ...meta]);
1890
1918
  }
1891
1919
  const local = await invoke$2('ExtensionManagement.getAllExtensions');
@@ -1936,10 +1964,14 @@ const activateByEvent = async (event, assetDir, platform) => {
1936
1964
  hasActivatedExtensions: Object.keys(activatingExtensions).length > 0
1937
1965
  };
1938
1966
  }
1939
- const extensions = await getAllExtensions(assetDir, platform);
1967
+ const {
1968
+ assetDir: resolvedAssetDir,
1969
+ platform: resolvedPlatform
1970
+ } = await getRuntimeContext(assetDir, platform);
1971
+ const extensions = await getAllExtensions(resolvedAssetDir, resolvedPlatform);
1940
1972
  const matchingExtensions = extensions.filter(extension => matchesEvent(extension, event));
1941
1973
  for (const extension of matchingExtensions) {
1942
- await activateExtension(extension, event, assetDir, platform);
1974
+ await activateExtension(extension, event, resolvedAssetDir, resolvedPlatform);
1943
1975
  }
1944
1976
  return {
1945
1977
  error: undefined,
@@ -2292,9 +2324,9 @@ const executeRpcResolveCompletionItemProvider = async (rpc, textDocument, args)
2292
2324
  };
2293
2325
  const executeCompletionProvider = async (extensionsState, textDocument, ...args) => {
2294
2326
  const {
2327
+ assetDir,
2295
2328
  platform
2296
- } = extensionsState;
2297
- const assetDir = '';
2329
+ } = await getRuntimeContext('', extensionsState.platform);
2298
2330
  const extensions = await getMatchingExtensions$3(extensionsState, textDocument, assetDir, platform);
2299
2331
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2300
2332
  const results = await Promise.all(rpcs.map(rpc => executeRpcCompletionProvider(rpc, textDocument, args)));
@@ -2302,9 +2334,9 @@ const executeCompletionProvider = async (extensionsState, textDocument, ...args)
2302
2334
  };
2303
2335
  const executeResolveCompletionItemProvider = async (extensionsState, textDocument, ...args) => {
2304
2336
  const {
2337
+ assetDir,
2305
2338
  platform
2306
- } = extensionsState;
2307
- const assetDir = '';
2339
+ } = await getRuntimeContext('', extensionsState.platform);
2308
2340
  const extensions = await getMatchingExtensions$3(extensionsState, textDocument, assetDir, platform);
2309
2341
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2310
2342
  const results = await Promise.all(rpcs.map(rpc => executeRpcResolveCompletionItemProvider(rpc, textDocument, args)));
@@ -2325,9 +2357,9 @@ const executeRpcDiagnosticProvider = async (rpc, textDocument, args) => {
2325
2357
  };
2326
2358
  const executeDiagnosticProvider = async (extensionsState, textDocument, ...args) => {
2327
2359
  const {
2360
+ assetDir,
2328
2361
  platform
2329
- } = extensionsState;
2330
- const assetDir = '';
2362
+ } = await getRuntimeContext('', extensionsState.platform);
2331
2363
  const extensions = await getMatchingExtensions$2(extensionsState, textDocument, assetDir, platform);
2332
2364
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2333
2365
  const results = await Promise.all(rpcs.map(rpc => executeRpcDiagnosticProvider(rpc, textDocument, args)));
@@ -2348,9 +2380,9 @@ const executeRpcFormattingProvider = async (rpc, textDocument, args) => {
2348
2380
  };
2349
2381
  const executeFormattingProvider = async (extensionsState, textDocument, ...args) => {
2350
2382
  const {
2383
+ assetDir,
2351
2384
  platform
2352
- } = extensionsState;
2353
- const assetDir = '';
2385
+ } = await getRuntimeContext('', extensionsState.platform);
2354
2386
  const extensions = await getMatchingExtensions$1(extensionsState, textDocument, assetDir, platform);
2355
2387
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2356
2388
  const results = await Promise.all(rpcs.map(rpc => executeRpcFormattingProvider(rpc, textDocument, args)));
@@ -2371,9 +2403,9 @@ const executeRpcHoverProvider = async (rpc, textDocument, args) => {
2371
2403
  };
2372
2404
  const executeHoverProvider = async (extensionsState, textDocument, ...args) => {
2373
2405
  const {
2406
+ assetDir,
2374
2407
  platform
2375
- } = extensionsState;
2376
- const assetDir = '';
2408
+ } = await getRuntimeContext('', extensionsState.platform);
2377
2409
  const extensions = await getMatchingExtensions(extensionsState, textDocument, assetDir, platform);
2378
2410
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2379
2411
  const results = await Promise.all(rpcs.map(rpc => executeRpcHoverProvider(rpc, textDocument, args)));
@@ -2418,16 +2450,20 @@ const getExtensionForView = async (viewId, assetDir, platform) => {
2418
2450
  return extension;
2419
2451
  };
2420
2452
  const getRpcForView = async (viewId, assetDir, platform) => {
2421
- const extension = await getExtensionForView(viewId, assetDir, platform);
2453
+ const {
2454
+ assetDir: resolvedAssetDir,
2455
+ platform: resolvedPlatform
2456
+ } = await getRuntimeContext(assetDir, platform);
2457
+ const extension = await getExtensionForView(viewId, resolvedAssetDir, resolvedPlatform);
2422
2458
  const existingRpc = get$3(getExtensionId$1(extension));
2423
2459
  if (existingRpc) {
2424
2460
  return existingRpc;
2425
2461
  }
2426
- const activationResult = await activateByEvent(`onView:${viewId}`, assetDir, platform);
2462
+ const activationResult = await activateByEvent(`onView:${viewId}`, resolvedAssetDir, resolvedPlatform);
2427
2463
  if (activationResult.error) {
2428
2464
  throw activationResult.error;
2429
2465
  }
2430
- return getRpc$1(extension, assetDir, platform);
2466
+ return getRpc$1(extension, resolvedAssetDir, resolvedPlatform);
2431
2467
  };
2432
2468
  const getRpcForInstance = async (viewId, uid, assetDir, platform) => {
2433
2469
  const instance = get$1(uid);
@@ -2479,6 +2515,13 @@ const getViewMenuEntries = async (viewId, uid, menuId, assetDir, platform) => {
2479
2515
  }
2480
2516
  return instance.rpc.invoke('ExtensionApi.getViewMenuEntries', uid, menuId);
2481
2517
  };
2518
+ const getViewActions = async (viewId, uid, assetDir, platform) => {
2519
+ const instance = get$1(uid);
2520
+ if (!instance || instance.status === 'error') {
2521
+ return [];
2522
+ }
2523
+ return instance.rpc.invoke('ExtensionApi.getViewActions', uid);
2524
+ };
2482
2525
  const requestViewRerender = async uid => {
2483
2526
  await invoke$3('Viewlet.executeViewletCommand', uid, 'rerender');
2484
2527
  };
@@ -2968,8 +3011,12 @@ const getViewsFromExtensionWorkers = async (extensions, assetDir, platform) => {
2968
3011
  return results.flat();
2969
3012
  };
2970
3013
  const getViews = async (assetDir, platform) => {
2971
- const extensions = await getAllExtensions(assetDir, platform);
2972
- return getViewsFromExtensionWorkers(extensions, assetDir, platform);
3014
+ const {
3015
+ assetDir: resolvedAssetDir,
3016
+ platform: resolvedPlatform
3017
+ } = await getRuntimeContext(assetDir, platform);
3018
+ const extensions = await getAllExtensions(resolvedAssetDir, resolvedPlatform);
3019
+ return getViewsFromExtensionWorkers(extensions, resolvedAssetDir, resolvedPlatform);
2973
3020
  };
2974
3021
 
2975
3022
  const StatusBarWorker = 200;
@@ -3149,6 +3196,7 @@ const commandMap = {
3149
3196
  'Extensions.getRpcInfo': getRpcInfo,
3150
3197
  'Extensions.getRuntimeStatus': getRuntimeStatus,
3151
3198
  'Extensions.getStatusBarItems': getStatusBarItems,
3199
+ 'Extensions.getViewActions': getViewActions,
3152
3200
  'Extensions.getViewMenuEntries': getViewMenuEntries,
3153
3201
  'Extensions.getViews': getViews,
3154
3202
  'Extensions.handleMessagePort': handleMessagePort,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/extension-management-worker",
3
- "version": "4.15.0",
3
+ "version": "4.17.0",
4
4
  "description": "Webworker for the Extension Management functionality in Lvce Editor.",
5
5
  "keywords": [
6
6
  "web-worker"