@lvce-editor/embeds-worker 3.0.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.
- package/README.md +12 -1
- package/dist/embedsWorkerMain.js +465 -66
- package/package.json +9 -6
package/README.md
CHANGED
package/dist/embedsWorkerMain.js
CHANGED
|
@@ -472,7 +472,7 @@ const create$4 = (method, params) => {
|
|
|
472
472
|
};
|
|
473
473
|
};
|
|
474
474
|
const callbacks = Object.create(null);
|
|
475
|
-
const set$
|
|
475
|
+
const set$5 = (id, fn) => {
|
|
476
476
|
callbacks[id] = fn;
|
|
477
477
|
};
|
|
478
478
|
const get$1 = id => {
|
|
@@ -491,7 +491,7 @@ const registerPromise = () => {
|
|
|
491
491
|
resolve,
|
|
492
492
|
promise
|
|
493
493
|
} = Promise.withResolvers();
|
|
494
|
-
set$
|
|
494
|
+
set$5(id, resolve);
|
|
495
495
|
return {
|
|
496
496
|
id,
|
|
497
497
|
promise
|
|
@@ -564,6 +564,17 @@ const constructError = (message, type, name) => {
|
|
|
564
564
|
}
|
|
565
565
|
return new ErrorConstructor(message);
|
|
566
566
|
};
|
|
567
|
+
const joinLines = lines => {
|
|
568
|
+
return lines.join(NewLine);
|
|
569
|
+
};
|
|
570
|
+
const splitLines = lines => {
|
|
571
|
+
return lines.split(NewLine);
|
|
572
|
+
};
|
|
573
|
+
const getCurrentStack = () => {
|
|
574
|
+
const stackLinesToSkip = 3;
|
|
575
|
+
const currentStack = joinLines(splitLines(new Error().stack || '').slice(stackLinesToSkip));
|
|
576
|
+
return currentStack;
|
|
577
|
+
};
|
|
567
578
|
const getNewLineIndex = (string, startIndex = undefined) => {
|
|
568
579
|
return string.indexOf(NewLine, startIndex);
|
|
569
580
|
};
|
|
@@ -574,19 +585,16 @@ const getParentStack = error => {
|
|
|
574
585
|
}
|
|
575
586
|
return parentStack;
|
|
576
587
|
};
|
|
577
|
-
const joinLines = lines => {
|
|
578
|
-
return lines.join(NewLine);
|
|
579
|
-
};
|
|
580
588
|
const MethodNotFound = -32601;
|
|
581
589
|
const Custom = -32001;
|
|
582
|
-
const splitLines = lines => {
|
|
583
|
-
return lines.split(NewLine);
|
|
584
|
-
};
|
|
585
590
|
const restoreJsonRpcError = error => {
|
|
591
|
+
const currentStack = getCurrentStack();
|
|
586
592
|
if (error && error instanceof Error) {
|
|
593
|
+
if (typeof error.stack === 'string') {
|
|
594
|
+
error.stack = error.stack + NewLine + currentStack;
|
|
595
|
+
}
|
|
587
596
|
return error;
|
|
588
597
|
}
|
|
589
|
-
const currentStack = joinLines(splitLines(new Error().stack || '').slice(1));
|
|
590
598
|
if (error && error.code && error.code === MethodNotFound) {
|
|
591
599
|
const restoredError = new JsonRpcError(error.message);
|
|
592
600
|
const parentStack = getParentStack(error);
|
|
@@ -667,6 +675,17 @@ const getErrorType = prettyError => {
|
|
|
667
675
|
}
|
|
668
676
|
return undefined;
|
|
669
677
|
};
|
|
678
|
+
const isAlreadyStack = line => {
|
|
679
|
+
return line.trim().startsWith('at ');
|
|
680
|
+
};
|
|
681
|
+
const getStack = prettyError => {
|
|
682
|
+
const stackString = prettyError.stack || '';
|
|
683
|
+
const newLineIndex = stackString.indexOf('\n');
|
|
684
|
+
if (newLineIndex !== -1 && !isAlreadyStack(stackString.slice(0, newLineIndex))) {
|
|
685
|
+
return stackString.slice(newLineIndex + 1);
|
|
686
|
+
}
|
|
687
|
+
return stackString;
|
|
688
|
+
};
|
|
670
689
|
const getErrorProperty = (error, prettyError) => {
|
|
671
690
|
if (error && error.code === E_COMMAND_NOT_FOUND) {
|
|
672
691
|
return {
|
|
@@ -679,7 +698,7 @@ const getErrorProperty = (error, prettyError) => {
|
|
|
679
698
|
code: Custom,
|
|
680
699
|
message: prettyError.message,
|
|
681
700
|
data: {
|
|
682
|
-
stack: prettyError
|
|
701
|
+
stack: getStack(prettyError),
|
|
683
702
|
codeFrame: prettyError.codeFrame,
|
|
684
703
|
type: getErrorType(prettyError),
|
|
685
704
|
code: prettyError.code,
|
|
@@ -687,18 +706,18 @@ const getErrorProperty = (error, prettyError) => {
|
|
|
687
706
|
}
|
|
688
707
|
};
|
|
689
708
|
};
|
|
690
|
-
const create$1$1 = (
|
|
709
|
+
const create$1$1 = (id, error) => {
|
|
691
710
|
return {
|
|
692
711
|
jsonrpc: Two,
|
|
693
|
-
id
|
|
712
|
+
id,
|
|
694
713
|
error
|
|
695
714
|
};
|
|
696
715
|
};
|
|
697
|
-
const getErrorResponse = (
|
|
716
|
+
const getErrorResponse = (id, error, preparePrettyError, logError) => {
|
|
698
717
|
const prettyError = preparePrettyError(error);
|
|
699
718
|
logError(error, prettyError);
|
|
700
719
|
const errorProperty = getErrorProperty(error, prettyError);
|
|
701
|
-
return create$1$1(
|
|
720
|
+
return create$1$1(id, errorProperty);
|
|
702
721
|
};
|
|
703
722
|
const create$5 = (message, result) => {
|
|
704
723
|
return {
|
|
@@ -711,12 +730,27 @@ const getSuccessResponse = (message, result) => {
|
|
|
711
730
|
const resultProperty = result ?? null;
|
|
712
731
|
return create$5(message, resultProperty);
|
|
713
732
|
};
|
|
733
|
+
const getErrorResponseSimple = (id, error) => {
|
|
734
|
+
return {
|
|
735
|
+
jsonrpc: Two,
|
|
736
|
+
id,
|
|
737
|
+
error: {
|
|
738
|
+
code: Custom,
|
|
739
|
+
// @ts-ignore
|
|
740
|
+
message: error.message,
|
|
741
|
+
data: error
|
|
742
|
+
}
|
|
743
|
+
};
|
|
744
|
+
};
|
|
714
745
|
const getResponse = async (message, ipc, execute, preparePrettyError, logError, requiresSocket) => {
|
|
715
746
|
try {
|
|
716
747
|
const result = requiresSocket(message.method) ? await execute(message.method, ipc, ...message.params) : await execute(message.method, ...message.params);
|
|
717
748
|
return getSuccessResponse(message, result);
|
|
718
749
|
} catch (error) {
|
|
719
|
-
|
|
750
|
+
if (ipc.canUseSimpleErrorResponse) {
|
|
751
|
+
return getErrorResponseSimple(message.id, error);
|
|
752
|
+
}
|
|
753
|
+
return getErrorResponse(message.id, error, preparePrettyError, logError);
|
|
720
754
|
}
|
|
721
755
|
};
|
|
722
756
|
const defaultPreparePrettyError = error => {
|
|
@@ -771,7 +805,7 @@ const handleJsonRpcMessage = async (...args) => {
|
|
|
771
805
|
try {
|
|
772
806
|
ipc.send(response);
|
|
773
807
|
} catch (error) {
|
|
774
|
-
const errorResponse = getErrorResponse(message, error, preparePrettyError, logError);
|
|
808
|
+
const errorResponse = getErrorResponse(message.id, error, preparePrettyError, logError);
|
|
775
809
|
ipc.send(errorResponse);
|
|
776
810
|
}
|
|
777
811
|
return;
|
|
@@ -802,13 +836,19 @@ const send = (transport, method, ...params) => {
|
|
|
802
836
|
const message = create$4(method, params);
|
|
803
837
|
transport.send(message);
|
|
804
838
|
};
|
|
805
|
-
const invoke$
|
|
839
|
+
const invoke$4 = (ipc, method, ...params) => {
|
|
806
840
|
return invokeHelper(ipc, method, params, false);
|
|
807
841
|
};
|
|
808
|
-
const invokeAndTransfer$
|
|
842
|
+
const invokeAndTransfer$3 = (ipc, method, ...params) => {
|
|
809
843
|
return invokeHelper(ipc, method, params, true);
|
|
810
844
|
};
|
|
811
845
|
|
|
846
|
+
class CommandNotFoundError extends Error {
|
|
847
|
+
constructor(command) {
|
|
848
|
+
super(`Command not found ${command}`);
|
|
849
|
+
this.name = 'CommandNotFoundError';
|
|
850
|
+
}
|
|
851
|
+
}
|
|
812
852
|
const commands = Object.create(null);
|
|
813
853
|
const register = commandMap => {
|
|
814
854
|
Object.assign(commands, commandMap);
|
|
@@ -819,7 +859,7 @@ const getCommand = key => {
|
|
|
819
859
|
const execute = (command, ...args) => {
|
|
820
860
|
const fn = getCommand(command);
|
|
821
861
|
if (!fn) {
|
|
822
|
-
throw new
|
|
862
|
+
throw new CommandNotFoundError(command);
|
|
823
863
|
}
|
|
824
864
|
return fn(...args);
|
|
825
865
|
};
|
|
@@ -835,10 +875,10 @@ const createRpc = ipc => {
|
|
|
835
875
|
send(ipc, method, ...params);
|
|
836
876
|
},
|
|
837
877
|
invoke(method, ...params) {
|
|
838
|
-
return invoke$
|
|
878
|
+
return invoke$4(ipc, method, ...params);
|
|
839
879
|
},
|
|
840
880
|
invokeAndTransfer(method, ...params) {
|
|
841
|
-
return invokeAndTransfer$
|
|
881
|
+
return invokeAndTransfer$3(ipc, method, ...params);
|
|
842
882
|
},
|
|
843
883
|
async dispose() {
|
|
844
884
|
await ipc?.dispose();
|
|
@@ -876,7 +916,7 @@ const listen$1 = async (module, options) => {
|
|
|
876
916
|
const ipc = module.wrap(rawIpc);
|
|
877
917
|
return ipc;
|
|
878
918
|
};
|
|
879
|
-
const create$
|
|
919
|
+
const create$e = async ({
|
|
880
920
|
commandMap,
|
|
881
921
|
messagePort,
|
|
882
922
|
isMessagePortOpen
|
|
@@ -894,7 +934,7 @@ const create$9 = async ({
|
|
|
894
934
|
};
|
|
895
935
|
const MessagePortRpcParent = {
|
|
896
936
|
__proto__: null,
|
|
897
|
-
create: create$
|
|
937
|
+
create: create$e
|
|
898
938
|
};
|
|
899
939
|
const create$1 = async ({
|
|
900
940
|
commandMap
|
|
@@ -910,17 +950,38 @@ const WebWorkerRpcClient = {
|
|
|
910
950
|
__proto__: null,
|
|
911
951
|
create: create$1
|
|
912
952
|
};
|
|
953
|
+
const createMockRpc = ({
|
|
954
|
+
commandMap
|
|
955
|
+
}) => {
|
|
956
|
+
const invocations = [];
|
|
957
|
+
const invoke = (method, ...params) => {
|
|
958
|
+
invocations.push([method, ...params]);
|
|
959
|
+
const command = commandMap[method];
|
|
960
|
+
if (!command) {
|
|
961
|
+
throw new Error(`command ${method} not found`);
|
|
962
|
+
}
|
|
963
|
+
return command(...params);
|
|
964
|
+
};
|
|
965
|
+
const mockRpc = {
|
|
966
|
+
invoke,
|
|
967
|
+
invokeAndTransfer: invoke,
|
|
968
|
+
invocations
|
|
969
|
+
};
|
|
970
|
+
return mockRpc;
|
|
971
|
+
};
|
|
972
|
+
|
|
973
|
+
const DebugWorker = 55;
|
|
974
|
+
const EmbedsProcess$1 = 207;
|
|
975
|
+
const RendererWorker$1 = 1;
|
|
913
976
|
|
|
914
977
|
const rpcs = Object.create(null);
|
|
915
|
-
const set$
|
|
978
|
+
const set$4 = (id, rpc) => {
|
|
916
979
|
rpcs[id] = rpc;
|
|
917
980
|
};
|
|
918
981
|
const get = id => {
|
|
919
982
|
return rpcs[id];
|
|
920
983
|
};
|
|
921
984
|
|
|
922
|
-
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
923
|
-
|
|
924
985
|
const create = rpcId => {
|
|
925
986
|
return {
|
|
926
987
|
// @ts-ignore
|
|
@@ -936,46 +997,399 @@ const create = rpcId => {
|
|
|
936
997
|
return rpc.invokeAndTransfer(method, ...params);
|
|
937
998
|
},
|
|
938
999
|
set(rpc) {
|
|
939
|
-
set$
|
|
1000
|
+
set$4(rpcId, rpc);
|
|
1001
|
+
},
|
|
1002
|
+
async dispose() {
|
|
1003
|
+
const rpc = get(rpcId);
|
|
1004
|
+
await rpc.dispose();
|
|
940
1005
|
}
|
|
941
1006
|
};
|
|
942
1007
|
};
|
|
943
|
-
|
|
944
|
-
const RendererWorker$1 = 1;
|
|
1008
|
+
|
|
945
1009
|
const {
|
|
946
|
-
invoke: invoke$
|
|
947
|
-
|
|
948
|
-
|
|
1010
|
+
invoke: invoke$3,
|
|
1011
|
+
invokeAndTransfer: invokeAndTransfer$2,
|
|
1012
|
+
set: set$3,
|
|
1013
|
+
dispose: dispose$1
|
|
1014
|
+
} = create(EmbedsProcess$1);
|
|
1015
|
+
|
|
949
1016
|
const EmbedsProcess = {
|
|
950
1017
|
__proto__: null,
|
|
951
|
-
|
|
952
|
-
|
|
1018
|
+
dispose: dispose$1,
|
|
1019
|
+
invoke: invoke$3,
|
|
1020
|
+
invokeAndTransfer: invokeAndTransfer$2,
|
|
1021
|
+
set: set$3
|
|
953
1022
|
};
|
|
1023
|
+
|
|
954
1024
|
const {
|
|
955
1025
|
invoke: invoke$2,
|
|
956
|
-
invokeAndTransfer: invokeAndTransfer$
|
|
957
|
-
set: set$2
|
|
1026
|
+
invokeAndTransfer: invokeAndTransfer$1,
|
|
1027
|
+
set: set$2,
|
|
1028
|
+
dispose
|
|
958
1029
|
} = create(RendererWorker$1);
|
|
1030
|
+
const searchFileHtml = async uri => {
|
|
1031
|
+
return invoke$2('ExtensionHost.searchFileWithHtml', uri);
|
|
1032
|
+
};
|
|
1033
|
+
const getFilePathElectron = async file => {
|
|
1034
|
+
return invoke$2('FileSystemHandle.getFilePathElectron', file);
|
|
1035
|
+
};
|
|
1036
|
+
const showContextMenu = async (x, y, id, ...args) => {
|
|
1037
|
+
return invoke$2('ContextMenu.show', x, y, id, ...args);
|
|
1038
|
+
};
|
|
1039
|
+
const getElectronVersion = async () => {
|
|
1040
|
+
return invoke$2('Process.getElectronVersion');
|
|
1041
|
+
};
|
|
1042
|
+
const applyBulkReplacement = async bulkEdits => {
|
|
1043
|
+
await invoke$2('BulkReplacement.applyBulkReplacement', bulkEdits);
|
|
1044
|
+
};
|
|
1045
|
+
const setColorTheme = async id => {
|
|
1046
|
+
// @ts-ignore
|
|
1047
|
+
return invoke$2(/* ColorTheme.setColorTheme */'ColorTheme.setColorTheme', /* colorThemeId */id);
|
|
1048
|
+
};
|
|
1049
|
+
const getNodeVersion = async () => {
|
|
1050
|
+
return invoke$2('Process.getNodeVersion');
|
|
1051
|
+
};
|
|
1052
|
+
const getChromeVersion = async () => {
|
|
1053
|
+
return invoke$2('Process.getChromeVersion');
|
|
1054
|
+
};
|
|
1055
|
+
const getV8Version = async () => {
|
|
1056
|
+
return invoke$2('Process.getV8Version');
|
|
1057
|
+
};
|
|
1058
|
+
const getFileHandles = async fileIds => {
|
|
1059
|
+
const files = await invoke$2('FileSystemHandle.getFileHandles', fileIds);
|
|
1060
|
+
return files;
|
|
1061
|
+
};
|
|
1062
|
+
const setWorkspacePath = async path => {
|
|
1063
|
+
await invoke$2('Workspace.setPath', path);
|
|
1064
|
+
};
|
|
1065
|
+
const registerWebViewInterceptor = async (id, port) => {
|
|
1066
|
+
await invokeAndTransfer$1('WebView.registerInterceptor', id, port);
|
|
1067
|
+
};
|
|
1068
|
+
const unregisterWebViewInterceptor = async id => {
|
|
1069
|
+
await invoke$2('WebView.unregisterInterceptor', id);
|
|
1070
|
+
};
|
|
1071
|
+
const sendMessagePortToEditorWorker = async (port, rpcId) => {
|
|
1072
|
+
const command = 'HandleMessagePort.handleMessagePort';
|
|
1073
|
+
// @ts-ignore
|
|
1074
|
+
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToEditorWorker', port, command, rpcId);
|
|
1075
|
+
};
|
|
1076
|
+
const sendMessagePortToErrorWorker = async (port, rpcId) => {
|
|
1077
|
+
const command = 'Errors.handleMessagePort';
|
|
1078
|
+
// @ts-ignore
|
|
1079
|
+
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToErrorWorker', port, command, rpcId);
|
|
1080
|
+
};
|
|
1081
|
+
const sendMessagePortToMarkdownWorker = async (port, rpcId) => {
|
|
1082
|
+
const command = 'Markdown.handleMessagePort';
|
|
1083
|
+
// @ts-ignore
|
|
1084
|
+
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToMarkdownWorker', port, command, rpcId);
|
|
1085
|
+
};
|
|
1086
|
+
const sendMessagePortToIconThemeWorker = async (port, rpcId) => {
|
|
1087
|
+
const command = 'IconTheme.handleMessagePort';
|
|
1088
|
+
// @ts-ignore
|
|
1089
|
+
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToIconThemeWorker', port, command, rpcId);
|
|
1090
|
+
};
|
|
1091
|
+
const sendMessagePortToFileSystemWorker = async (port, rpcId) => {
|
|
1092
|
+
const command = 'FileSystem.handleMessagePort';
|
|
1093
|
+
// @ts-ignore
|
|
1094
|
+
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToFileSystemWorker', port, command, rpcId);
|
|
1095
|
+
};
|
|
1096
|
+
const readFile = async uri => {
|
|
1097
|
+
return invoke$2('FileSystem.readFile', uri);
|
|
1098
|
+
};
|
|
1099
|
+
const getWebViewSecret = async key => {
|
|
1100
|
+
// @ts-ignore
|
|
1101
|
+
return invoke$2('WebView.getSecret', key);
|
|
1102
|
+
};
|
|
1103
|
+
const setWebViewPort = async (uid, port, origin, portType) => {
|
|
1104
|
+
return invokeAndTransfer$1('WebView.setPort', uid, port, origin, portType);
|
|
1105
|
+
};
|
|
1106
|
+
const setFocus = key => {
|
|
1107
|
+
return invoke$2('Focus.setFocus', key);
|
|
1108
|
+
};
|
|
1109
|
+
const getFileIcon = async options => {
|
|
1110
|
+
return invoke$2('IconTheme.getFileIcon', options);
|
|
1111
|
+
};
|
|
1112
|
+
const getColorThemeNames = async () => {
|
|
1113
|
+
return invoke$2('ColorTheme.getColorThemeNames');
|
|
1114
|
+
};
|
|
1115
|
+
const disableExtension = async id => {
|
|
1116
|
+
// @ts-ignore
|
|
1117
|
+
return invoke$2('ExtensionManagement.disable', id);
|
|
1118
|
+
};
|
|
1119
|
+
const enableExtension = async id => {
|
|
1120
|
+
// @ts-ignore
|
|
1121
|
+
return invoke$2('ExtensionManagement.enable', id);
|
|
1122
|
+
};
|
|
1123
|
+
const handleDebugChange = async params => {
|
|
1124
|
+
// @ts-ignore
|
|
1125
|
+
return invoke$2('Run And Debug.handleChange', params);
|
|
1126
|
+
};
|
|
1127
|
+
const getFolderIcon = async options => {
|
|
1128
|
+
return invoke$2('IconTheme.getFolderIcon', options);
|
|
1129
|
+
};
|
|
1130
|
+
const closeWidget = async widgetId => {
|
|
1131
|
+
return invoke$2('Viewlet.closeWidget', widgetId);
|
|
1132
|
+
};
|
|
1133
|
+
const sendMessagePortToExtensionHostWorker = async (port, rpcId = 0) => {
|
|
1134
|
+
const command = 'HandleMessagePort.handleMessagePort2';
|
|
1135
|
+
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
|
|
1136
|
+
};
|
|
1137
|
+
const sendMessagePortToSearchProcess = async port => {
|
|
1138
|
+
await invokeAndTransfer$1('SendMessagePortToElectron.sendMessagePortToElectron', port, 'HandleMessagePortForSearchProcess.handleMessagePortForSearchProcess');
|
|
1139
|
+
};
|
|
1140
|
+
const confirm = async (message, options) => {
|
|
1141
|
+
// @ts-ignore
|
|
1142
|
+
const result = await invoke$2('ConfirmPrompt.prompt', message, options);
|
|
1143
|
+
return result;
|
|
1144
|
+
};
|
|
1145
|
+
const getRecentlyOpened = async () => {
|
|
1146
|
+
return invoke$2(/* RecentlyOpened.getRecentlyOpened */'RecentlyOpened.getRecentlyOpened');
|
|
1147
|
+
};
|
|
1148
|
+
const getKeyBindings = async () => {
|
|
1149
|
+
return invoke$2('KeyBindingsInitial.getKeyBindings');
|
|
1150
|
+
};
|
|
1151
|
+
const writeClipBoardText = async text => {
|
|
1152
|
+
await invoke$2('ClipBoard.writeText', /* text */text);
|
|
1153
|
+
};
|
|
1154
|
+
const writeClipBoardImage = async blob => {
|
|
1155
|
+
// @ts-ignore
|
|
1156
|
+
await invoke$2('ClipBoard.writeImage', /* text */blob);
|
|
1157
|
+
};
|
|
1158
|
+
const searchFileMemory = async uri => {
|
|
1159
|
+
// @ts-ignore
|
|
1160
|
+
return invoke$2('ExtensionHost.searchFileWithMemory', uri);
|
|
1161
|
+
};
|
|
1162
|
+
const searchFileFetch = async uri => {
|
|
1163
|
+
return invoke$2('ExtensionHost.searchFileWithFetch', uri);
|
|
1164
|
+
};
|
|
1165
|
+
const showMessageBox = async options => {
|
|
1166
|
+
return invoke$2('ElectronDialog.showMessageBox', options);
|
|
1167
|
+
};
|
|
1168
|
+
const handleDebugResumed = async params => {
|
|
1169
|
+
await invoke$2('Run And Debug.handleResumed', params);
|
|
1170
|
+
};
|
|
1171
|
+
const openWidget = async name => {
|
|
1172
|
+
await invoke$2('Viewlet.openWidget', name);
|
|
1173
|
+
};
|
|
1174
|
+
const getIcons = async requests => {
|
|
1175
|
+
const icons = await invoke$2('IconTheme.getIcons', requests);
|
|
1176
|
+
return icons;
|
|
1177
|
+
};
|
|
1178
|
+
const activateByEvent = event => {
|
|
1179
|
+
return invoke$2('ExtensionHostManagement.activateByEvent', event);
|
|
1180
|
+
};
|
|
1181
|
+
const setAdditionalFocus = focusKey => {
|
|
1182
|
+
// @ts-ignore
|
|
1183
|
+
return invoke$2('Focus.setAdditionalFocus', focusKey);
|
|
1184
|
+
};
|
|
1185
|
+
const getActiveEditorId = () => {
|
|
1186
|
+
// @ts-ignore
|
|
1187
|
+
return invoke$2('GetActiveEditor.getActiveEditorId');
|
|
1188
|
+
};
|
|
1189
|
+
const getWorkspacePath = () => {
|
|
1190
|
+
return invoke$2('Workspace.getPath');
|
|
1191
|
+
};
|
|
1192
|
+
const sendMessagePortToRendererProcess = async port => {
|
|
1193
|
+
const command = 'HandleMessagePort.handleMessagePort';
|
|
1194
|
+
// @ts-ignore
|
|
1195
|
+
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToRendererProcess', port, command, DebugWorker);
|
|
1196
|
+
};
|
|
1197
|
+
const getPreference = async key => {
|
|
1198
|
+
return await invoke$2('Preferences.get', key);
|
|
1199
|
+
};
|
|
1200
|
+
const getAllExtensions = async () => {
|
|
1201
|
+
return invoke$2('ExtensionManagement.getAllExtensions');
|
|
1202
|
+
};
|
|
1203
|
+
const rerenderEditor = async key => {
|
|
1204
|
+
// @ts-ignore
|
|
1205
|
+
return invoke$2('Editor.rerender', key);
|
|
1206
|
+
};
|
|
1207
|
+
const handleDebugPaused = async params => {
|
|
1208
|
+
await invoke$2('Run And Debug.handlePaused', params);
|
|
1209
|
+
};
|
|
1210
|
+
const openUri = async (uri, focus, options) => {
|
|
1211
|
+
await invoke$2('Main.openUri', uri, focus, options);
|
|
1212
|
+
};
|
|
1213
|
+
const sendMessagePortToSyntaxHighlightingWorker = async port => {
|
|
1214
|
+
await invokeAndTransfer$1(
|
|
1215
|
+
// @ts-ignore
|
|
1216
|
+
'SendMessagePortToSyntaxHighlightingWorker.sendMessagePortToSyntaxHighlightingWorker', port, 'HandleMessagePort.handleMessagePort2');
|
|
1217
|
+
};
|
|
1218
|
+
const handleDebugScriptParsed = async script => {
|
|
1219
|
+
await invoke$2('Run And Debug.handleScriptParsed', script);
|
|
1220
|
+
};
|
|
1221
|
+
const getWindowId = async () => {
|
|
1222
|
+
return invoke$2('GetWindowId.getWindowId');
|
|
1223
|
+
};
|
|
1224
|
+
const getBlob = async uri => {
|
|
1225
|
+
// @ts-ignore
|
|
1226
|
+
return invoke$2('FileSystem.getBlob', uri);
|
|
1227
|
+
};
|
|
1228
|
+
const getExtensionCommands = async () => {
|
|
1229
|
+
return invoke$2('ExtensionHost.getCommands');
|
|
1230
|
+
};
|
|
1231
|
+
const showErrorDialog = async errorInfo => {
|
|
1232
|
+
// @ts-ignore
|
|
1233
|
+
await invoke$2('ErrorHandling.showErrorDialog', errorInfo);
|
|
1234
|
+
};
|
|
1235
|
+
const getFolderSize = async uri => {
|
|
1236
|
+
// @ts-ignore
|
|
1237
|
+
return await invoke$2('FileSystem.getFolderSize', uri);
|
|
1238
|
+
};
|
|
1239
|
+
const getExtension = async id => {
|
|
1240
|
+
// @ts-ignore
|
|
1241
|
+
return invoke$2('ExtensionManagement.getExtension', id);
|
|
1242
|
+
};
|
|
1243
|
+
const getMarkdownDom = async html => {
|
|
1244
|
+
// @ts-ignore
|
|
1245
|
+
return invoke$2('Markdown.getVirtualDom', html);
|
|
1246
|
+
};
|
|
1247
|
+
const renderMarkdown = async (markdown, options) => {
|
|
1248
|
+
// @ts-ignore
|
|
1249
|
+
return invoke$2('Markdown.renderMarkdown', markdown, options);
|
|
1250
|
+
};
|
|
1251
|
+
const openNativeFolder = async uri => {
|
|
1252
|
+
// @ts-ignore
|
|
1253
|
+
await invoke$2('OpenNativeFolder.openNativeFolder', uri);
|
|
1254
|
+
};
|
|
1255
|
+
const uninstallExtension = async id => {
|
|
1256
|
+
return invoke$2('ExtensionManagement.uninstall', id);
|
|
1257
|
+
};
|
|
1258
|
+
const installExtension = async id => {
|
|
1259
|
+
// @ts-ignore
|
|
1260
|
+
return invoke$2('ExtensionManagement.install', id);
|
|
1261
|
+
};
|
|
1262
|
+
const openExtensionSearch = async () => {
|
|
1263
|
+
// @ts-ignore
|
|
1264
|
+
return invoke$2('SideBar.openViewlet', 'Extensions');
|
|
1265
|
+
};
|
|
1266
|
+
const setExtensionsSearchValue = async searchValue => {
|
|
1267
|
+
// @ts-ignore
|
|
1268
|
+
return invoke$2('Extensions.handleInput', searchValue);
|
|
1269
|
+
};
|
|
1270
|
+
const openExternal = async uri => {
|
|
1271
|
+
// @ts-ignore
|
|
1272
|
+
await invoke$2('Open.openExternal', uri);
|
|
1273
|
+
};
|
|
1274
|
+
const openUrl = async uri => {
|
|
1275
|
+
// @ts-ignore
|
|
1276
|
+
await invoke$2('Open.openUrl', uri);
|
|
1277
|
+
};
|
|
1278
|
+
const getAllPreferences = async () => {
|
|
1279
|
+
// @ts-ignore
|
|
1280
|
+
return invoke$2('Preferences.getAll');
|
|
1281
|
+
};
|
|
1282
|
+
const showSaveFilePicker = async () => {
|
|
1283
|
+
// @ts-ignore
|
|
1284
|
+
return invoke$2('FilePicker.showSaveFilePicker');
|
|
1285
|
+
};
|
|
1286
|
+
const getLogsDir = async () => {
|
|
1287
|
+
// @ts-ignore
|
|
1288
|
+
return invoke$2('PlatformPaths.getLogsDir');
|
|
1289
|
+
};
|
|
1290
|
+
const registerMockRpc = commandMap => {
|
|
1291
|
+
const mockRpc = createMockRpc({
|
|
1292
|
+
commandMap
|
|
1293
|
+
});
|
|
1294
|
+
set$2(mockRpc);
|
|
1295
|
+
return mockRpc;
|
|
1296
|
+
};
|
|
1297
|
+
|
|
959
1298
|
const RendererWorker = {
|
|
960
1299
|
__proto__: null,
|
|
1300
|
+
activateByEvent,
|
|
1301
|
+
applyBulkReplacement,
|
|
1302
|
+
closeWidget,
|
|
1303
|
+
confirm,
|
|
1304
|
+
disableExtension,
|
|
1305
|
+
dispose,
|
|
1306
|
+
enableExtension,
|
|
1307
|
+
getActiveEditorId,
|
|
1308
|
+
getAllExtensions,
|
|
1309
|
+
getAllPreferences,
|
|
1310
|
+
getBlob,
|
|
1311
|
+
getChromeVersion,
|
|
1312
|
+
getColorThemeNames,
|
|
1313
|
+
getElectronVersion,
|
|
1314
|
+
getExtension,
|
|
1315
|
+
getExtensionCommands,
|
|
1316
|
+
getFileHandles,
|
|
1317
|
+
getFileIcon,
|
|
1318
|
+
getFilePathElectron,
|
|
1319
|
+
getFolderIcon,
|
|
1320
|
+
getFolderSize,
|
|
1321
|
+
getIcons,
|
|
1322
|
+
getKeyBindings,
|
|
1323
|
+
getLogsDir,
|
|
1324
|
+
getMarkdownDom,
|
|
1325
|
+
getNodeVersion,
|
|
1326
|
+
getPreference,
|
|
1327
|
+
getRecentlyOpened,
|
|
1328
|
+
getV8Version,
|
|
1329
|
+
getWebViewSecret,
|
|
1330
|
+
getWindowId,
|
|
1331
|
+
getWorkspacePath,
|
|
1332
|
+
handleDebugChange,
|
|
1333
|
+
handleDebugPaused,
|
|
1334
|
+
handleDebugResumed,
|
|
1335
|
+
handleDebugScriptParsed,
|
|
1336
|
+
installExtension,
|
|
961
1337
|
invoke: invoke$2,
|
|
962
|
-
invokeAndTransfer: invokeAndTransfer$
|
|
963
|
-
|
|
1338
|
+
invokeAndTransfer: invokeAndTransfer$1,
|
|
1339
|
+
openExtensionSearch,
|
|
1340
|
+
openExternal,
|
|
1341
|
+
openNativeFolder,
|
|
1342
|
+
openUri,
|
|
1343
|
+
openUrl,
|
|
1344
|
+
openWidget,
|
|
1345
|
+
readFile,
|
|
1346
|
+
registerMockRpc,
|
|
1347
|
+
registerWebViewInterceptor,
|
|
1348
|
+
renderMarkdown,
|
|
1349
|
+
rerenderEditor,
|
|
1350
|
+
searchFileFetch,
|
|
1351
|
+
searchFileHtml,
|
|
1352
|
+
searchFileMemory,
|
|
1353
|
+
sendMessagePortToEditorWorker,
|
|
1354
|
+
sendMessagePortToErrorWorker,
|
|
1355
|
+
sendMessagePortToExtensionHostWorker,
|
|
1356
|
+
sendMessagePortToFileSystemWorker,
|
|
1357
|
+
sendMessagePortToIconThemeWorker,
|
|
1358
|
+
sendMessagePortToMarkdownWorker,
|
|
1359
|
+
sendMessagePortToRendererProcess,
|
|
1360
|
+
sendMessagePortToSearchProcess,
|
|
1361
|
+
sendMessagePortToSyntaxHighlightingWorker,
|
|
1362
|
+
set: set$2,
|
|
1363
|
+
setAdditionalFocus,
|
|
1364
|
+
setColorTheme,
|
|
1365
|
+
setExtensionsSearchValue,
|
|
1366
|
+
setFocus,
|
|
1367
|
+
setWebViewPort,
|
|
1368
|
+
setWorkspacePath,
|
|
1369
|
+
showContextMenu,
|
|
1370
|
+
showErrorDialog,
|
|
1371
|
+
showMessageBox,
|
|
1372
|
+
showSaveFilePicker,
|
|
1373
|
+
uninstallExtension,
|
|
1374
|
+
unregisterWebViewInterceptor,
|
|
1375
|
+
writeClipBoardImage,
|
|
1376
|
+
writeClipBoardText
|
|
964
1377
|
};
|
|
965
1378
|
|
|
966
1379
|
const {
|
|
967
|
-
|
|
968
|
-
|
|
1380
|
+
invoke: invoke$1,
|
|
1381
|
+
set: set$1
|
|
1382
|
+
} = EmbedsProcess;
|
|
1383
|
+
|
|
1384
|
+
const ERR_ABORTED = 'ERR_ABORTED';
|
|
1385
|
+
const ERR_FAILED = 'ERR_FAILED';
|
|
969
1386
|
|
|
970
1387
|
const {
|
|
971
1388
|
invoke,
|
|
972
|
-
|
|
973
|
-
|
|
1389
|
+
invokeAndTransfer,
|
|
1390
|
+
set
|
|
974
1391
|
} = RendererWorker;
|
|
975
1392
|
|
|
976
|
-
const ERR_ABORTED = 'ERR_ABORTED';
|
|
977
|
-
const ERR_FAILED = 'ERR_FAILED';
|
|
978
|
-
|
|
979
1393
|
const createWebContentsView = async (restoreId, fallThroughKeyBindings) => {
|
|
980
1394
|
// @ts-ignore
|
|
981
1395
|
const id = await invoke$1('ElectronWebContentsView.createWebContentsView', restoreId, fallThroughKeyBindings);
|
|
@@ -985,7 +1399,6 @@ const disposeWebContentsView = id => {
|
|
|
985
1399
|
return invoke$1('ElectronWebContentsView.disposeWebContentsView', id);
|
|
986
1400
|
};
|
|
987
1401
|
const resizeWebContentsView = (id, x, y, width, height) => {
|
|
988
|
-
// @ts-ignore
|
|
989
1402
|
return invoke$1('ElectronWebContentsView.resizeBrowserView', id, x, y, width, height);
|
|
990
1403
|
};
|
|
991
1404
|
const setIframeSrcFallback = async (id, error) => {
|
|
@@ -993,12 +1406,10 @@ const setIframeSrcFallback = async (id, error) => {
|
|
|
993
1406
|
code,
|
|
994
1407
|
message
|
|
995
1408
|
} = error;
|
|
996
|
-
// @ts-ignore
|
|
997
1409
|
await invoke$1('ElectronWebContentsView.setIframeSrcFallback', id, code, message);
|
|
998
1410
|
};
|
|
999
1411
|
const setIframeSrc = async (id, iframeSrc) => {
|
|
1000
1412
|
try {
|
|
1001
|
-
// @ts-ignore
|
|
1002
1413
|
await invoke$1('ElectronWebContentsView.setIframeSrc', id, iframeSrc);
|
|
1003
1414
|
} catch (error) {
|
|
1004
1415
|
console.log({
|
|
@@ -1006,11 +1417,13 @@ const setIframeSrc = async (id, iframeSrc) => {
|
|
|
1006
1417
|
});
|
|
1007
1418
|
// TODO send error back to embeds worker,
|
|
1008
1419
|
// embeds worker decides how to handle error
|
|
1420
|
+
|
|
1009
1421
|
// @ts-ignore
|
|
1010
1422
|
if (error && error.code === ERR_ABORTED) {
|
|
1011
1423
|
console.info(`[embeds worker] navigation to ${iframeSrc} aborted`);
|
|
1012
1424
|
return;
|
|
1013
1425
|
}
|
|
1426
|
+
|
|
1014
1427
|
// @ts-ignore
|
|
1015
1428
|
if (error && error.code === ERR_FAILED) {
|
|
1016
1429
|
console.info(`[embeds worker] navigation to ${iframeSrc} canceled`);
|
|
@@ -1025,63 +1438,49 @@ const setIframeSrc = async (id, iframeSrc) => {
|
|
|
1025
1438
|
}
|
|
1026
1439
|
};
|
|
1027
1440
|
const focus = id => {
|
|
1028
|
-
// @ts-ignore
|
|
1029
1441
|
return invoke$1('ElectronWebContentsView.focus', id);
|
|
1030
1442
|
};
|
|
1031
1443
|
const openDevtools = id => {
|
|
1032
|
-
// @ts-ignore
|
|
1033
1444
|
return invoke$1('ElectronWebContentsView.openDevtools', id);
|
|
1034
1445
|
};
|
|
1035
1446
|
const reload = id => {
|
|
1036
|
-
// @ts-ignore
|
|
1037
1447
|
return invoke$1('ElectronWebContentsView.reload', id);
|
|
1038
1448
|
};
|
|
1039
1449
|
const show = id => {
|
|
1040
|
-
// @ts-ignore
|
|
1041
1450
|
return invoke$1('ElectronWebContentsView.show', id);
|
|
1042
1451
|
};
|
|
1043
1452
|
const hide = id => {
|
|
1044
|
-
// @ts-ignore
|
|
1045
1453
|
return invoke$1('ElectronWebContentsView.hide', id);
|
|
1046
1454
|
};
|
|
1047
1455
|
const forward = id => {
|
|
1048
|
-
// @ts-ignore
|
|
1049
1456
|
return invoke$1('ElectronWebContentsView.forward', id);
|
|
1050
1457
|
};
|
|
1051
1458
|
const backward = id => {
|
|
1052
|
-
// @ts-ignore
|
|
1053
1459
|
return invoke$1('ElectronWebContentsView.backward', id);
|
|
1054
1460
|
};
|
|
1055
1461
|
const getDomTree = id => {
|
|
1056
|
-
// @ts-ignore
|
|
1057
1462
|
return invoke$1('ElectronWebContentsView.getDomTree', id);
|
|
1058
1463
|
};
|
|
1059
1464
|
const insertCss = (id, css) => {
|
|
1060
|
-
// @ts-ignore
|
|
1061
1465
|
return invoke$1('ElectronWebContentsView.insertCss', id, css);
|
|
1062
1466
|
};
|
|
1063
1467
|
const insertJavaScript = (id, code) => {
|
|
1064
|
-
// @ts-ignore
|
|
1065
1468
|
return invoke$1('ElectronWebContentsView.insertJavaScript', id, code);
|
|
1066
1469
|
};
|
|
1067
1470
|
const cancelNavigation = id => {
|
|
1068
|
-
// @ts-ignore
|
|
1069
1471
|
return invoke$1('ElectronWebContentsView.cancelNavigation', id);
|
|
1070
1472
|
};
|
|
1071
1473
|
const inspectElement = (id, x, y) => {
|
|
1072
|
-
// @ts-ignore
|
|
1073
1474
|
return invoke$1('ElectronWebContentsView.inspectElement', id, x, y);
|
|
1074
1475
|
};
|
|
1075
1476
|
const copyImageAt = (id, x, y) => {
|
|
1076
|
-
// @ts-ignore
|
|
1077
1477
|
return invoke$1('ElectronWebContentsView.copyImageAt', id, x, y);
|
|
1078
1478
|
};
|
|
1079
|
-
const setFallthroughKeyBindings = (id, fallthroughKeybindings) => {
|
|
1479
|
+
const setFallthroughKeyBindings = async (id, fallthroughKeybindings) => {
|
|
1080
1480
|
// TODO
|
|
1081
1481
|
// return EmbedsProcess.invoke('ElectronWebContentsView.setFallthroughKeyBindings', id, fallthroughKeybindings)
|
|
1082
1482
|
};
|
|
1083
1483
|
const getStats = (id, fallthroughKeybindings) => {
|
|
1084
|
-
// @ts-ignore
|
|
1085
1484
|
return invoke$1('ElectronWebContentsView.getStats', id, fallthroughKeybindings);
|
|
1086
1485
|
};
|
|
1087
1486
|
const forwardEvent = key => (id, ...args) => {
|
|
@@ -1093,7 +1492,7 @@ const handleWillNavigate = forwardEvent('ElectronBrowserView.handleWillNavigate'
|
|
|
1093
1492
|
const handleContextMenu = forwardEvent('ElectronBrowserView.handleContextMenu');
|
|
1094
1493
|
|
|
1095
1494
|
const exit = () => {
|
|
1096
|
-
|
|
1495
|
+
globalThis.close();
|
|
1097
1496
|
};
|
|
1098
1497
|
|
|
1099
1498
|
const getPortTuple = () => {
|
|
@@ -1126,8 +1525,8 @@ const createEmbedsProcessRpc = async () => {
|
|
|
1126
1525
|
port1.start();
|
|
1127
1526
|
const rpc = await MessagePortRpcParent.create({
|
|
1128
1527
|
commandMap: {},
|
|
1129
|
-
|
|
1130
|
-
|
|
1528
|
+
isMessagePortOpen: true,
|
|
1529
|
+
messagePort: port1
|
|
1131
1530
|
});
|
|
1132
1531
|
// TODO createMessageportRpcParent should call port start
|
|
1133
1532
|
return rpc;
|
package/package.json
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/embeds-worker",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "",
|
|
5
|
-
"
|
|
3
|
+
"version": "4.1.0",
|
|
4
|
+
"description": "Web Worker to manage electron webcontent views in Lvce Editor",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git@github.com:lvce-editor/embeds-worker.git"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"author": "Lvce Editor",
|
|
6
11
|
"type": "module",
|
|
7
|
-
"
|
|
8
|
-
"author": "",
|
|
9
|
-
"license": "MIT"
|
|
12
|
+
"main": "dist/embedsWorkerMain.js"
|
|
10
13
|
}
|