@lvce-editor/extension-management-worker 3.4.0 → 4.1.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.
|
@@ -608,7 +608,7 @@ const execute = (command, ...args) => {
|
|
|
608
608
|
|
|
609
609
|
const Two$1 = '2.0';
|
|
610
610
|
const callbacks = Object.create(null);
|
|
611
|
-
const get$
|
|
611
|
+
const get$5 = id => {
|
|
612
612
|
return callbacks[id];
|
|
613
613
|
};
|
|
614
614
|
const remove$1 = id => {
|
|
@@ -757,7 +757,7 @@ const warn$1 = (...args) => {
|
|
|
757
757
|
console.warn(...args);
|
|
758
758
|
};
|
|
759
759
|
const resolve = (id, response) => {
|
|
760
|
-
const fn = get$
|
|
760
|
+
const fn = get$5(id);
|
|
761
761
|
if (!fn) {
|
|
762
762
|
console.log(response);
|
|
763
763
|
warn$1(`callback ${id} may already be disposed`);
|
|
@@ -1215,33 +1215,33 @@ const createMockRpc = ({
|
|
|
1215
1215
|
return mockRpc;
|
|
1216
1216
|
};
|
|
1217
1217
|
|
|
1218
|
-
const rpcs$
|
|
1219
|
-
const set$
|
|
1220
|
-
rpcs$
|
|
1218
|
+
const rpcs$2 = Object.create(null);
|
|
1219
|
+
const set$7 = (id, rpc) => {
|
|
1220
|
+
rpcs$2[id] = rpc;
|
|
1221
1221
|
};
|
|
1222
|
-
const get$
|
|
1223
|
-
return rpcs$
|
|
1222
|
+
const get$4 = id => {
|
|
1223
|
+
return rpcs$2[id];
|
|
1224
1224
|
};
|
|
1225
1225
|
const remove = id => {
|
|
1226
|
-
delete rpcs$
|
|
1226
|
+
delete rpcs$2[id];
|
|
1227
1227
|
};
|
|
1228
1228
|
|
|
1229
1229
|
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
1230
1230
|
const create$1 = rpcId => {
|
|
1231
1231
|
return {
|
|
1232
1232
|
async dispose() {
|
|
1233
|
-
const rpc = get$
|
|
1233
|
+
const rpc = get$4(rpcId);
|
|
1234
1234
|
await rpc.dispose();
|
|
1235
1235
|
},
|
|
1236
1236
|
// @ts-ignore
|
|
1237
1237
|
invoke(method, ...params) {
|
|
1238
|
-
const rpc = get$
|
|
1238
|
+
const rpc = get$4(rpcId);
|
|
1239
1239
|
// @ts-ignore
|
|
1240
1240
|
return rpc.invoke(method, ...params);
|
|
1241
1241
|
},
|
|
1242
1242
|
// @ts-ignore
|
|
1243
1243
|
invokeAndTransfer(method, ...params) {
|
|
1244
|
-
const rpc = get$
|
|
1244
|
+
const rpc = get$4(rpcId);
|
|
1245
1245
|
// @ts-ignore
|
|
1246
1246
|
return rpc.invokeAndTransfer(method, ...params);
|
|
1247
1247
|
},
|
|
@@ -1249,7 +1249,7 @@ const create$1 = rpcId => {
|
|
|
1249
1249
|
const mockRpc = createMockRpc({
|
|
1250
1250
|
commandMap
|
|
1251
1251
|
});
|
|
1252
|
-
set$
|
|
1252
|
+
set$7(rpcId, mockRpc);
|
|
1253
1253
|
// @ts-ignore
|
|
1254
1254
|
mockRpc[Symbol.dispose] = () => {
|
|
1255
1255
|
remove(rpcId);
|
|
@@ -1258,7 +1258,7 @@ const create$1 = rpcId => {
|
|
|
1258
1258
|
return mockRpc;
|
|
1259
1259
|
},
|
|
1260
1260
|
set(rpc) {
|
|
1261
|
-
set$
|
|
1261
|
+
set$7(rpcId, rpc);
|
|
1262
1262
|
}
|
|
1263
1263
|
};
|
|
1264
1264
|
};
|
|
@@ -1274,13 +1274,45 @@ const RendererWorker = 1;
|
|
|
1274
1274
|
const SharedProcess = 1492;
|
|
1275
1275
|
|
|
1276
1276
|
const {
|
|
1277
|
+
dispose,
|
|
1277
1278
|
invoke: invoke$4,
|
|
1278
|
-
|
|
1279
|
+
invokeAndTransfer: invokeAndTransfer$2,
|
|
1280
|
+
registerMockRpc,
|
|
1281
|
+
set: set$6
|
|
1279
1282
|
} = create$1(ExtensionHostWorker);
|
|
1283
|
+
const executeReferenceProvider = async (id, offset) => {
|
|
1284
|
+
// @ts-ignore
|
|
1285
|
+
return invoke$4('ExtensionHostReference.executeReferenceProvider', id, offset);
|
|
1286
|
+
};
|
|
1287
|
+
const executeFileReferenceProvider = async id => {
|
|
1288
|
+
// @ts-ignore
|
|
1289
|
+
return invoke$4('ExtensionHostReference.executeFileReferenceProvider', id);
|
|
1290
|
+
};
|
|
1291
|
+
const getRuntimeStatus$2 = async extensionId => {
|
|
1292
|
+
// @ts-ignore
|
|
1293
|
+
return invoke$4('ExtensionHost.getRuntimeStatus', extensionId);
|
|
1294
|
+
};
|
|
1295
|
+
const getEnabledOutputProviderIds = async () => {
|
|
1296
|
+
const channels = await invoke$4('Output.getEnabledProviders');
|
|
1297
|
+
return channels;
|
|
1298
|
+
};
|
|
1299
|
+
|
|
1300
|
+
const ExtensionHost = {
|
|
1301
|
+
__proto__: null,
|
|
1302
|
+
dispose,
|
|
1303
|
+
executeFileReferenceProvider,
|
|
1304
|
+
executeReferenceProvider,
|
|
1305
|
+
getEnabledOutputProviderIds,
|
|
1306
|
+
getRuntimeStatus: getRuntimeStatus$2,
|
|
1307
|
+
invoke: invoke$4,
|
|
1308
|
+
invokeAndTransfer: invokeAndTransfer$2,
|
|
1309
|
+
registerMockRpc,
|
|
1310
|
+
set: set$6
|
|
1311
|
+
};
|
|
1280
1312
|
|
|
1281
1313
|
const {
|
|
1282
1314
|
invoke: invoke$3,
|
|
1283
|
-
set: set$
|
|
1315
|
+
set: set$5
|
|
1284
1316
|
} = create$1(FileSystemWorker);
|
|
1285
1317
|
const readFile = async uri => {
|
|
1286
1318
|
return invoke$3('FileSystem.readFile', uri);
|
|
@@ -1295,7 +1327,7 @@ const exists = async uri => {
|
|
|
1295
1327
|
const {
|
|
1296
1328
|
invoke: invoke$2,
|
|
1297
1329
|
invokeAndTransfer: invokeAndTransfer$1,
|
|
1298
|
-
set: set$
|
|
1330
|
+
set: set$4
|
|
1299
1331
|
} = create$1(RendererWorker);
|
|
1300
1332
|
const sendMessagePortToIconThemeWorker = async (port, rpcId) => {
|
|
1301
1333
|
const command = 'IconTheme.handleMessagePort';
|
|
@@ -1316,7 +1348,7 @@ const sendMessagePortToSharedProcess = async port => {
|
|
|
1316
1348
|
|
|
1317
1349
|
const {
|
|
1318
1350
|
invoke: invoke$1,
|
|
1319
|
-
set: set$
|
|
1351
|
+
set: set$3
|
|
1320
1352
|
} = create$1(SharedProcess);
|
|
1321
1353
|
|
|
1322
1354
|
const create = () => {
|
|
@@ -1364,14 +1396,14 @@ const createEmptyRuntimeStatus = id => {
|
|
|
1364
1396
|
};
|
|
1365
1397
|
};
|
|
1366
1398
|
let extensionsState = createInitialState();
|
|
1367
|
-
const get$
|
|
1399
|
+
const get$3 = () => {
|
|
1368
1400
|
return extensionsState;
|
|
1369
1401
|
};
|
|
1370
|
-
const set$
|
|
1402
|
+
const set$2 = newState => {
|
|
1371
1403
|
extensionsState = newState;
|
|
1372
1404
|
};
|
|
1373
1405
|
const update = newState => {
|
|
1374
|
-
set$
|
|
1406
|
+
set$2({
|
|
1375
1407
|
...extensionsState,
|
|
1376
1408
|
...newState
|
|
1377
1409
|
});
|
|
@@ -1485,10 +1517,10 @@ const rejectAfterTimeout = async (timeout, token) => {
|
|
|
1485
1517
|
}
|
|
1486
1518
|
throw new Error(`Activation timeout of ${timeout}ms exceeded`);
|
|
1487
1519
|
};
|
|
1488
|
-
const activate = async (extensionId, extension) => {
|
|
1489
|
-
await invoke
|
|
1520
|
+
const activate = async (extensionId, extension, extensionHost) => {
|
|
1521
|
+
await extensionHost.invoke('ExtensionHost.activateExtension3', extensionId, extension);
|
|
1490
1522
|
};
|
|
1491
|
-
const activateExtension2 = async (extensionId, extension, absolutePath) => {
|
|
1523
|
+
const activateExtension2 = async (extensionId, extension, absolutePath, extensionHost = ExtensionHost) => {
|
|
1492
1524
|
string(extensionId);
|
|
1493
1525
|
object(extension);
|
|
1494
1526
|
string(absolutePath);
|
|
@@ -1499,7 +1531,7 @@ const activateExtension2 = async (extensionId, extension, absolutePath) => {
|
|
|
1499
1531
|
activationStartTime: startTime,
|
|
1500
1532
|
status: Activating
|
|
1501
1533
|
});
|
|
1502
|
-
await Promise.race([activate(extensionId, extension), rejectAfterTimeout(activationTimeout, token)]);
|
|
1534
|
+
await Promise.race([activate(extensionId, extension, extensionHost), rejectAfterTimeout(activationTimeout, token)]);
|
|
1503
1535
|
const endTime = performance.now();
|
|
1504
1536
|
const time = endTime - startTime;
|
|
1505
1537
|
updateRuntimeStatus(extensionId, {
|
|
@@ -1524,6 +1556,42 @@ const activateExtension2 = async (extensionId, extension, absolutePath) => {
|
|
|
1524
1556
|
}
|
|
1525
1557
|
};
|
|
1526
1558
|
|
|
1559
|
+
const commandMapRef = {};
|
|
1560
|
+
|
|
1561
|
+
const rpcs$1 = Object.create(null);
|
|
1562
|
+
const get$2 = extensionId => {
|
|
1563
|
+
return rpcs$1[extensionId];
|
|
1564
|
+
};
|
|
1565
|
+
const getAll = () => {
|
|
1566
|
+
return Object.values(rpcs$1);
|
|
1567
|
+
};
|
|
1568
|
+
const set$1 = (extensionId, rpc) => {
|
|
1569
|
+
rpcs$1[extensionId] = rpc;
|
|
1570
|
+
};
|
|
1571
|
+
|
|
1572
|
+
/* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
|
|
1573
|
+
const invoke = (method, ...params) => {
|
|
1574
|
+
return invoke$2(method, ...params);
|
|
1575
|
+
};
|
|
1576
|
+
const invokeAndTransfer = (method, ...params) => {
|
|
1577
|
+
return invokeAndTransfer$1(method, ...params);
|
|
1578
|
+
};
|
|
1579
|
+
|
|
1580
|
+
const getOrCreateIsolatedExtensionHostWorker = async extensionId => {
|
|
1581
|
+
const existingRpc = get$2(extensionId);
|
|
1582
|
+
if (existingRpc) {
|
|
1583
|
+
return existingRpc;
|
|
1584
|
+
}
|
|
1585
|
+
const rpc = await create$7({
|
|
1586
|
+
commandMap: commandMapRef,
|
|
1587
|
+
send(port) {
|
|
1588
|
+
return invokeAndTransfer('LaunchIsolatedExtensionHostWorker.launchIsolatedExtensionHostWorker', port, extensionId);
|
|
1589
|
+
}
|
|
1590
|
+
});
|
|
1591
|
+
set$1(extensionId, rpc);
|
|
1592
|
+
return rpc;
|
|
1593
|
+
};
|
|
1594
|
+
|
|
1527
1595
|
const rpcs = Object.create(null);
|
|
1528
1596
|
const add = (id, rpc) => {
|
|
1529
1597
|
rpcs[id] = rpc;
|
|
@@ -1567,7 +1635,7 @@ const handleRpcInfos = (extension, platform) => {
|
|
|
1567
1635
|
}
|
|
1568
1636
|
};
|
|
1569
1637
|
|
|
1570
|
-
const importExtension = async (extensionId, absolutePath, activationEvent) => {
|
|
1638
|
+
const importExtension = async (extensionId, absolutePath, activationEvent, extensionHost = ExtensionHost) => {
|
|
1571
1639
|
try {
|
|
1572
1640
|
string(absolutePath);
|
|
1573
1641
|
const startTime = performance.now();
|
|
@@ -1583,7 +1651,7 @@ const importExtension = async (extensionId, absolutePath, activationEvent) => {
|
|
|
1583
1651
|
status: Importing
|
|
1584
1652
|
});
|
|
1585
1653
|
try {
|
|
1586
|
-
await invoke
|
|
1654
|
+
await extensionHost.invoke('ExtensionHost.importExtension2', extensionId, absolutePath);
|
|
1587
1655
|
const endTime = performance.now();
|
|
1588
1656
|
const time = endTime - startTime;
|
|
1589
1657
|
updateRuntimeStatus(extensionId, {
|
|
@@ -1615,11 +1683,16 @@ const interExtensionId = path => {
|
|
|
1615
1683
|
return path.slice(slashIndex + 1);
|
|
1616
1684
|
};
|
|
1617
1685
|
|
|
1686
|
+
const isExtensionIsolated = extension => {
|
|
1687
|
+
return extension?.isolated === true;
|
|
1688
|
+
};
|
|
1689
|
+
|
|
1618
1690
|
const activateExtension3 = async (extension, absolutePath, activationEvent, platform) => {
|
|
1619
1691
|
handleRpcInfos(extension, platform);
|
|
1620
1692
|
const extensionId = extension.id || interExtensionId(extension.uri);
|
|
1621
|
-
await
|
|
1622
|
-
await
|
|
1693
|
+
const extensionHost = isExtensionIsolated(extension) ? await getOrCreateIsolatedExtensionHostWorker(extensionId) : undefined;
|
|
1694
|
+
await importExtension(extensionId, absolutePath, activationEvent, extensionHost);
|
|
1695
|
+
await activateExtension2(extensionId, extension, absolutePath, extensionHost);
|
|
1623
1696
|
};
|
|
1624
1697
|
|
|
1625
1698
|
const getJson$1 = async url => {
|
|
@@ -1667,14 +1740,6 @@ const addWebExtension = async path => {
|
|
|
1667
1740
|
|
|
1668
1741
|
const ModuleWorkerAndWorkaroundForChromeDevtoolsBug = 6;
|
|
1669
1742
|
|
|
1670
|
-
/* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
|
|
1671
|
-
const invoke = (method, ...params) => {
|
|
1672
|
-
return invoke$2(method, ...params);
|
|
1673
|
-
};
|
|
1674
|
-
const invokeAndTransfer = (method, ...params) => {
|
|
1675
|
-
return invokeAndTransfer$1(method, ...params);
|
|
1676
|
-
};
|
|
1677
|
-
|
|
1678
1743
|
const createWebViewWorkerRpc2 = async (rpcInfo, port) => {
|
|
1679
1744
|
// TODO this function is called from the iframe worker to create a direct
|
|
1680
1745
|
// connection between a webview/iframe and it's webworker. For this to work
|
|
@@ -1764,13 +1829,13 @@ const disabledExtensionsCacheKey = '/cache/disabledExtensions.json';
|
|
|
1764
1829
|
const disableExtension2$1 = async (id, platform) => {
|
|
1765
1830
|
const isTest = platform === Test;
|
|
1766
1831
|
const isWeb = platform === Web;
|
|
1767
|
-
const oldState = get$
|
|
1832
|
+
const oldState = get$3(); // TODO maybe pass in an application id? Would allow multiple editors with different extensions.
|
|
1768
1833
|
if (isTest) {
|
|
1769
1834
|
const newState = {
|
|
1770
1835
|
...oldState,
|
|
1771
1836
|
disabledIds: [...oldState.disabledIds, id]
|
|
1772
1837
|
};
|
|
1773
|
-
set$
|
|
1838
|
+
set$2(newState);
|
|
1774
1839
|
} else if (isWeb) {
|
|
1775
1840
|
const cached = await getJson(disabledExtensionsCacheKey);
|
|
1776
1841
|
const oldDisabled = cached?.disabledExtensions || [];
|
|
@@ -1786,13 +1851,13 @@ const disableExtension2$1 = async (id, platform) => {
|
|
|
1786
1851
|
const enableExtension2$1 = async (id, platform) => {
|
|
1787
1852
|
const isTest = platform === Test;
|
|
1788
1853
|
const isWeb = platform === Web;
|
|
1789
|
-
const oldState = get$
|
|
1854
|
+
const oldState = get$3();
|
|
1790
1855
|
if (isTest) {
|
|
1791
1856
|
const newState = {
|
|
1792
1857
|
...oldState,
|
|
1793
1858
|
disabledIds: oldState.disabledIds.filter(existing => existing !== id)
|
|
1794
1859
|
};
|
|
1795
|
-
set$
|
|
1860
|
+
set$2(newState);
|
|
1796
1861
|
} else if (isWeb) {
|
|
1797
1862
|
const cached = await getJson(disabledExtensionsCacheKey);
|
|
1798
1863
|
const oldDisabled = cached?.disabledExtensions || [];
|
|
@@ -1821,7 +1886,7 @@ const disableExtension2 = async (id, platform) => {
|
|
|
1821
1886
|
};
|
|
1822
1887
|
|
|
1823
1888
|
const disableExtension = async (id, isTest) => {
|
|
1824
|
-
const oldState = get$
|
|
1889
|
+
const oldState = get$3();
|
|
1825
1890
|
return disableExtension2(id, oldState.platform);
|
|
1826
1891
|
};
|
|
1827
1892
|
|
|
@@ -1848,7 +1913,7 @@ const enableExtension2 = async (id, platform) => {
|
|
|
1848
1913
|
};
|
|
1849
1914
|
|
|
1850
1915
|
const enableExtension = async (id, isTest) => {
|
|
1851
|
-
const oldState = get$
|
|
1916
|
+
const oldState = get$3();
|
|
1852
1917
|
return enableExtension2(id, oldState.platform);
|
|
1853
1918
|
};
|
|
1854
1919
|
|
|
@@ -2017,7 +2082,7 @@ const getColorThemeUri = (extensions, colorThemeId) => {
|
|
|
2017
2082
|
};
|
|
2018
2083
|
|
|
2019
2084
|
const getDynamicWebExtensions = () => {
|
|
2020
|
-
return get$
|
|
2085
|
+
return get$3().webExtensions;
|
|
2021
2086
|
};
|
|
2022
2087
|
|
|
2023
2088
|
const getWebExtensionsUrl = assetDir => {
|
|
@@ -2201,7 +2266,14 @@ const getRuntimeStatus = extensionId => {
|
|
|
2201
2266
|
return getRuntimeStatus$1(extensionId) || emptyStatus;
|
|
2202
2267
|
};
|
|
2203
2268
|
|
|
2204
|
-
const
|
|
2269
|
+
const getItems = async rpc => {
|
|
2270
|
+
return rpc.invoke('ExtensionApi.getStatusBarItems');
|
|
2271
|
+
};
|
|
2272
|
+
const getStatusBarItems = async () => {
|
|
2273
|
+
const rpcs = getAll();
|
|
2274
|
+
const results = await Promise.all(rpcs.map(getItems));
|
|
2275
|
+
return results.flat();
|
|
2276
|
+
};
|
|
2205
2277
|
|
|
2206
2278
|
const handleMessagePort = async port => {
|
|
2207
2279
|
await create$8({
|
|
@@ -2239,7 +2311,7 @@ const getRpc = async platform => {
|
|
|
2239
2311
|
const initializeSharedProcess = async platform => {
|
|
2240
2312
|
const rpc = await getRpc(platform);
|
|
2241
2313
|
if (rpc) {
|
|
2242
|
-
set$
|
|
2314
|
+
set$3(rpc);
|
|
2243
2315
|
}
|
|
2244
2316
|
};
|
|
2245
2317
|
|
|
@@ -2331,6 +2403,7 @@ const commandMap = {
|
|
|
2331
2403
|
'Extensions.getRemoteUrlForWebView': getRemoteUrlForWebView,
|
|
2332
2404
|
'Extensions.getRpcInfo': getRpcInfo,
|
|
2333
2405
|
'Extensions.getRuntimeStatus': getRuntimeStatus,
|
|
2406
|
+
'Extensions.getStatusBarItems': getStatusBarItems,
|
|
2334
2407
|
'Extensions.handleMessagePort': handleMessagePort,
|
|
2335
2408
|
'Extensions.importExtension': importExtension,
|
|
2336
2409
|
'Extensions.initialize': initialize,
|
|
@@ -2346,7 +2419,7 @@ const initializeExtensionHostWorker = async () => {
|
|
|
2346
2419
|
await sendMessagePortToExtensionHostWorker(port, 0);
|
|
2347
2420
|
}
|
|
2348
2421
|
});
|
|
2349
|
-
set$
|
|
2422
|
+
set$6(rpc);
|
|
2350
2423
|
};
|
|
2351
2424
|
|
|
2352
2425
|
const initializeFileSystemWorker = async () => {
|
|
@@ -2356,7 +2429,7 @@ const initializeFileSystemWorker = async () => {
|
|
|
2356
2429
|
await sendMessagePortToFileSystemWorker(port, 0);
|
|
2357
2430
|
}
|
|
2358
2431
|
});
|
|
2359
|
-
set$
|
|
2432
|
+
set$5(rpc);
|
|
2360
2433
|
};
|
|
2361
2434
|
|
|
2362
2435
|
const initializeIframeWorker = async () => {
|
|
@@ -2373,7 +2446,7 @@ const initializeRendererWorker = async () => {
|
|
|
2373
2446
|
const rpc = await create$2({
|
|
2374
2447
|
commandMap: commandMap
|
|
2375
2448
|
});
|
|
2376
|
-
set$
|
|
2449
|
+
set$4(rpc);
|
|
2377
2450
|
};
|
|
2378
2451
|
|
|
2379
2452
|
const listen = async () => {
|