@lvce-editor/extension-host-worker 8.64.0 → 8.66.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.
- package/dist/extension-api/index.js +153 -65
- package/dist/extension-api/parts/FileSystem/FileSystem.js +40 -0
- package/dist/extension-api/parts/Rpc/Rpc.js +4 -4
- package/dist/extensionHostWorkerMain.js +2293 -2252
- package/extension-api/dist/index.d.ts +1 -1
- package/extension-api/dist/index.js +1 -1
- package/extension-api/dist/parts/FileSystem/FileSystem.d.ts +6 -0
- package/extension-api/dist/parts/FileSystem/FileSystem.js +40 -0
- package/extension-api/dist/parts/Rpc/Rpc.d.ts +2 -1
- package/extension-api/dist/parts/Rpc/Rpc.js +4 -4
- package/extension-api/package.json +1 -1
- package/extension-api/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ var __export = (target, all) => {
|
|
|
4
4
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
-
//
|
|
7
|
+
// node_modules/@lvce-editor/verror/dist/index.js
|
|
8
8
|
var normalizeLine = (line) => {
|
|
9
9
|
if (line.startsWith("Error: ")) {
|
|
10
10
|
return line.slice("Error: ".length);
|
|
@@ -458,7 +458,7 @@ var IpcParentWithMessagePort$1 = {
|
|
|
458
458
|
wrap: wrap$5
|
|
459
459
|
};
|
|
460
460
|
|
|
461
|
-
//
|
|
461
|
+
// node_modules/@lvce-editor/command/dist/index.js
|
|
462
462
|
var CommandNotFoundError = class extends Error {
|
|
463
463
|
constructor(command) {
|
|
464
464
|
super(`Command not found ${command}`);
|
|
@@ -480,7 +480,7 @@ var execute = (command, ...args) => {
|
|
|
480
480
|
return fn(...args);
|
|
481
481
|
};
|
|
482
482
|
|
|
483
|
-
//
|
|
483
|
+
// node_modules/@lvce-editor/json-rpc/dist/index.js
|
|
484
484
|
var Two = "2.0";
|
|
485
485
|
var callbacks = /* @__PURE__ */ Object.create(null);
|
|
486
486
|
var get = (id2) => {
|
|
@@ -534,7 +534,10 @@ var constructError = (message, type, name) => {
|
|
|
534
534
|
if (ErrorConstructor === Error) {
|
|
535
535
|
const error = new Error(message);
|
|
536
536
|
if (name && name !== "VError") {
|
|
537
|
-
error
|
|
537
|
+
Object.defineProperty(error, "name", {
|
|
538
|
+
configurable: true,
|
|
539
|
+
value: name
|
|
540
|
+
});
|
|
538
541
|
}
|
|
539
542
|
return error;
|
|
540
543
|
}
|
|
@@ -551,8 +554,10 @@ var getCurrentStack = () => {
|
|
|
551
554
|
const currentStack = joinLines2(splitLines2(new Error().stack || "").slice(stackLinesToSkip));
|
|
552
555
|
return currentStack;
|
|
553
556
|
};
|
|
554
|
-
var getNewLineIndex2 = (string2, startIndex
|
|
555
|
-
|
|
557
|
+
var getNewLineIndex2 = (string2, startIndex) => {
|
|
558
|
+
{
|
|
559
|
+
return string2.indexOf(NewLine3);
|
|
560
|
+
}
|
|
556
561
|
};
|
|
557
562
|
var getParentStack = (error) => {
|
|
558
563
|
let parentStack = error.stack || error.data || error.message || "";
|
|
@@ -563,49 +568,86 @@ var getParentStack = (error) => {
|
|
|
563
568
|
};
|
|
564
569
|
var MethodNotFound = -32601;
|
|
565
570
|
var Custom = -32001;
|
|
571
|
+
var setStack = (error, stack) => {
|
|
572
|
+
const descriptor = Object.getOwnPropertyDescriptor(error, "stack");
|
|
573
|
+
if (descriptor) {
|
|
574
|
+
if (!descriptor.configurable && !descriptor.writable) {
|
|
575
|
+
return;
|
|
576
|
+
}
|
|
577
|
+
if (!descriptor.configurable && descriptor.writable) {
|
|
578
|
+
error.stack = stack;
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
Object.defineProperty(error, "stack", {
|
|
583
|
+
configurable: true,
|
|
584
|
+
value: stack,
|
|
585
|
+
writable: true
|
|
586
|
+
});
|
|
587
|
+
};
|
|
588
|
+
var restoreExistingError = (error, currentStack) => {
|
|
589
|
+
if (typeof error.stack === "string") {
|
|
590
|
+
setStack(error, `${error.stack}${NewLine3}${currentStack}`);
|
|
591
|
+
}
|
|
592
|
+
return error;
|
|
593
|
+
};
|
|
594
|
+
var restoreMethodNotFoundError = (error, currentStack) => {
|
|
595
|
+
const restoredError = new JsonRpcError(error.message);
|
|
596
|
+
const parentStack = getParentStack(error);
|
|
597
|
+
setStack(restoredError, `${parentStack}${NewLine3}${currentStack}`);
|
|
598
|
+
return restoredError;
|
|
599
|
+
};
|
|
600
|
+
var restoreStackFromData = (restoredError, error, currentStack) => {
|
|
601
|
+
if (error.data.stack && error.data.type && error.message) {
|
|
602
|
+
setStack(restoredError, `${error.data.type}: ${error.message}${NewLine3}${error.data.stack}${NewLine3}${currentStack}`);
|
|
603
|
+
return;
|
|
604
|
+
}
|
|
605
|
+
if (error.data.stack) {
|
|
606
|
+
setStack(restoredError, error.data.stack);
|
|
607
|
+
}
|
|
608
|
+
};
|
|
609
|
+
var applyDataProperties = (restoredError, error) => {
|
|
610
|
+
restoreStackFromData(restoredError, error, getCurrentStack());
|
|
611
|
+
if (error.data.codeFrame) {
|
|
612
|
+
restoredError.codeFrame = error.data.codeFrame;
|
|
613
|
+
}
|
|
614
|
+
if (error.data.code) {
|
|
615
|
+
restoredError.code = error.data.code;
|
|
616
|
+
}
|
|
617
|
+
if (error.data.type) {
|
|
618
|
+
restoredError.name = error.data.type;
|
|
619
|
+
}
|
|
620
|
+
};
|
|
621
|
+
var applyDirectProperties = (restoredError, error) => {
|
|
622
|
+
if (error.stack) {
|
|
623
|
+
const lowerStack = restoredError.stack || "";
|
|
624
|
+
const indexNewLine = getNewLineIndex2(lowerStack);
|
|
625
|
+
const parentStack = getParentStack(error);
|
|
626
|
+
setStack(restoredError, `${parentStack}${lowerStack.slice(indexNewLine)}`);
|
|
627
|
+
}
|
|
628
|
+
if (error.codeFrame) {
|
|
629
|
+
restoredError.codeFrame = error.codeFrame;
|
|
630
|
+
}
|
|
631
|
+
};
|
|
632
|
+
var restoreMessageError = (error, _currentStack) => {
|
|
633
|
+
const restoredError = constructError(error.message, error.type, error.name);
|
|
634
|
+
if (error.data) {
|
|
635
|
+
applyDataProperties(restoredError, error);
|
|
636
|
+
} else {
|
|
637
|
+
applyDirectProperties(restoredError, error);
|
|
638
|
+
}
|
|
639
|
+
return restoredError;
|
|
640
|
+
};
|
|
566
641
|
var restoreJsonRpcError = (error) => {
|
|
567
642
|
const currentStack = getCurrentStack();
|
|
568
643
|
if (error && error instanceof Error) {
|
|
569
|
-
|
|
570
|
-
error.stack = error.stack + NewLine3 + currentStack;
|
|
571
|
-
}
|
|
572
|
-
return error;
|
|
644
|
+
return restoreExistingError(error, currentStack);
|
|
573
645
|
}
|
|
574
646
|
if (error && error.code && error.code === MethodNotFound) {
|
|
575
|
-
|
|
576
|
-
const parentStack = getParentStack(error);
|
|
577
|
-
restoredError.stack = parentStack + NewLine3 + currentStack;
|
|
578
|
-
return restoredError;
|
|
647
|
+
return restoreMethodNotFoundError(error, currentStack);
|
|
579
648
|
}
|
|
580
649
|
if (error && error.message) {
|
|
581
|
-
|
|
582
|
-
if (error.data) {
|
|
583
|
-
if (error.data.stack && error.data.type && error.message) {
|
|
584
|
-
restoredError.stack = error.data.type + ": " + error.message + NewLine3 + error.data.stack + NewLine3 + currentStack;
|
|
585
|
-
} else if (error.data.stack) {
|
|
586
|
-
restoredError.stack = error.data.stack;
|
|
587
|
-
}
|
|
588
|
-
if (error.data.codeFrame) {
|
|
589
|
-
restoredError.codeFrame = error.data.codeFrame;
|
|
590
|
-
}
|
|
591
|
-
if (error.data.code) {
|
|
592
|
-
restoredError.code = error.data.code;
|
|
593
|
-
}
|
|
594
|
-
if (error.data.type) {
|
|
595
|
-
restoredError.name = error.data.type;
|
|
596
|
-
}
|
|
597
|
-
} else {
|
|
598
|
-
if (error.stack) {
|
|
599
|
-
const lowerStack = restoredError.stack || "";
|
|
600
|
-
const indexNewLine = getNewLineIndex2(lowerStack);
|
|
601
|
-
const parentStack = getParentStack(error);
|
|
602
|
-
restoredError.stack = parentStack + lowerStack.slice(indexNewLine);
|
|
603
|
-
}
|
|
604
|
-
if (error.codeFrame) {
|
|
605
|
-
restoredError.codeFrame = error.codeFrame;
|
|
606
|
-
}
|
|
607
|
-
}
|
|
608
|
-
return restoredError;
|
|
650
|
+
return restoreMessageError(error);
|
|
609
651
|
}
|
|
610
652
|
if (typeof error === "string") {
|
|
611
653
|
return new Error(`JsonRpc Error: ${error}`);
|
|
@@ -1069,7 +1111,7 @@ var create10 = (rpcId) => {
|
|
|
1069
1111
|
};
|
|
1070
1112
|
};
|
|
1071
1113
|
|
|
1072
|
-
//
|
|
1114
|
+
// node_modules/@lvce-editor/constants/dist/parts/VirtualDomElements/VirtualDomElements.js
|
|
1073
1115
|
var VirtualDomElements_exports = {};
|
|
1074
1116
|
__export(VirtualDomElements_exports, {
|
|
1075
1117
|
A: () => A,
|
|
@@ -1238,7 +1280,7 @@ var Svg = 90;
|
|
|
1238
1280
|
var Use = 91;
|
|
1239
1281
|
var Reference = 100;
|
|
1240
1282
|
|
|
1241
|
-
//
|
|
1283
|
+
// node_modules/@lvce-editor/constants/dist/parts/RpcId/RpcId.js
|
|
1242
1284
|
var RpcId_exports = {};
|
|
1243
1285
|
__export(RpcId_exports, {
|
|
1244
1286
|
AuthProcess: () => AuthProcess,
|
|
@@ -1258,6 +1300,7 @@ __export(RpcId_exports, {
|
|
|
1258
1300
|
ColorPickerWorker: () => ColorPickerWorker,
|
|
1259
1301
|
CompletionWorker: () => CompletionWorker,
|
|
1260
1302
|
DebugWorker: () => DebugWorker,
|
|
1303
|
+
DialogWorker: () => DialogWorker,
|
|
1261
1304
|
EditorWorker: () => EditorWorker,
|
|
1262
1305
|
EmbedsProcess: () => EmbedsProcess,
|
|
1263
1306
|
EmbedsWorker: () => EmbedsWorker,
|
|
@@ -1266,6 +1309,7 @@ __export(RpcId_exports, {
|
|
|
1266
1309
|
ExtensionHostHelperProcess: () => ExtensionHostHelperProcess,
|
|
1267
1310
|
ExtensionHostWorker: () => ExtensionHostWorker,
|
|
1268
1311
|
ExtensionManagementWorker: () => ExtensionManagementWorker,
|
|
1312
|
+
FilePermissionProcess: () => FilePermissionProcess,
|
|
1269
1313
|
FileSearchWorker: () => FileSearchWorker,
|
|
1270
1314
|
FileSystemProcess: () => FileSystemProcess,
|
|
1271
1315
|
FileSystemWorker: () => FileSystemWorker,
|
|
@@ -1283,6 +1327,7 @@ __export(RpcId_exports, {
|
|
|
1283
1327
|
PreviewSandBoxWorker: () => PreviewSandBoxWorker,
|
|
1284
1328
|
PreviewWorker: () => PreviewWorker,
|
|
1285
1329
|
ProblemsWorker: () => ProblemsWorker,
|
|
1330
|
+
ProcessExplorerNode: () => ProcessExplorerNode,
|
|
1286
1331
|
ProcessExplorerRenderer: () => ProcessExplorerRenderer,
|
|
1287
1332
|
QuickPickWorker: () => QuickPickWorker,
|
|
1288
1333
|
RenameWorker: () => RenameWorker,
|
|
@@ -1302,6 +1347,7 @@ __export(RpcId_exports, {
|
|
|
1302
1347
|
TestWithPlaywrightWorker: () => TestWithPlaywrightWorker,
|
|
1303
1348
|
TestWorker: () => TestWorker,
|
|
1304
1349
|
TextMeasurementWorker: () => TextMeasurementWorker,
|
|
1350
|
+
TextSearchViewWorker: () => TextSearchViewWorker,
|
|
1305
1351
|
TextSearchWorker: () => TextSearchWorker,
|
|
1306
1352
|
TypescriptCompileProcess: () => TypescriptCompileProcess
|
|
1307
1353
|
});
|
|
@@ -1322,6 +1368,7 @@ var ClipBoardWorker = 3400;
|
|
|
1322
1368
|
var ColorPickerWorker = 302;
|
|
1323
1369
|
var CompletionWorker = 301;
|
|
1324
1370
|
var DebugWorker = 55;
|
|
1371
|
+
var DialogWorker = 7014;
|
|
1325
1372
|
var EditorWorker = 99;
|
|
1326
1373
|
var EmbedsProcess = 207;
|
|
1327
1374
|
var EmbedsWorker = 208;
|
|
@@ -1330,6 +1377,7 @@ var ExtensionDetailWorker = 3402;
|
|
|
1330
1377
|
var ExtensionHostHelperProcess = 3;
|
|
1331
1378
|
var ExtensionHostWorker = 44;
|
|
1332
1379
|
var ExtensionManagementWorker = 9006;
|
|
1380
|
+
var FilePermissionProcess = 7015;
|
|
1333
1381
|
var FileSearchWorker = 7013;
|
|
1334
1382
|
var FileSystemProcess = 210;
|
|
1335
1383
|
var FileSystemWorker = 209;
|
|
@@ -1348,6 +1396,7 @@ var PreviewSandBoxWorker = 3212;
|
|
|
1348
1396
|
var PreviewWorker = 3211;
|
|
1349
1397
|
var ProblemsWorker = 3403;
|
|
1350
1398
|
var ProcessExplorerRenderer = 33;
|
|
1399
|
+
var ProcessExplorerNode = 10001;
|
|
1351
1400
|
var QuickPickWorker = 1e4;
|
|
1352
1401
|
var RenameWorker = 9004;
|
|
1353
1402
|
var RendererProcess = 1670;
|
|
@@ -1366,6 +1415,7 @@ var TestWithPlaywrightCli = 6e3;
|
|
|
1366
1415
|
var TestWithPlaywrightWorker = 6001;
|
|
1367
1416
|
var TestWorker = 9001;
|
|
1368
1417
|
var TextMeasurementWorker = 7011;
|
|
1418
|
+
var TextSearchViewWorker = 7012;
|
|
1369
1419
|
var TextSearchWorker = 7010;
|
|
1370
1420
|
var TypescriptCompileProcess = 221;
|
|
1371
1421
|
|
|
@@ -3574,11 +3624,49 @@ var setPreference = async (key, value) => {
|
|
|
3574
3624
|
await ExtensionManagementWorker_exports.invoke("Extensions.setPreference", key, value);
|
|
3575
3625
|
};
|
|
3576
3626
|
|
|
3627
|
+
// packages/extension-api/src/parts/Platform/Platform.ts
|
|
3628
|
+
var getPlatform = async () => {
|
|
3629
|
+
const platform = await executeCommand2("Layout.getPlatform");
|
|
3630
|
+
switch (platform) {
|
|
3631
|
+
case 1:
|
|
3632
|
+
return "web";
|
|
3633
|
+
case 2:
|
|
3634
|
+
return "electron";
|
|
3635
|
+
case 3:
|
|
3636
|
+
return "remote";
|
|
3637
|
+
case 4:
|
|
3638
|
+
return "test";
|
|
3639
|
+
default:
|
|
3640
|
+
throw new TypeError(`Unknown platform: ${platform}`);
|
|
3641
|
+
}
|
|
3642
|
+
};
|
|
3643
|
+
|
|
3577
3644
|
// packages/extension-api/src/parts/FileSystem/FileSystem.ts
|
|
3578
3645
|
var MemfsPrefix = "memfs://";
|
|
3579
3646
|
var isMemory = (uri) => {
|
|
3580
3647
|
return uri.startsWith(MemfsPrefix);
|
|
3581
3648
|
};
|
|
3649
|
+
var isHttp = (uri) => {
|
|
3650
|
+
return uri.startsWith("http://") || uri.startsWith("https://");
|
|
3651
|
+
};
|
|
3652
|
+
var getRemoteUrl = (uri) => {
|
|
3653
|
+
const withoutPrefix = uri.startsWith("file://") ? uri.slice("file://".length) : uri;
|
|
3654
|
+
const normalized = withoutPrefix.replaceAll("\\", "/");
|
|
3655
|
+
return normalized.startsWith("/") ? `/remote${normalized}` : `/remote/${normalized}`;
|
|
3656
|
+
};
|
|
3657
|
+
var getObjectUrl = async (uri) => {
|
|
3658
|
+
if (isHttp(uri)) {
|
|
3659
|
+
return uri;
|
|
3660
|
+
}
|
|
3661
|
+
const platform = await getPlatform();
|
|
3662
|
+
if (platform === "web") {
|
|
3663
|
+
return await executeCommand2("Blob.getSrc", uri);
|
|
3664
|
+
}
|
|
3665
|
+
return getRemoteUrl(uri);
|
|
3666
|
+
};
|
|
3667
|
+
var getErrorMessage = (error) => {
|
|
3668
|
+
return error instanceof Error ? error.message : String(error);
|
|
3669
|
+
};
|
|
3582
3670
|
var exists2 = async (uri) => {
|
|
3583
3671
|
return FileSystemWorker_exports.exists(uri);
|
|
3584
3672
|
};
|
|
@@ -3591,6 +3679,22 @@ var readFile2 = async (uri) => {
|
|
|
3591
3679
|
}
|
|
3592
3680
|
return FileSystemWorker_exports.readFile(uri);
|
|
3593
3681
|
};
|
|
3682
|
+
var readAsObjectUrl = async (uri) => {
|
|
3683
|
+
try {
|
|
3684
|
+
const objectUrl = await getObjectUrl(uri);
|
|
3685
|
+
return {
|
|
3686
|
+
error: "",
|
|
3687
|
+
objectUrl,
|
|
3688
|
+
wasFound: true
|
|
3689
|
+
};
|
|
3690
|
+
} catch (error) {
|
|
3691
|
+
return {
|
|
3692
|
+
error: getErrorMessage(error),
|
|
3693
|
+
objectUrl: "",
|
|
3694
|
+
wasFound: false
|
|
3695
|
+
};
|
|
3696
|
+
}
|
|
3697
|
+
};
|
|
3594
3698
|
var mkdir2 = async (uri) => {
|
|
3595
3699
|
await FileSystemWorker_exports.mkdir(uri);
|
|
3596
3700
|
};
|
|
@@ -3624,23 +3728,6 @@ var showNotification = async (type, message) => {
|
|
|
3624
3728
|
await executeCommand2("Notification.create", type, message);
|
|
3625
3729
|
};
|
|
3626
3730
|
|
|
3627
|
-
// packages/extension-api/src/parts/Platform/Platform.ts
|
|
3628
|
-
var getPlatform = async () => {
|
|
3629
|
-
const platform = await executeCommand2("Layout.getPlatform");
|
|
3630
|
-
switch (platform) {
|
|
3631
|
-
case 1:
|
|
3632
|
-
return "web";
|
|
3633
|
-
case 2:
|
|
3634
|
-
return "electron";
|
|
3635
|
-
case 3:
|
|
3636
|
-
return "remote";
|
|
3637
|
-
case 4:
|
|
3638
|
-
return "test";
|
|
3639
|
-
default:
|
|
3640
|
-
throw new TypeError(`Unknown platform: ${platform}`);
|
|
3641
|
-
}
|
|
3642
|
-
};
|
|
3643
|
-
|
|
3644
3731
|
// packages/extension-api/src/parts/CommandMap/CommandMap.ts
|
|
3645
3732
|
var commandMap4 = {
|
|
3646
3733
|
...commandMap,
|
|
@@ -3668,8 +3755,8 @@ var handleExtensionManagementMessagePort2 = async ({
|
|
|
3668
3755
|
};
|
|
3669
3756
|
|
|
3670
3757
|
// packages/extension-api/src/parts/Rpc/Rpc.ts
|
|
3671
|
-
var sendMessagePortToWebWorker = async (port, name, url) => {
|
|
3672
|
-
await ExtensionManagementWorker_exports.invokeAndTransfer("Extensions.createWebViewWorkerRpc2", { name, url }, port);
|
|
3758
|
+
var sendMessagePortToWebWorker = async (port, contentSecurityPolicy, name, url) => {
|
|
3759
|
+
await ExtensionManagementWorker_exports.invokeAndTransfer("Extensions.createWebViewWorkerRpc2", { contentSecurityPolicy, name, url }, port);
|
|
3673
3760
|
};
|
|
3674
3761
|
var createMessagePortRpc = async (commandMap5, send2) => {
|
|
3675
3762
|
const { port1, port2 } = new MessageChannel();
|
|
@@ -3682,8 +3769,8 @@ var createMessagePortRpc = async (commandMap5, send2) => {
|
|
|
3682
3769
|
await send2(port1);
|
|
3683
3770
|
return rpcPromise2;
|
|
3684
3771
|
};
|
|
3685
|
-
var createRpc2 = async ({ commandMap: commandMap5 = {}, name = "", url }) => {
|
|
3686
|
-
return createMessagePortRpc(commandMap5, (port) => sendMessagePortToWebWorker(port, name, url));
|
|
3772
|
+
var createRpc2 = async ({ commandMap: commandMap5 = {}, contentSecurityPolicy = "", name = "", url }) => {
|
|
3773
|
+
return createMessagePortRpc(commandMap5, (port) => sendMessagePortToWebWorker(port, contentSecurityPolicy, name, url));
|
|
3687
3774
|
};
|
|
3688
3775
|
var resolveNodeRpcOptions = async ({ id: id2, name = "", path }) => {
|
|
3689
3776
|
if (id2) {
|
|
@@ -3763,6 +3850,7 @@ export {
|
|
|
3763
3850
|
handleWorkspaceRefresh,
|
|
3764
3851
|
mkdir2 as mkdir,
|
|
3765
3852
|
openUri,
|
|
3853
|
+
readAsObjectUrl,
|
|
3766
3854
|
readDirWithFileTypes2 as readDirWithFileTypes,
|
|
3767
3855
|
readFile2 as readFile,
|
|
3768
3856
|
registerBraceCompletionProvider,
|
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
import { ExtensionManagementWorker, FileSystemWorker } from "@lvce-editor/rpc-registry";
|
|
2
|
+
import { executeCommand } from "../ExecuteCommand/ExecuteCommand.js";
|
|
3
|
+
import { getPlatform } from "../Platform/Platform.js";
|
|
2
4
|
const MemfsPrefix = "memfs://";
|
|
3
5
|
const isMemory = (uri) => {
|
|
4
6
|
return uri.startsWith(MemfsPrefix);
|
|
5
7
|
};
|
|
8
|
+
const isHttp = (uri) => {
|
|
9
|
+
return uri.startsWith("http://") || uri.startsWith("https://");
|
|
10
|
+
};
|
|
11
|
+
const getRemoteUrl = (uri) => {
|
|
12
|
+
const withoutPrefix = uri.startsWith("file://") ? uri.slice("file://".length) : uri;
|
|
13
|
+
const normalized = withoutPrefix.replaceAll("\\", "/");
|
|
14
|
+
return normalized.startsWith("/") ? `/remote${normalized}` : `/remote/${normalized}`;
|
|
15
|
+
};
|
|
16
|
+
const getObjectUrl = async (uri) => {
|
|
17
|
+
if (isHttp(uri)) {
|
|
18
|
+
return uri;
|
|
19
|
+
}
|
|
20
|
+
const platform = await getPlatform();
|
|
21
|
+
if (platform === "web") {
|
|
22
|
+
return await executeCommand("Blob.getSrc", uri);
|
|
23
|
+
}
|
|
24
|
+
return getRemoteUrl(uri);
|
|
25
|
+
};
|
|
26
|
+
const getErrorMessage = (error) => {
|
|
27
|
+
return error instanceof Error ? error.message : String(error);
|
|
28
|
+
};
|
|
6
29
|
const exists = async (uri) => {
|
|
7
30
|
return FileSystemWorker.exists(uri);
|
|
8
31
|
};
|
|
@@ -15,6 +38,22 @@ const readFile = async (uri) => {
|
|
|
15
38
|
}
|
|
16
39
|
return FileSystemWorker.readFile(uri);
|
|
17
40
|
};
|
|
41
|
+
const readAsObjectUrl = async (uri) => {
|
|
42
|
+
try {
|
|
43
|
+
const objectUrl = await getObjectUrl(uri);
|
|
44
|
+
return {
|
|
45
|
+
error: "",
|
|
46
|
+
objectUrl,
|
|
47
|
+
wasFound: true
|
|
48
|
+
};
|
|
49
|
+
} catch (error) {
|
|
50
|
+
return {
|
|
51
|
+
error: getErrorMessage(error),
|
|
52
|
+
objectUrl: "",
|
|
53
|
+
wasFound: false
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
18
57
|
const mkdir = async (uri) => {
|
|
19
58
|
await FileSystemWorker.mkdir(uri);
|
|
20
59
|
};
|
|
@@ -30,6 +69,7 @@ const writeFile = async (uri, content) => {
|
|
|
30
69
|
export {
|
|
31
70
|
exists,
|
|
32
71
|
mkdir,
|
|
72
|
+
readAsObjectUrl,
|
|
33
73
|
readDirWithFileTypes,
|
|
34
74
|
readFile,
|
|
35
75
|
remove,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MessagePortRpcParent } from "@lvce-editor/rpc";
|
|
2
2
|
import { ExtensionManagementWorker } from "@lvce-editor/rpc-registry";
|
|
3
|
-
const sendMessagePortToWebWorker = async (port, name, url) => {
|
|
4
|
-
await ExtensionManagementWorker.invokeAndTransfer("Extensions.createWebViewWorkerRpc2", { name, url }, port);
|
|
3
|
+
const sendMessagePortToWebWorker = async (port, contentSecurityPolicy, name, url) => {
|
|
4
|
+
await ExtensionManagementWorker.invokeAndTransfer("Extensions.createWebViewWorkerRpc2", { contentSecurityPolicy, name, url }, port);
|
|
5
5
|
};
|
|
6
6
|
const createMessagePortRpc = async (commandMap, send) => {
|
|
7
7
|
const { port1, port2 } = new MessageChannel();
|
|
@@ -14,8 +14,8 @@ const createMessagePortRpc = async (commandMap, send) => {
|
|
|
14
14
|
await send(port1);
|
|
15
15
|
return rpcPromise;
|
|
16
16
|
};
|
|
17
|
-
const createRpc = async ({ commandMap = {}, name = "", url }) => {
|
|
18
|
-
return createMessagePortRpc(commandMap, (port) => sendMessagePortToWebWorker(port, name, url));
|
|
17
|
+
const createRpc = async ({ commandMap = {}, contentSecurityPolicy = "", name = "", url }) => {
|
|
18
|
+
return createMessagePortRpc(commandMap, (port) => sendMessagePortToWebWorker(port, contentSecurityPolicy, name, url));
|
|
19
19
|
};
|
|
20
20
|
const resolveNodeRpcOptions = async ({ id, name = "", path }) => {
|
|
21
21
|
if (id) {
|