@lvce-editor/extension-management-worker 4.12.0 → 4.13.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.
|
@@ -1453,7 +1453,7 @@ const baseName = path => {
|
|
|
1453
1453
|
const slashIndex = path.lastIndexOf('/');
|
|
1454
1454
|
return path.slice(slashIndex + 1);
|
|
1455
1455
|
};
|
|
1456
|
-
const getExtensionId$
|
|
1456
|
+
const getExtensionId$4 = extension => {
|
|
1457
1457
|
if (extension && extension.id) {
|
|
1458
1458
|
return extension.id;
|
|
1459
1459
|
}
|
|
@@ -1541,7 +1541,7 @@ const activateExtension2 = async (extensionId, extension, absolutePath, extensio
|
|
|
1541
1541
|
status: Activated
|
|
1542
1542
|
});
|
|
1543
1543
|
} catch (error) {
|
|
1544
|
-
const id = getExtensionId$
|
|
1544
|
+
const id = getExtensionId$4(extension);
|
|
1545
1545
|
if (isImportError(error)) {
|
|
1546
1546
|
const actualErrorMessage = await tryToGetActualImportErrorMessage(absolutePath, error);
|
|
1547
1547
|
throw new Error(`Failed to activate extension ${id}: ${actualErrorMessage}`, {
|
|
@@ -1876,14 +1876,14 @@ const runningExtensions = Object.create(null);
|
|
|
1876
1876
|
const matchesEvent = (extension, event) => {
|
|
1877
1877
|
return !extension.disabled && isExtensionIsolated(extension) && Array.isArray(extension.activation) && extension.activation.includes(event);
|
|
1878
1878
|
};
|
|
1879
|
-
const getExtensionId$
|
|
1879
|
+
const getExtensionId$3 = extension => {
|
|
1880
1880
|
return extension.id;
|
|
1881
1881
|
};
|
|
1882
1882
|
const getAbsolutePath$1 = (extension, assetDir, platform) => {
|
|
1883
1883
|
return getExtensionAbsolutePath(extension.id, extension.isWeb, extension.builtin, extension.path || extension.uri, extension.browser, globalThis.location.origin, platform, assetDir);
|
|
1884
1884
|
};
|
|
1885
1885
|
const doActivateExtension = async (extension, absolutePath, event, platform) => {
|
|
1886
|
-
const extensionId = getExtensionId$
|
|
1886
|
+
const extensionId = getExtensionId$3(extension);
|
|
1887
1887
|
try {
|
|
1888
1888
|
await activateExtension3(extension, absolutePath, event, platform);
|
|
1889
1889
|
runningExtensions[extensionId] = true;
|
|
@@ -1892,7 +1892,7 @@ const doActivateExtension = async (extension, absolutePath, event, platform) =>
|
|
|
1892
1892
|
}
|
|
1893
1893
|
};
|
|
1894
1894
|
const activateExtension = async (extension, event, assetDir, platform) => {
|
|
1895
|
-
const extensionId = getExtensionId$
|
|
1895
|
+
const extensionId = getExtensionId$3(extension);
|
|
1896
1896
|
if (runningExtensions[extensionId]) {
|
|
1897
1897
|
return;
|
|
1898
1898
|
}
|
|
@@ -2176,7 +2176,7 @@ const enableWorkspaceExtension = async id => {
|
|
|
2176
2176
|
|
|
2177
2177
|
/* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
|
|
2178
2178
|
|
|
2179
|
-
const getExtensionId$
|
|
2179
|
+
const getExtensionId$2 = extension => {
|
|
2180
2180
|
return extension.id || interExtensionId(extension.uri || extension.path || '');
|
|
2181
2181
|
};
|
|
2182
2182
|
const contributesCommand = (extension, id) => {
|
|
@@ -2191,7 +2191,7 @@ const getRpcForCommand = async (extensionsState, id, platform) => {
|
|
|
2191
2191
|
if (!extension) {
|
|
2192
2192
|
return undefined;
|
|
2193
2193
|
}
|
|
2194
|
-
const extensionId = getExtensionId$
|
|
2194
|
+
const extensionId = getExtensionId$2(extension);
|
|
2195
2195
|
const existingRpc = get$3(extensionId);
|
|
2196
2196
|
if (existingRpc) {
|
|
2197
2197
|
return existingRpc;
|
|
@@ -2234,14 +2234,14 @@ const getOrigin = () => {
|
|
|
2234
2234
|
return globalThis.location?.origin || 'http://localhost';
|
|
2235
2235
|
};
|
|
2236
2236
|
|
|
2237
|
-
const getExtensionId = extension => {
|
|
2237
|
+
const getExtensionId$1 = extension => {
|
|
2238
2238
|
return extension.id || interExtensionId(extension.uri || extension.path || '');
|
|
2239
2239
|
};
|
|
2240
2240
|
const getAbsolutePath = (extension, assetDir, platform) => {
|
|
2241
|
-
return getExtensionAbsolutePath(getExtensionId(extension), extension.isWeb === true, extension.builtin === true, extension.path || extension.uri || '', extension.browser || '', getOrigin(), platform, assetDir);
|
|
2241
|
+
return getExtensionAbsolutePath(getExtensionId$1(extension), extension.isWeb === true, extension.builtin === true, extension.path || extension.uri || '', extension.browser || '', getOrigin(), platform, assetDir);
|
|
2242
2242
|
};
|
|
2243
2243
|
const getRpc$1 = async (extension, assetDir, platform) => {
|
|
2244
|
-
const extensionId = getExtensionId(extension);
|
|
2244
|
+
const extensionId = getExtensionId$1(extension);
|
|
2245
2245
|
const existingRpc = get$3(extensionId);
|
|
2246
2246
|
if (existingRpc) {
|
|
2247
2247
|
return existingRpc;
|
|
@@ -2394,7 +2394,7 @@ const getExtensionForView = async (viewId, assetDir, platform) => {
|
|
|
2394
2394
|
};
|
|
2395
2395
|
const getRpcForView = async (viewId, assetDir, platform) => {
|
|
2396
2396
|
const extension = await getExtensionForView(viewId, assetDir, platform);
|
|
2397
|
-
const existingRpc = get$3(getExtensionId(extension));
|
|
2397
|
+
const existingRpc = get$3(getExtensionId$1(extension));
|
|
2398
2398
|
if (existingRpc) {
|
|
2399
2399
|
return existingRpc;
|
|
2400
2400
|
}
|
|
@@ -2717,6 +2717,48 @@ const getExtension = async (id, assetDir, platform) => {
|
|
|
2717
2717
|
return undefined;
|
|
2718
2718
|
};
|
|
2719
2719
|
|
|
2720
|
+
const getExtensionId = extension => {
|
|
2721
|
+
return extension.id || interExtensionId(extension.uri || extension.path || '');
|
|
2722
|
+
};
|
|
2723
|
+
const toKeyBinding = (extension, keybinding) => {
|
|
2724
|
+
if (typeof keybinding.key !== 'string' || typeof keybinding.command !== 'string') {
|
|
2725
|
+
return undefined;
|
|
2726
|
+
}
|
|
2727
|
+
if (keybinding.when !== undefined && typeof keybinding.when !== 'string') {
|
|
2728
|
+
return undefined;
|
|
2729
|
+
}
|
|
2730
|
+
if (keybinding.args !== undefined && !Array.isArray(keybinding.args)) {
|
|
2731
|
+
return undefined;
|
|
2732
|
+
}
|
|
2733
|
+
return {
|
|
2734
|
+
...(keybinding.args && {
|
|
2735
|
+
args: keybinding.args
|
|
2736
|
+
}),
|
|
2737
|
+
command: keybinding.command,
|
|
2738
|
+
extensionId: getExtensionId(extension),
|
|
2739
|
+
key: keybinding.key,
|
|
2740
|
+
...(keybinding.when && {
|
|
2741
|
+
when: keybinding.when
|
|
2742
|
+
})
|
|
2743
|
+
};
|
|
2744
|
+
};
|
|
2745
|
+
const getKeyBindings = async (assetDir, platform) => {
|
|
2746
|
+
const extensions = await getAllExtensions(assetDir, platform);
|
|
2747
|
+
const keybindings = [];
|
|
2748
|
+
for (const extension of extensions) {
|
|
2749
|
+
if (!Array.isArray(extension.keybindings)) {
|
|
2750
|
+
continue;
|
|
2751
|
+
}
|
|
2752
|
+
for (const keybinding of extension.keybindings) {
|
|
2753
|
+
const normalized = toKeyBinding(extension, keybinding);
|
|
2754
|
+
if (normalized) {
|
|
2755
|
+
keybindings.push(normalized);
|
|
2756
|
+
}
|
|
2757
|
+
}
|
|
2758
|
+
}
|
|
2759
|
+
return keybindings;
|
|
2760
|
+
};
|
|
2761
|
+
|
|
2720
2762
|
const getPortTuple = () => {
|
|
2721
2763
|
const {
|
|
2722
2764
|
port1,
|
|
@@ -2821,6 +2863,25 @@ const getCss = (extension, manifestView, assetDir, platform) => {
|
|
|
2821
2863
|
browser: css
|
|
2822
2864
|
}, assetDir, platform);
|
|
2823
2865
|
};
|
|
2866
|
+
const isAbsoluteIcon = icon => {
|
|
2867
|
+
return icon.startsWith('http://') || icon.startsWith('https://') || icon.startsWith('file://') || icon.startsWith('/');
|
|
2868
|
+
};
|
|
2869
|
+
const isRelativeIconPath = icon => {
|
|
2870
|
+
return icon.startsWith('./') || icon.startsWith('../') || icon.includes('/') || /\.(?:bmp|gif|ico|jpe?g|png|svg|webp)$/i.test(icon);
|
|
2871
|
+
};
|
|
2872
|
+
const getIcon = (extension, manifestView, registeredView, assetDir, platform) => {
|
|
2873
|
+
const manifestIcon = manifestView?.icon;
|
|
2874
|
+
if (typeof manifestIcon === 'string' && manifestIcon.length > 0) {
|
|
2875
|
+
if (isAbsoluteIcon(manifestIcon) || !isRelativeIconPath(manifestIcon)) {
|
|
2876
|
+
return manifestIcon;
|
|
2877
|
+
}
|
|
2878
|
+
return getAbsolutePath({
|
|
2879
|
+
...extension,
|
|
2880
|
+
browser: manifestIcon
|
|
2881
|
+
}, assetDir, platform);
|
|
2882
|
+
}
|
|
2883
|
+
return registeredView.icon || '';
|
|
2884
|
+
};
|
|
2824
2885
|
const getIframe = (extension, manifestView, assetDir, platform) => {
|
|
2825
2886
|
const iframe = manifestView?.iframe;
|
|
2826
2887
|
if (!iframe || typeof iframe.path !== 'string' || iframe.path.length === 0) {
|
|
@@ -2844,8 +2905,11 @@ const toView = (extension, registeredView, assetDir, platform) => {
|
|
|
2844
2905
|
...(css && {
|
|
2845
2906
|
css
|
|
2846
2907
|
}),
|
|
2847
|
-
|
|
2848
|
-
|
|
2908
|
+
...(registeredView.eventListeners && {
|
|
2909
|
+
eventListeners: registeredView.eventListeners
|
|
2910
|
+
}),
|
|
2911
|
+
extensionId: getExtensionId$1(extension),
|
|
2912
|
+
icon: getIcon(extension, manifestView, registeredView, assetDir, platform),
|
|
2849
2913
|
id,
|
|
2850
2914
|
iframe: getIframe(extension, manifestView, assetDir, platform),
|
|
2851
2915
|
kind: registeredView.kind || manifestView?.kind || '',
|
|
@@ -2885,6 +2949,10 @@ const handleMessagePort = async (port, rpcId) => {
|
|
|
2885
2949
|
}
|
|
2886
2950
|
};
|
|
2887
2951
|
|
|
2952
|
+
const handleViewContextChange = async (uid, viewId, context) => {
|
|
2953
|
+
await invoke$3('ExtensionManagement.handleViewContextChange', uid, viewId, context);
|
|
2954
|
+
};
|
|
2955
|
+
|
|
2888
2956
|
const getRpcRemote = async () => {
|
|
2889
2957
|
const rpc = await create$4({
|
|
2890
2958
|
commandMap: commandMapRef,
|
|
@@ -3039,6 +3107,7 @@ const commandMap = {
|
|
|
3039
3107
|
'Extensions.getColorThemeNames': getColorThemeNames,
|
|
3040
3108
|
'Extensions.getDynamicWebExtensions': getDynamicWebExtensions,
|
|
3041
3109
|
'Extensions.getExtension': getExtension,
|
|
3110
|
+
'Extensions.getKeyBindings': getKeyBindings,
|
|
3042
3111
|
'Extensions.getLanguages': getLanguages,
|
|
3043
3112
|
'Extensions.getPreference': getPreference,
|
|
3044
3113
|
'Extensions.getRemoteUrlForWebView': getRemoteUrlForWebView,
|
|
@@ -3047,6 +3116,7 @@ const commandMap = {
|
|
|
3047
3116
|
'Extensions.getStatusBarItems': getStatusBarItems,
|
|
3048
3117
|
'Extensions.getViews': getViews,
|
|
3049
3118
|
'Extensions.handleMessagePort': handleMessagePort,
|
|
3119
|
+
'Extensions.handleViewContextChange': handleViewContextChange,
|
|
3050
3120
|
'Extensions.importExtension': importExtension,
|
|
3051
3121
|
'Extensions.initialize': initialize,
|
|
3052
3122
|
'Extensions.install': installExtension,
|