@lvce-editor/extension-management-worker 4.47.0 → 4.49.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.
|
@@ -64,7 +64,7 @@ const Object$1 = 1;
|
|
|
64
64
|
const Number = 2;
|
|
65
65
|
const Array$1 = 3;
|
|
66
66
|
const String$1 = 4;
|
|
67
|
-
const Boolean
|
|
67
|
+
const Boolean = 5;
|
|
68
68
|
const Function = 6;
|
|
69
69
|
const Null = 7;
|
|
70
70
|
const Unknown = 8;
|
|
@@ -85,7 +85,7 @@ const getType = value => {
|
|
|
85
85
|
}
|
|
86
86
|
return Object$1;
|
|
87
87
|
case 'boolean':
|
|
88
|
-
return Boolean
|
|
88
|
+
return Boolean;
|
|
89
89
|
default:
|
|
90
90
|
return Unknown;
|
|
91
91
|
}
|
|
@@ -546,7 +546,7 @@ const waitForWebSocketToBeOpen = webSocket => {
|
|
|
546
546
|
open: Open
|
|
547
547
|
});
|
|
548
548
|
};
|
|
549
|
-
const create$
|
|
549
|
+
const create$c = async ({
|
|
550
550
|
webSocket
|
|
551
551
|
}) => {
|
|
552
552
|
const firstWebSocketEvent = await waitForWebSocketToBeOpen(webSocket);
|
|
@@ -583,7 +583,7 @@ const wrap = webSocket => {
|
|
|
583
583
|
};
|
|
584
584
|
const IpcParentWithWebSocket$1 = {
|
|
585
585
|
__proto__: null,
|
|
586
|
-
create: create$
|
|
586
|
+
create: create$c,
|
|
587
587
|
wrap
|
|
588
588
|
};
|
|
589
589
|
|
|
@@ -863,7 +863,7 @@ const getErrorResponse = (id, error, preparePrettyError, logError) => {
|
|
|
863
863
|
const errorProperty = getErrorProperty(error, prettyError);
|
|
864
864
|
return create$1$1(id, errorProperty);
|
|
865
865
|
};
|
|
866
|
-
const create$
|
|
866
|
+
const create$b = (message, result) => {
|
|
867
867
|
return {
|
|
868
868
|
id: message.id,
|
|
869
869
|
jsonrpc: Two$1,
|
|
@@ -872,7 +872,7 @@ const create$c = (message, result) => {
|
|
|
872
872
|
};
|
|
873
873
|
const getSuccessResponse = (message, result) => {
|
|
874
874
|
const resultProperty = result ?? null;
|
|
875
|
-
return create$
|
|
875
|
+
return create$b(message, resultProperty);
|
|
876
876
|
};
|
|
877
877
|
const getErrorResponseSimple = (id, error) => {
|
|
878
878
|
return {
|
|
@@ -966,7 +966,7 @@ const handleJsonRpcMessage = async (...args) => {
|
|
|
966
966
|
|
|
967
967
|
const Two = '2.0';
|
|
968
968
|
|
|
969
|
-
const create$
|
|
969
|
+
const create$a = (method, params) => {
|
|
970
970
|
return {
|
|
971
971
|
jsonrpc: Two,
|
|
972
972
|
method,
|
|
@@ -974,7 +974,7 @@ const create$b = (method, params) => {
|
|
|
974
974
|
};
|
|
975
975
|
};
|
|
976
976
|
|
|
977
|
-
const create$
|
|
977
|
+
const create$9 = (id, method, params) => {
|
|
978
978
|
const message = {
|
|
979
979
|
id,
|
|
980
980
|
jsonrpc: Two,
|
|
@@ -985,12 +985,12 @@ const create$a = (id, method, params) => {
|
|
|
985
985
|
};
|
|
986
986
|
|
|
987
987
|
let id = 0;
|
|
988
|
-
const create$
|
|
988
|
+
const create$8 = () => {
|
|
989
989
|
return ++id;
|
|
990
990
|
};
|
|
991
991
|
|
|
992
992
|
const registerPromise = map => {
|
|
993
|
-
const id = create$
|
|
993
|
+
const id = create$8();
|
|
994
994
|
const {
|
|
995
995
|
promise,
|
|
996
996
|
resolve
|
|
@@ -1007,7 +1007,7 @@ const invokeHelper = async (callbacks, ipc, method, params, useSendAndTransfer)
|
|
|
1007
1007
|
id,
|
|
1008
1008
|
promise
|
|
1009
1009
|
} = registerPromise(callbacks);
|
|
1010
|
-
const message = create$
|
|
1010
|
+
const message = create$9(id, method, params);
|
|
1011
1011
|
if (useSendAndTransfer && ipc.sendAndTransfer) {
|
|
1012
1012
|
ipc.sendAndTransfer(message);
|
|
1013
1013
|
} else {
|
|
@@ -1043,7 +1043,7 @@ const createRpc = ipc => {
|
|
|
1043
1043
|
* @deprecated
|
|
1044
1044
|
*/
|
|
1045
1045
|
send(method, ...params) {
|
|
1046
|
-
const message = create$
|
|
1046
|
+
const message = create$a(method, params);
|
|
1047
1047
|
ipc.send(message);
|
|
1048
1048
|
}
|
|
1049
1049
|
};
|
|
@@ -1083,7 +1083,7 @@ const listen$1 = async (module, options) => {
|
|
|
1083
1083
|
return ipc;
|
|
1084
1084
|
};
|
|
1085
1085
|
|
|
1086
|
-
const create$
|
|
1086
|
+
const create$7 = async ({
|
|
1087
1087
|
commandMap,
|
|
1088
1088
|
isMessagePortOpen = true,
|
|
1089
1089
|
messagePort
|
|
@@ -1101,7 +1101,7 @@ const create$8 = async ({
|
|
|
1101
1101
|
return rpc;
|
|
1102
1102
|
};
|
|
1103
1103
|
|
|
1104
|
-
const create$
|
|
1104
|
+
const create$6 = async ({
|
|
1105
1105
|
commandMap,
|
|
1106
1106
|
isMessagePortOpen,
|
|
1107
1107
|
send
|
|
@@ -1111,7 +1111,7 @@ const create$7 = async ({
|
|
|
1111
1111
|
port2
|
|
1112
1112
|
} = new MessageChannel();
|
|
1113
1113
|
await send(port1);
|
|
1114
|
-
return create$
|
|
1114
|
+
return create$7({
|
|
1115
1115
|
commandMap,
|
|
1116
1116
|
isMessagePortOpen,
|
|
1117
1117
|
messagePort: port2
|
|
@@ -1146,13 +1146,13 @@ const createSharedLazyRpc = factory => {
|
|
|
1146
1146
|
};
|
|
1147
1147
|
};
|
|
1148
1148
|
|
|
1149
|
-
const create$
|
|
1149
|
+
const create$5 = async ({
|
|
1150
1150
|
commandMap,
|
|
1151
1151
|
isMessagePortOpen,
|
|
1152
1152
|
send
|
|
1153
1153
|
}) => {
|
|
1154
1154
|
return createSharedLazyRpc(() => {
|
|
1155
|
-
return create$
|
|
1155
|
+
return create$6({
|
|
1156
1156
|
commandMap,
|
|
1157
1157
|
isMessagePortOpen,
|
|
1158
1158
|
send
|
|
@@ -1180,7 +1180,7 @@ const getProtocol = () => {
|
|
|
1180
1180
|
return location.protocol;
|
|
1181
1181
|
};
|
|
1182
1182
|
|
|
1183
|
-
const create$
|
|
1183
|
+
const create$4 = async ({
|
|
1184
1184
|
commandMap,
|
|
1185
1185
|
webSocket
|
|
1186
1186
|
}) => {
|
|
@@ -1212,7 +1212,7 @@ const connect = async ({
|
|
|
1212
1212
|
}) => {
|
|
1213
1213
|
const webSocket = new WebSocket(wsUrl);
|
|
1214
1214
|
try {
|
|
1215
|
-
const rpc = await create$
|
|
1215
|
+
const rpc = await create$4({
|
|
1216
1216
|
commandMap,
|
|
1217
1217
|
webSocket
|
|
1218
1218
|
});
|
|
@@ -1225,7 +1225,7 @@ const connect = async ({
|
|
|
1225
1225
|
throw error;
|
|
1226
1226
|
}
|
|
1227
1227
|
};
|
|
1228
|
-
const create$
|
|
1228
|
+
const create$3 = async ({
|
|
1229
1229
|
commandMap,
|
|
1230
1230
|
onClose,
|
|
1231
1231
|
type
|
|
@@ -1254,7 +1254,7 @@ const create$4 = async ({
|
|
|
1254
1254
|
return connection.rpc;
|
|
1255
1255
|
};
|
|
1256
1256
|
|
|
1257
|
-
const create$
|
|
1257
|
+
const create$2 = async ({
|
|
1258
1258
|
commandMap,
|
|
1259
1259
|
isMessagePortOpen,
|
|
1260
1260
|
messagePort
|
|
@@ -1271,7 +1271,7 @@ const create$3 = async ({
|
|
|
1271
1271
|
return rpc;
|
|
1272
1272
|
};
|
|
1273
1273
|
|
|
1274
|
-
const create$
|
|
1274
|
+
const create$1 = async ({
|
|
1275
1275
|
commandMap
|
|
1276
1276
|
}) => {
|
|
1277
1277
|
// TODO create a commandMap per rpc instance
|
|
@@ -1303,7 +1303,7 @@ const createMockRpc = ({
|
|
|
1303
1303
|
};
|
|
1304
1304
|
|
|
1305
1305
|
const rpcs$2 = Object.create(null);
|
|
1306
|
-
const set$
|
|
1306
|
+
const set$a = (id, rpc) => {
|
|
1307
1307
|
rpcs$2[id] = rpc;
|
|
1308
1308
|
};
|
|
1309
1309
|
const get$6 = id => {
|
|
@@ -1314,7 +1314,7 @@ const remove$2 = id => {
|
|
|
1314
1314
|
};
|
|
1315
1315
|
|
|
1316
1316
|
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
1317
|
-
const create
|
|
1317
|
+
const create = rpcId => {
|
|
1318
1318
|
return {
|
|
1319
1319
|
async dispose() {
|
|
1320
1320
|
const rpc = get$6(rpcId);
|
|
@@ -1336,7 +1336,7 @@ const create$1 = rpcId => {
|
|
|
1336
1336
|
const mockRpc = createMockRpc({
|
|
1337
1337
|
commandMap
|
|
1338
1338
|
});
|
|
1339
|
-
set$
|
|
1339
|
+
set$a(rpcId, mockRpc);
|
|
1340
1340
|
// @ts-ignore
|
|
1341
1341
|
mockRpc[Symbol.dispose] = () => {
|
|
1342
1342
|
remove$2(rpcId);
|
|
@@ -1345,15 +1345,15 @@ const create$1 = rpcId => {
|
|
|
1345
1345
|
return mockRpc;
|
|
1346
1346
|
},
|
|
1347
1347
|
set(rpc) {
|
|
1348
|
-
set$
|
|
1348
|
+
set$a(rpcId, rpc);
|
|
1349
1349
|
}
|
|
1350
1350
|
};
|
|
1351
1351
|
};
|
|
1352
1352
|
|
|
1353
1353
|
const {
|
|
1354
|
-
invoke: invoke$
|
|
1355
|
-
set: set$
|
|
1356
|
-
} = create
|
|
1354
|
+
invoke: invoke$5,
|
|
1355
|
+
set: set$9
|
|
1356
|
+
} = create(6010);
|
|
1357
1357
|
|
|
1358
1358
|
const Web = 1;
|
|
1359
1359
|
const Electron = 2;
|
|
@@ -1361,57 +1361,19 @@ const Remote = 3;
|
|
|
1361
1361
|
const Test = 4;
|
|
1362
1362
|
|
|
1363
1363
|
const ErrorWorker = 3308;
|
|
1364
|
-
const ExtensionHostWorker = 44;
|
|
1365
1364
|
const FileSystemWorker = 209;
|
|
1366
1365
|
const RendererWorker = 1;
|
|
1367
1366
|
const SharedProcess = 1492;
|
|
1368
1367
|
|
|
1369
1368
|
const {
|
|
1370
|
-
invoke: invoke$5,
|
|
1371
|
-
set: set$9
|
|
1372
|
-
} = create$1(ErrorWorker);
|
|
1373
|
-
|
|
1374
|
-
const {
|
|
1375
|
-
dispose,
|
|
1376
1369
|
invoke: invoke$4,
|
|
1377
|
-
invokeAndTransfer: invokeAndTransfer$2,
|
|
1378
|
-
registerMockRpc,
|
|
1379
1370
|
set: set$8
|
|
1380
|
-
} = create
|
|
1381
|
-
const executeReferenceProvider = async (id, offset) => {
|
|
1382
|
-
// @ts-ignore
|
|
1383
|
-
return invoke$4('ExtensionHostReference.executeReferenceProvider', id, offset);
|
|
1384
|
-
};
|
|
1385
|
-
const executeFileReferenceProvider = async id => {
|
|
1386
|
-
// @ts-ignore
|
|
1387
|
-
return invoke$4('ExtensionHostReference.executeFileReferenceProvider', id);
|
|
1388
|
-
};
|
|
1389
|
-
const getRuntimeStatus$2 = async extensionId => {
|
|
1390
|
-
// @ts-ignore
|
|
1391
|
-
return invoke$4('ExtensionHost.getRuntimeStatus', extensionId);
|
|
1392
|
-
};
|
|
1393
|
-
const getEnabledOutputProviderIds = async () => {
|
|
1394
|
-
const channels = await invoke$4('Output.getEnabledProviders');
|
|
1395
|
-
return channels;
|
|
1396
|
-
};
|
|
1397
|
-
|
|
1398
|
-
const ExtensionHost = {
|
|
1399
|
-
__proto__: null,
|
|
1400
|
-
dispose,
|
|
1401
|
-
executeFileReferenceProvider,
|
|
1402
|
-
executeReferenceProvider,
|
|
1403
|
-
getEnabledOutputProviderIds,
|
|
1404
|
-
getRuntimeStatus: getRuntimeStatus$2,
|
|
1405
|
-
invoke: invoke$4,
|
|
1406
|
-
invokeAndTransfer: invokeAndTransfer$2,
|
|
1407
|
-
registerMockRpc,
|
|
1408
|
-
set: set$8
|
|
1409
|
-
};
|
|
1371
|
+
} = create(ErrorWorker);
|
|
1410
1372
|
|
|
1411
1373
|
const {
|
|
1412
1374
|
invoke: invoke$3,
|
|
1413
1375
|
set: set$7
|
|
1414
|
-
} = create
|
|
1376
|
+
} = create(FileSystemWorker);
|
|
1415
1377
|
const readFile$1 = async uri => {
|
|
1416
1378
|
return invoke$3('FileSystem.readFile', uri);
|
|
1417
1379
|
};
|
|
@@ -1429,7 +1391,7 @@ const {
|
|
|
1429
1391
|
invoke: invoke$2,
|
|
1430
1392
|
invokeAndTransfer: invokeAndTransfer$1,
|
|
1431
1393
|
set: set$6
|
|
1432
|
-
} = create
|
|
1394
|
+
} = create(RendererWorker);
|
|
1433
1395
|
const sendMessagePortToAuthWorker = async (port, rpcId) => {
|
|
1434
1396
|
const command = 'HandleMessagePort.handleMessagePort';
|
|
1435
1397
|
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToAuthWorker', port, command, rpcId);
|
|
@@ -1446,10 +1408,6 @@ const sendMessagePortToFileSystemWorker$1 = async (port, rpcId) => {
|
|
|
1446
1408
|
const command = 'FileSystem.handleMessagePort';
|
|
1447
1409
|
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToFileSystemWorker', port, command, rpcId);
|
|
1448
1410
|
};
|
|
1449
|
-
const sendMessagePortToExtensionHostWorker = async (port, rpcId = 0) => {
|
|
1450
|
-
const command = 'HandleMessagePort.handleMessagePort2';
|
|
1451
|
-
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
|
|
1452
|
-
};
|
|
1453
1411
|
const sendMessagePortToSharedProcess = async port => {
|
|
1454
1412
|
const command = 'HandleElectronMessagePort.handleElectronMessagePort';
|
|
1455
1413
|
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToSharedProcess', port, command, 0);
|
|
@@ -1458,22 +1416,9 @@ const sendMessagePortToSharedProcess = async port => {
|
|
|
1458
1416
|
const {
|
|
1459
1417
|
invoke: invoke$1,
|
|
1460
1418
|
set: set$5
|
|
1461
|
-
} = create
|
|
1462
|
-
|
|
1463
|
-
const create = () => {
|
|
1464
|
-
return {
|
|
1465
|
-
finished: false
|
|
1466
|
-
};
|
|
1467
|
-
};
|
|
1468
|
-
const cancel = token => {
|
|
1469
|
-
token.finished = true;
|
|
1470
|
-
};
|
|
1471
|
-
const isCanceled = token => {
|
|
1472
|
-
return token.finished;
|
|
1473
|
-
};
|
|
1419
|
+
} = create(SharedProcess);
|
|
1474
1420
|
|
|
1475
1421
|
const None = 0;
|
|
1476
|
-
const Importing = 1;
|
|
1477
1422
|
const Activating = 2;
|
|
1478
1423
|
const Activated = 3;
|
|
1479
1424
|
const Error$1 = 4;
|
|
@@ -1581,119 +1526,6 @@ const getErrorMessage = error => {
|
|
|
1581
1526
|
return String(error);
|
|
1582
1527
|
};
|
|
1583
1528
|
|
|
1584
|
-
const baseName = path => {
|
|
1585
|
-
const slashIndex = path.lastIndexOf('/');
|
|
1586
|
-
return path.slice(slashIndex + 1);
|
|
1587
|
-
};
|
|
1588
|
-
const getExtensionId$4 = extension => {
|
|
1589
|
-
if (extension && extension.id) {
|
|
1590
|
-
return extension.id;
|
|
1591
|
-
}
|
|
1592
|
-
if (extension && extension.path) {
|
|
1593
|
-
return baseName(extension.path);
|
|
1594
|
-
}
|
|
1595
|
-
return '<unknown>';
|
|
1596
|
-
};
|
|
1597
|
-
|
|
1598
|
-
const isImportErrorChrome = error => {
|
|
1599
|
-
return Boolean(error && error instanceof Error && error.message.startsWith('Failed to fetch dynamically imported module'));
|
|
1600
|
-
};
|
|
1601
|
-
|
|
1602
|
-
const isImportErrorFirefox = error => {
|
|
1603
|
-
return Boolean(error && error instanceof TypeError && error.message === 'error loading dynamically imported module');
|
|
1604
|
-
};
|
|
1605
|
-
|
|
1606
|
-
const isSyntaxError = error => {
|
|
1607
|
-
return error instanceof SyntaxError;
|
|
1608
|
-
};
|
|
1609
|
-
|
|
1610
|
-
const isImportError = error => {
|
|
1611
|
-
return isImportErrorChrome(error) || isImportErrorFirefox(error) || isSyntaxError(error);
|
|
1612
|
-
};
|
|
1613
|
-
|
|
1614
|
-
const sleep = duration => {
|
|
1615
|
-
const {
|
|
1616
|
-
promise,
|
|
1617
|
-
resolve
|
|
1618
|
-
} = Promise.withResolvers();
|
|
1619
|
-
setTimeout(resolve, duration);
|
|
1620
|
-
return promise;
|
|
1621
|
-
};
|
|
1622
|
-
|
|
1623
|
-
const NotFound = 404;
|
|
1624
|
-
|
|
1625
|
-
const tryToGetActualImportErrorMessage = async (url, error) => {
|
|
1626
|
-
let response;
|
|
1627
|
-
try {
|
|
1628
|
-
response = await fetch(url);
|
|
1629
|
-
} catch (error) {
|
|
1630
|
-
return `Failed to import ${url}: ${error}`;
|
|
1631
|
-
}
|
|
1632
|
-
if (response.ok) {
|
|
1633
|
-
return `Failed to import ${url}: ${error}`;
|
|
1634
|
-
}
|
|
1635
|
-
switch (response.status) {
|
|
1636
|
-
case NotFound:
|
|
1637
|
-
return `Failed to import ${url}: Not found (404)`;
|
|
1638
|
-
default:
|
|
1639
|
-
return `Failed to import ${url}: ${error}`;
|
|
1640
|
-
}
|
|
1641
|
-
};
|
|
1642
|
-
|
|
1643
|
-
// TODO make activation timeout configurable or remove it.
|
|
1644
|
-
// some extension might do workspace indexing which could take some time
|
|
1645
|
-
const activationTimeout = 10_000;
|
|
1646
|
-
const rejectAfterTimeout = async (timeout, token) => {
|
|
1647
|
-
await sleep(timeout);
|
|
1648
|
-
if (isCanceled(token)) {
|
|
1649
|
-
return;
|
|
1650
|
-
}
|
|
1651
|
-
throw new Error(`Activation timeout of ${timeout}ms exceeded`);
|
|
1652
|
-
};
|
|
1653
|
-
const activate = async (extensionId, extension, extensionHost) => {
|
|
1654
|
-
await extensionHost.invoke('ExtensionHost.activateExtension3', extensionId, extension);
|
|
1655
|
-
};
|
|
1656
|
-
const activateExtension2 = async (extensionId, extension, absolutePath, extensionHost = ExtensionHost) => {
|
|
1657
|
-
string(extensionId);
|
|
1658
|
-
object(extension);
|
|
1659
|
-
string(absolutePath);
|
|
1660
|
-
const token = create();
|
|
1661
|
-
try {
|
|
1662
|
-
const startTime = performance.now();
|
|
1663
|
-
updateRuntimeStatus(extensionId, {
|
|
1664
|
-
activationStartTime: startTime,
|
|
1665
|
-
status: Activating
|
|
1666
|
-
});
|
|
1667
|
-
await Promise.race([activate(extensionId, extension, extensionHost), rejectAfterTimeout(activationTimeout, token)]);
|
|
1668
|
-
const endTime = performance.now();
|
|
1669
|
-
const time = endTime - startTime;
|
|
1670
|
-
updateRuntimeStatus(extensionId, {
|
|
1671
|
-
activationEndTime: endTime,
|
|
1672
|
-
activationTime: time,
|
|
1673
|
-
status: Activated
|
|
1674
|
-
});
|
|
1675
|
-
} catch (error) {
|
|
1676
|
-
const id = getExtensionId$4(extension);
|
|
1677
|
-
let activationError = error;
|
|
1678
|
-
if (isImportError(error)) {
|
|
1679
|
-
const actualErrorMessage = await tryToGetActualImportErrorMessage(absolutePath, error);
|
|
1680
|
-
activationError = new Error(`Failed to activate extension ${id}: ${actualErrorMessage}`, {
|
|
1681
|
-
cause: error
|
|
1682
|
-
});
|
|
1683
|
-
}
|
|
1684
|
-
updateRuntimeStatus(extensionId, {
|
|
1685
|
-
error: getErrorMessage(activationError),
|
|
1686
|
-
status: Error$1
|
|
1687
|
-
});
|
|
1688
|
-
if (activationError !== error) {
|
|
1689
|
-
throw activationError;
|
|
1690
|
-
}
|
|
1691
|
-
throw new VError(activationError, `Failed to activate extension ${id}`);
|
|
1692
|
-
} finally {
|
|
1693
|
-
cancel(token);
|
|
1694
|
-
}
|
|
1695
|
-
};
|
|
1696
|
-
|
|
1697
1529
|
const commandMapRef = {};
|
|
1698
1530
|
|
|
1699
1531
|
const extensionIds = new Set();
|
|
@@ -1896,7 +1728,7 @@ const createIsolatedExtensionHostWorker = async (extensionId, absolutePath, work
|
|
|
1896
1728
|
return bindCommandMap(rpc, commandMap);
|
|
1897
1729
|
};
|
|
1898
1730
|
const createWorker = (extensionId, absolutePath, workerName, contentSecurityPolicy) => {
|
|
1899
|
-
return createIsolatedExtensionHostWorker(extensionId, absolutePath, workerName, contentSecurityPolicy, create$
|
|
1731
|
+
return createIsolatedExtensionHostWorker(extensionId, absolutePath, workerName, contentSecurityPolicy, create$6, invokeAndTransfer);
|
|
1900
1732
|
};
|
|
1901
1733
|
const createAndStoreRpc = async (extensionId, absolutePath, workerName, contentSecurityPolicy, create) => {
|
|
1902
1734
|
const rpc = await create(extensionId, absolutePath, workerName, contentSecurityPolicy);
|
|
@@ -2009,48 +1841,6 @@ const handleRpcInfos = (extension, platform) => {
|
|
|
2009
1841
|
}
|
|
2010
1842
|
};
|
|
2011
1843
|
|
|
2012
|
-
const importExtension = async (extensionId, absolutePath, activationEvent, extensionHost = ExtensionHost) => {
|
|
2013
|
-
try {
|
|
2014
|
-
string(absolutePath);
|
|
2015
|
-
const startTime = performance.now();
|
|
2016
|
-
setRuntimeStatus({
|
|
2017
|
-
activationEndTime: 0,
|
|
2018
|
-
activationEvent: activationEvent,
|
|
2019
|
-
activationStartTime: performance.now(),
|
|
2020
|
-
activationTime: 0,
|
|
2021
|
-
id: extensionId,
|
|
2022
|
-
importEndTime: 0,
|
|
2023
|
-
importStartTime: startTime,
|
|
2024
|
-
importTime: 0,
|
|
2025
|
-
status: Importing
|
|
2026
|
-
});
|
|
2027
|
-
try {
|
|
2028
|
-
await extensionHost.invoke('ExtensionHost.importExtension2', extensionId, absolutePath);
|
|
2029
|
-
const endTime = performance.now();
|
|
2030
|
-
const time = endTime - startTime;
|
|
2031
|
-
updateRuntimeStatus(extensionId, {
|
|
2032
|
-
importEndTime: endTime,
|
|
2033
|
-
importTime: time
|
|
2034
|
-
});
|
|
2035
|
-
} catch (error) {
|
|
2036
|
-
let importError = error;
|
|
2037
|
-
if (isImportError(error)) {
|
|
2038
|
-
const actualErrorMessage = await tryToGetActualImportErrorMessage(absolutePath, error);
|
|
2039
|
-
importError = new Error(actualErrorMessage, {
|
|
2040
|
-
cause: error
|
|
2041
|
-
});
|
|
2042
|
-
}
|
|
2043
|
-
updateRuntimeStatus(extensionId, {
|
|
2044
|
-
error: getErrorMessage(importError),
|
|
2045
|
-
status: Error$1
|
|
2046
|
-
});
|
|
2047
|
-
throw importError;
|
|
2048
|
-
}
|
|
2049
|
-
} catch (error) {
|
|
2050
|
-
throw new VError(error, `Failed to import extension ${extensionId}`);
|
|
2051
|
-
}
|
|
2052
|
-
};
|
|
2053
|
-
|
|
2054
1844
|
const NewLine = '\n';
|
|
2055
1845
|
const Slash = '/';
|
|
2056
1846
|
|
|
@@ -2064,15 +1854,13 @@ const isExtensionIsolated = extension => {
|
|
|
2064
1854
|
};
|
|
2065
1855
|
|
|
2066
1856
|
const activateExtension3 = async (extension, absolutePath, activationEvent, platform) => {
|
|
2067
|
-
handleRpcInfos(extension, platform);
|
|
2068
1857
|
const extensionId = extension.id || interExtensionId(extension.uri);
|
|
2069
|
-
if (isExtensionIsolated(extension)) {
|
|
2070
|
-
|
|
2071
|
-
await activateIsolatedExtension(extensionId, absolutePath, extension.workerName || '', contentSecurityPolicy, activationEvent);
|
|
2072
|
-
return;
|
|
1858
|
+
if (!isExtensionIsolated(extension)) {
|
|
1859
|
+
throw new Error(`Extension ${extensionId} does not use the isolated extension API`);
|
|
2073
1860
|
}
|
|
2074
|
-
|
|
2075
|
-
|
|
1861
|
+
handleRpcInfos(extension, platform);
|
|
1862
|
+
const contentSecurityPolicy = getContentSecurityPolicy(extension.contentSecurityPolicy);
|
|
1863
|
+
await activateIsolatedExtension(extensionId, absolutePath, extension.workerName || '', contentSecurityPolicy, activationEvent);
|
|
2076
1864
|
};
|
|
2077
1865
|
|
|
2078
1866
|
const getExtensionAbsolutePath = (id, isWeb, isBuiltin, path, relativePath, origin, platform, assetDir) => {
|
|
@@ -2395,7 +2183,7 @@ const resetExtensionActivation = extensionId => {
|
|
|
2395
2183
|
delete activatingExtensions[extensionId];
|
|
2396
2184
|
delete runningExtensions[extensionId];
|
|
2397
2185
|
};
|
|
2398
|
-
const matchesEvent = (extension, event) => {
|
|
2186
|
+
const matchesEvent$1 = (extension, event) => {
|
|
2399
2187
|
return !extension.disabled && isExtensionIsolated(extension) && Array.isArray(extension.activation) && extension.activation.includes(event);
|
|
2400
2188
|
};
|
|
2401
2189
|
const getExtensionId$3 = extension => {
|
|
@@ -2444,7 +2232,7 @@ const activateByEvent = async (event, assetDir, platform) => {
|
|
|
2444
2232
|
platform: resolvedPlatform
|
|
2445
2233
|
} = await getRuntimeContext(assetDir, platform);
|
|
2446
2234
|
const extensions = await getAllExtensions(resolvedAssetDir, resolvedPlatform);
|
|
2447
|
-
const matchingExtensions = extensions.filter(extension => matchesEvent(extension, event));
|
|
2235
|
+
const matchingExtensions = extensions.filter(extension => matchesEvent$1(extension, event));
|
|
2448
2236
|
for (const extension of matchingExtensions) {
|
|
2449
2237
|
await activateExtension(extension, event, resolvedAssetDir, resolvedPlatform);
|
|
2450
2238
|
}
|
|
@@ -3143,6 +2931,22 @@ const executeOrganizeImportsProvider = async (extensionsState, textDocument) =>
|
|
|
3143
2931
|
|
|
3144
2932
|
/* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
|
|
3145
2933
|
|
|
2934
|
+
const matchesEvent = (extension, event) => {
|
|
2935
|
+
return !extension.disabled && isExtensionIsolated(extension) && Array.isArray(extension.activation) && extension.activation.includes(event);
|
|
2936
|
+
};
|
|
2937
|
+
const executeProvidersByEvent = async (extensionsState, event, method, ...params) => {
|
|
2938
|
+
const {
|
|
2939
|
+
assetDir,
|
|
2940
|
+
platform
|
|
2941
|
+
} = await getRuntimeContext('', extensionsState.platform);
|
|
2942
|
+
const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
|
|
2943
|
+
const matchingExtensions = extensions.filter(extension => matchesEvent(extension, event));
|
|
2944
|
+
const rpcs = await Promise.all(matchingExtensions.map(extension => getRpc$1(extension, assetDir, platform)));
|
|
2945
|
+
return Promise.all(rpcs.map(rpc => rpc.invoke(method, ...params)));
|
|
2946
|
+
};
|
|
2947
|
+
|
|
2948
|
+
/* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
|
|
2949
|
+
|
|
3146
2950
|
const contributesSignatureHelpProvider = (extension, languageId) => {
|
|
3147
2951
|
return Array.isArray(extension.signatureHelpProviders) && extension.signatureHelpProviders.some(provider => provider.languageId === languageId);
|
|
3148
2952
|
};
|
|
@@ -3393,7 +3197,7 @@ const saveViewInstanceState = async (viewId, uid, assetDir, platform) => {
|
|
|
3393
3197
|
};
|
|
3394
3198
|
|
|
3395
3199
|
const getAccessToken = (options = {}) => {
|
|
3396
|
-
return invoke$
|
|
3200
|
+
return invoke$5('Auth.getAccessToken', options);
|
|
3397
3201
|
};
|
|
3398
3202
|
|
|
3399
3203
|
const transparent = (color, factor) => {
|
|
@@ -3699,7 +3503,7 @@ const createWebViewIpc = async webView => {
|
|
|
3699
3503
|
port1,
|
|
3700
3504
|
port2
|
|
3701
3505
|
} = getPortTuple();
|
|
3702
|
-
const rpcPromise = create$
|
|
3506
|
+
const rpcPromise = create$2({
|
|
3703
3507
|
commandMap: {},
|
|
3704
3508
|
isMessagePortOpen: false,
|
|
3705
3509
|
messagePort: port2
|
|
@@ -3794,6 +3598,15 @@ const getRunningExtensionsFromState = (extensions, runtimeStatuses, assetDir, pl
|
|
|
3794
3598
|
}).toSorted((a, b) => b.activationTime - a.activationTime);
|
|
3795
3599
|
};
|
|
3796
3600
|
|
|
3601
|
+
const sleep = duration => {
|
|
3602
|
+
const {
|
|
3603
|
+
promise,
|
|
3604
|
+
resolve
|
|
3605
|
+
} = Promise.withResolvers();
|
|
3606
|
+
setTimeout(resolve, duration);
|
|
3607
|
+
return promise;
|
|
3608
|
+
};
|
|
3609
|
+
|
|
3797
3610
|
const invokePing = async rpc => {
|
|
3798
3611
|
try {
|
|
3799
3612
|
await rpc.invoke('ExtensionApi.ping');
|
|
@@ -3971,7 +3784,7 @@ const handleFileChanges = async (changes = {}) => {
|
|
|
3971
3784
|
};
|
|
3972
3785
|
|
|
3973
3786
|
const handleMessagePort = async (port, rpcId) => {
|
|
3974
|
-
await create$
|
|
3787
|
+
await create$7({
|
|
3975
3788
|
commandMap: commandMapRef,
|
|
3976
3789
|
messagePort: port
|
|
3977
3790
|
});
|
|
@@ -3979,8 +3792,8 @@ const handleMessagePort = async (port, rpcId) => {
|
|
|
3979
3792
|
|
|
3980
3793
|
const prefix = '[Extension] Uncaught Error: ';
|
|
3981
3794
|
const handleUncaughtExtensionError = async error => {
|
|
3982
|
-
const prettyError = await invoke$
|
|
3983
|
-
await invoke$
|
|
3795
|
+
const prettyError = await invoke$4('Errors.prepare', error);
|
|
3796
|
+
await invoke$4('Errors.print', prettyError, prefix);
|
|
3984
3797
|
};
|
|
3985
3798
|
|
|
3986
3799
|
const handleViewContextChange = async (uid, viewId, context) => {
|
|
@@ -3988,14 +3801,14 @@ const handleViewContextChange = async (uid, viewId, context) => {
|
|
|
3988
3801
|
};
|
|
3989
3802
|
|
|
3990
3803
|
const getRpcRemote = async () => {
|
|
3991
|
-
const rpc = await create$
|
|
3804
|
+
const rpc = await create$3({
|
|
3992
3805
|
commandMap: commandMapRef,
|
|
3993
3806
|
type: 'shared-process'
|
|
3994
3807
|
});
|
|
3995
3808
|
return rpc;
|
|
3996
3809
|
};
|
|
3997
3810
|
const getRpcElectron = async () => {
|
|
3998
|
-
const rpc = create$
|
|
3811
|
+
const rpc = create$6({
|
|
3999
3812
|
commandMap: commandMapRef,
|
|
4000
3813
|
async send(port) {
|
|
4001
3814
|
await sendMessagePortToSharedProcess(port);
|
|
@@ -4122,8 +3935,6 @@ const wrapCommand = command => {
|
|
|
4122
3935
|
const commandMap = {
|
|
4123
3936
|
'ExtensionApi.readFile': readFile,
|
|
4124
3937
|
'ExtensionHostQuickPick.showQuickPick': showQuickPick,
|
|
4125
|
-
'Extensions.activate2': activateExtension2,
|
|
4126
|
-
'Extensions.activate3': activateExtension3,
|
|
4127
3938
|
'Extensions.activateByEvent': activateByEvent,
|
|
4128
3939
|
'Extensions.addExtension': addExtension,
|
|
4129
3940
|
'Extensions.addWebExtension': addWebExtension,
|
|
@@ -4150,6 +3961,7 @@ const commandMap = {
|
|
|
4150
3961
|
'Extensions.executeHoverProvider': wrapCommand(executeHoverProvider),
|
|
4151
3962
|
'Extensions.executeLanguageProvider': wrapCommand(executeLanguageProvider),
|
|
4152
3963
|
'Extensions.executeOrganizeImportsProvider': wrapCommand(executeOrganizeImportsProvider),
|
|
3964
|
+
'Extensions.executeProvidersByEvent': wrapCommand(executeProvidersByEvent),
|
|
4153
3965
|
'Extensions.executeResolveCompletionItemProvider': wrapCommand(executeResolveCompletionItemProvider),
|
|
4154
3966
|
'Extensions.executeSignatureHelpProvider': wrapCommand(executeSignatureHelpProvider),
|
|
4155
3967
|
'Extensions.executeSourceControlProvider': wrapCommand(executeSourceControlProvider),
|
|
@@ -4179,7 +3991,6 @@ const commandMap = {
|
|
|
4179
3991
|
'Extensions.handleMessagePort': handleMessagePort,
|
|
4180
3992
|
'Extensions.handleUncaughtExtensionError': handleUncaughtExtensionError,
|
|
4181
3993
|
'Extensions.handleViewContextChange': handleViewContextChange,
|
|
4182
|
-
'Extensions.importExtension': importExtension,
|
|
4183
3994
|
'Extensions.initialize': initialize,
|
|
4184
3995
|
'Extensions.install': installExtension,
|
|
4185
3996
|
'Extensions.invalidateExtensionsCache': invalidateExtensionsCache,
|
|
@@ -4195,37 +4006,27 @@ const commandMap = {
|
|
|
4195
4006
|
};
|
|
4196
4007
|
|
|
4197
4008
|
const initializeAuthWorker = async () => {
|
|
4198
|
-
const rpc = await create$
|
|
4009
|
+
const rpc = await create$5({
|
|
4199
4010
|
commandMap: commandMapRef,
|
|
4200
4011
|
async send(port) {
|
|
4201
4012
|
await sendMessagePortToAuthWorker(port, 0);
|
|
4202
4013
|
}
|
|
4203
4014
|
});
|
|
4204
|
-
set$
|
|
4015
|
+
set$9(rpc);
|
|
4205
4016
|
};
|
|
4206
4017
|
|
|
4207
4018
|
const initializeErrorWorker = async () => {
|
|
4208
|
-
const rpc = await create$
|
|
4019
|
+
const rpc = await create$5({
|
|
4209
4020
|
commandMap: commandMapRef,
|
|
4210
4021
|
async send(port) {
|
|
4211
4022
|
await sendMessagePortToErrorWorker(port, 0);
|
|
4212
4023
|
}
|
|
4213
4024
|
});
|
|
4214
|
-
set$9(rpc);
|
|
4215
|
-
};
|
|
4216
|
-
|
|
4217
|
-
const initializeExtensionHostWorker = async () => {
|
|
4218
|
-
const rpc = await create$6({
|
|
4219
|
-
commandMap: commandMapRef,
|
|
4220
|
-
async send(port) {
|
|
4221
|
-
await sendMessagePortToExtensionHostWorker(port, 0);
|
|
4222
|
-
}
|
|
4223
|
-
});
|
|
4224
4025
|
set$8(rpc);
|
|
4225
4026
|
};
|
|
4226
4027
|
|
|
4227
4028
|
const initializeFileSystemWorker = async () => {
|
|
4228
|
-
const rpc = await create$
|
|
4029
|
+
const rpc = await create$5({
|
|
4229
4030
|
commandMap: commandMapRef,
|
|
4230
4031
|
async send(port) {
|
|
4231
4032
|
await sendMessagePortToFileSystemWorker$1(port, 0);
|
|
@@ -4235,7 +4036,7 @@ const initializeFileSystemWorker = async () => {
|
|
|
4235
4036
|
};
|
|
4236
4037
|
|
|
4237
4038
|
const initializeIframeWorker = async () => {
|
|
4238
|
-
const rpc = await create$
|
|
4039
|
+
const rpc = await create$5({
|
|
4239
4040
|
commandMap: {},
|
|
4240
4041
|
async send(port) {
|
|
4241
4042
|
await sendMessagePortToIconThemeWorker(port, 0);
|
|
@@ -4245,7 +4046,7 @@ const initializeIframeWorker = async () => {
|
|
|
4245
4046
|
};
|
|
4246
4047
|
|
|
4247
4048
|
const initializeRendererWorker = async () => {
|
|
4248
|
-
const rpc = await create$
|
|
4049
|
+
const rpc = await create$1({
|
|
4249
4050
|
commandMap: commandMap
|
|
4250
4051
|
});
|
|
4251
4052
|
set$6(rpc);
|
|
@@ -4253,7 +4054,7 @@ const initializeRendererWorker = async () => {
|
|
|
4253
4054
|
|
|
4254
4055
|
const listen = async () => {
|
|
4255
4056
|
Object.assign(commandMapRef, commandMap);
|
|
4256
|
-
await Promise.all([initializeRendererWorker(), initializeAuthWorker(), initializeErrorWorker(), initializeFileSystemWorker(), initializeIframeWorker()
|
|
4057
|
+
await Promise.all([initializeRendererWorker(), initializeAuthWorker(), initializeErrorWorker(), initializeFileSystemWorker(), initializeIframeWorker()]);
|
|
4257
4058
|
};
|
|
4258
4059
|
|
|
4259
4060
|
const main = async () => {
|