@lvce-editor/extension-management-worker 2.3.0 → 3.0.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/extensionManagementWorkerMain.js +180 -145
- package/package.json +1 -1
|
@@ -540,7 +540,7 @@ const waitForWebSocketToBeOpen = webSocket => {
|
|
|
540
540
|
open: Open
|
|
541
541
|
});
|
|
542
542
|
};
|
|
543
|
-
const create$
|
|
543
|
+
const create$6 = async ({
|
|
544
544
|
webSocket
|
|
545
545
|
}) => {
|
|
546
546
|
const firstWebSocketEvent = await waitForWebSocketToBeOpen(webSocket);
|
|
@@ -577,60 +577,18 @@ const wrap = webSocket => {
|
|
|
577
577
|
};
|
|
578
578
|
const IpcParentWithWebSocket$1 = {
|
|
579
579
|
__proto__: null,
|
|
580
|
-
create: create$
|
|
580
|
+
create: create$6,
|
|
581
581
|
wrap
|
|
582
582
|
};
|
|
583
583
|
|
|
584
|
-
const Two = '2.0';
|
|
585
|
-
const create$4$1 = (method, params) => {
|
|
586
|
-
return {
|
|
587
|
-
jsonrpc: Two,
|
|
588
|
-
method,
|
|
589
|
-
params
|
|
590
|
-
};
|
|
591
|
-
};
|
|
584
|
+
const Two$1 = '2.0';
|
|
592
585
|
const callbacks = Object.create(null);
|
|
593
|
-
const set$8 = (id, fn) => {
|
|
594
|
-
callbacks[id] = fn;
|
|
595
|
-
};
|
|
596
586
|
const get$5 = id => {
|
|
597
587
|
return callbacks[id];
|
|
598
588
|
};
|
|
599
|
-
const remove = id => {
|
|
589
|
+
const remove$1 = id => {
|
|
600
590
|
delete callbacks[id];
|
|
601
591
|
};
|
|
602
|
-
let id$1 = 0;
|
|
603
|
-
const create$3$1 = () => {
|
|
604
|
-
return ++id$1;
|
|
605
|
-
};
|
|
606
|
-
const registerPromise = () => {
|
|
607
|
-
const id = create$3$1();
|
|
608
|
-
const {
|
|
609
|
-
resolve,
|
|
610
|
-
promise
|
|
611
|
-
} = Promise.withResolvers();
|
|
612
|
-
set$8(id, resolve);
|
|
613
|
-
return {
|
|
614
|
-
id,
|
|
615
|
-
promise
|
|
616
|
-
};
|
|
617
|
-
};
|
|
618
|
-
const create$2$1 = (method, params) => {
|
|
619
|
-
const {
|
|
620
|
-
id,
|
|
621
|
-
promise
|
|
622
|
-
} = registerPromise();
|
|
623
|
-
const message = {
|
|
624
|
-
jsonrpc: Two,
|
|
625
|
-
method,
|
|
626
|
-
params,
|
|
627
|
-
id
|
|
628
|
-
};
|
|
629
|
-
return {
|
|
630
|
-
message,
|
|
631
|
-
promise
|
|
632
|
-
};
|
|
633
|
-
};
|
|
634
592
|
class JsonRpcError extends Error {
|
|
635
593
|
constructor(message) {
|
|
636
594
|
super(message);
|
|
@@ -781,7 +739,7 @@ const resolve = (id, response) => {
|
|
|
781
739
|
return;
|
|
782
740
|
}
|
|
783
741
|
fn(response);
|
|
784
|
-
remove(id);
|
|
742
|
+
remove$1(id);
|
|
785
743
|
};
|
|
786
744
|
const E_COMMAND_NOT_FOUND = 'E_COMMAND_NOT_FOUND';
|
|
787
745
|
const getErrorType = prettyError => {
|
|
@@ -824,9 +782,9 @@ const getErrorProperty = (error, prettyError) => {
|
|
|
824
782
|
}
|
|
825
783
|
};
|
|
826
784
|
};
|
|
827
|
-
const create$1$
|
|
785
|
+
const create$1$1 = (id, error) => {
|
|
828
786
|
return {
|
|
829
|
-
jsonrpc: Two,
|
|
787
|
+
jsonrpc: Two$1,
|
|
830
788
|
id,
|
|
831
789
|
error
|
|
832
790
|
};
|
|
@@ -835,22 +793,22 @@ const getErrorResponse = (id, error, preparePrettyError, logError) => {
|
|
|
835
793
|
const prettyError = preparePrettyError(error);
|
|
836
794
|
logError(error, prettyError);
|
|
837
795
|
const errorProperty = getErrorProperty(error, prettyError);
|
|
838
|
-
return create$1$
|
|
796
|
+
return create$1$1(id, errorProperty);
|
|
839
797
|
};
|
|
840
|
-
const create$
|
|
798
|
+
const create$4 = (message, result) => {
|
|
841
799
|
return {
|
|
842
|
-
jsonrpc: Two,
|
|
800
|
+
jsonrpc: Two$1,
|
|
843
801
|
id: message.id,
|
|
844
802
|
result: result ?? null
|
|
845
803
|
};
|
|
846
804
|
};
|
|
847
805
|
const getSuccessResponse = (message, result) => {
|
|
848
806
|
const resultProperty = result ?? null;
|
|
849
|
-
return create$
|
|
807
|
+
return create$4(message, resultProperty);
|
|
850
808
|
};
|
|
851
809
|
const getErrorResponseSimple = (id, error) => {
|
|
852
810
|
return {
|
|
853
|
-
jsonrpc: Two,
|
|
811
|
+
jsonrpc: Two$1,
|
|
854
812
|
id,
|
|
855
813
|
error: {
|
|
856
814
|
code: Custom,
|
|
@@ -937,29 +895,6 @@ const handleJsonRpcMessage = async (...args) => {
|
|
|
937
895
|
}
|
|
938
896
|
throw new JsonRpcError('unexpected message');
|
|
939
897
|
};
|
|
940
|
-
const invokeHelper = async (ipc, method, params, useSendAndTransfer) => {
|
|
941
|
-
const {
|
|
942
|
-
message,
|
|
943
|
-
promise
|
|
944
|
-
} = create$2$1(method, params);
|
|
945
|
-
if (useSendAndTransfer && ipc.sendAndTransfer) {
|
|
946
|
-
ipc.sendAndTransfer(message);
|
|
947
|
-
} else {
|
|
948
|
-
ipc.send(message);
|
|
949
|
-
}
|
|
950
|
-
const responseMessage = await promise;
|
|
951
|
-
return unwrapJsonRpcResult(responseMessage);
|
|
952
|
-
};
|
|
953
|
-
const send = (transport, method, ...params) => {
|
|
954
|
-
const message = create$4$1(method, params);
|
|
955
|
-
transport.send(message);
|
|
956
|
-
};
|
|
957
|
-
const invoke$5 = (ipc, method, ...params) => {
|
|
958
|
-
return invokeHelper(ipc, method, params, false);
|
|
959
|
-
};
|
|
960
|
-
const invokeAndTransfer$2 = (ipc, method, ...params) => {
|
|
961
|
-
return invokeHelper(ipc, method, params, true);
|
|
962
|
-
};
|
|
963
898
|
|
|
964
899
|
class CommandNotFoundError extends Error {
|
|
965
900
|
constructor(command) {
|
|
@@ -982,24 +917,87 @@ const execute = (command, ...args) => {
|
|
|
982
917
|
return fn(...args);
|
|
983
918
|
};
|
|
984
919
|
|
|
920
|
+
const Two = '2.0';
|
|
921
|
+
const create$t = (method, params) => {
|
|
922
|
+
return {
|
|
923
|
+
jsonrpc: Two,
|
|
924
|
+
method,
|
|
925
|
+
params
|
|
926
|
+
};
|
|
927
|
+
};
|
|
928
|
+
const create$s = (id, method, params) => {
|
|
929
|
+
const message = {
|
|
930
|
+
id,
|
|
931
|
+
jsonrpc: Two,
|
|
932
|
+
method,
|
|
933
|
+
params
|
|
934
|
+
};
|
|
935
|
+
return message;
|
|
936
|
+
};
|
|
937
|
+
let id$1 = 0;
|
|
938
|
+
const create$r = () => {
|
|
939
|
+
return ++id$1;
|
|
940
|
+
};
|
|
941
|
+
|
|
942
|
+
/* eslint-disable n/no-unsupported-features/es-syntax */
|
|
943
|
+
|
|
944
|
+
const registerPromise = map => {
|
|
945
|
+
const id = create$r();
|
|
946
|
+
const {
|
|
947
|
+
promise,
|
|
948
|
+
resolve
|
|
949
|
+
} = Promise.withResolvers();
|
|
950
|
+
map[id] = resolve;
|
|
951
|
+
return {
|
|
952
|
+
id,
|
|
953
|
+
promise
|
|
954
|
+
};
|
|
955
|
+
};
|
|
956
|
+
|
|
957
|
+
// @ts-ignore
|
|
958
|
+
const invokeHelper = async (callbacks, ipc, method, params, useSendAndTransfer) => {
|
|
959
|
+
const {
|
|
960
|
+
id,
|
|
961
|
+
promise
|
|
962
|
+
} = registerPromise(callbacks);
|
|
963
|
+
const message = create$s(id, method, params);
|
|
964
|
+
if (useSendAndTransfer && ipc.sendAndTransfer) {
|
|
965
|
+
ipc.sendAndTransfer(message);
|
|
966
|
+
} else {
|
|
967
|
+
ipc.send(message);
|
|
968
|
+
}
|
|
969
|
+
const responseMessage = await promise;
|
|
970
|
+
return unwrapJsonRpcResult(responseMessage);
|
|
971
|
+
};
|
|
985
972
|
const createRpc = ipc => {
|
|
973
|
+
const callbacks = Object.create(null);
|
|
974
|
+
ipc._resolve = (id, response) => {
|
|
975
|
+
const fn = callbacks[id];
|
|
976
|
+
if (!fn) {
|
|
977
|
+
console.warn(`callback ${id} may already be disposed`);
|
|
978
|
+
return;
|
|
979
|
+
}
|
|
980
|
+
fn(response);
|
|
981
|
+
delete callbacks[id];
|
|
982
|
+
};
|
|
986
983
|
const rpc = {
|
|
984
|
+
async dispose() {
|
|
985
|
+
await ipc?.dispose();
|
|
986
|
+
},
|
|
987
|
+
invoke(method, ...params) {
|
|
988
|
+
return invokeHelper(callbacks, ipc, method, params, false);
|
|
989
|
+
},
|
|
990
|
+
invokeAndTransfer(method, ...params) {
|
|
991
|
+
return invokeHelper(callbacks, ipc, method, params, true);
|
|
992
|
+
},
|
|
987
993
|
// @ts-ignore
|
|
988
994
|
ipc,
|
|
989
995
|
/**
|
|
990
996
|
* @deprecated
|
|
991
997
|
*/
|
|
992
998
|
send(method, ...params) {
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
invoke(method, ...params) {
|
|
996
|
-
return invoke$5(ipc, method, ...params);
|
|
997
|
-
},
|
|
998
|
-
invokeAndTransfer(method, ...params) {
|
|
999
|
-
return invokeAndTransfer$2(ipc, method, ...params);
|
|
1000
|
-
},
|
|
1001
|
-
async dispose() {
|
|
1002
|
-
await ipc?.dispose();
|
|
999
|
+
const message = create$t(method, params);
|
|
1000
|
+
ipc.send(message);
|
|
1003
1001
|
}
|
|
1004
1002
|
};
|
|
1005
1003
|
return rpc;
|
|
@@ -1016,7 +1014,7 @@ const logError = () => {
|
|
|
1016
1014
|
const handleMessage = event => {
|
|
1017
1015
|
const actualRequiresSocket = event?.target?.requiresSocket || requiresSocket;
|
|
1018
1016
|
const actualExecute = event?.target?.execute || execute;
|
|
1019
|
-
return handleJsonRpcMessage(event.target, event.data, actualExecute,
|
|
1017
|
+
return handleJsonRpcMessage(event.target, event.data, actualExecute, event.target._resolve, preparePrettyError, logError, actualRequiresSocket);
|
|
1020
1018
|
};
|
|
1021
1019
|
const handleIpc = ipc => {
|
|
1022
1020
|
if ('addEventListener' in ipc) {
|
|
@@ -1034,16 +1032,64 @@ const listen$1 = async (module, options) => {
|
|
|
1034
1032
|
const ipc = module.wrap(rawIpc);
|
|
1035
1033
|
return ipc;
|
|
1036
1034
|
};
|
|
1035
|
+
const Https = 'https:';
|
|
1036
|
+
const Ws = 'ws:';
|
|
1037
|
+
const Wss = 'wss:';
|
|
1038
|
+
const getWebSocketProtocol = locationProtocol => {
|
|
1039
|
+
return locationProtocol === Https ? Wss : Ws;
|
|
1040
|
+
};
|
|
1041
|
+
const getWebSocketUrl = (type, host, locationProtocol) => {
|
|
1042
|
+
const wsProtocol = getWebSocketProtocol(locationProtocol);
|
|
1043
|
+
return `${wsProtocol}//${host}/websocket/${type}`;
|
|
1044
|
+
};
|
|
1045
|
+
const getHost = () => {
|
|
1046
|
+
return location.host;
|
|
1047
|
+
};
|
|
1048
|
+
const getProtocol = () => {
|
|
1049
|
+
return location.protocol;
|
|
1050
|
+
};
|
|
1051
|
+
const create$i = async ({
|
|
1052
|
+
commandMap,
|
|
1053
|
+
webSocket
|
|
1054
|
+
}) => {
|
|
1055
|
+
// TODO create a commandMap per rpc instance
|
|
1056
|
+
register(commandMap);
|
|
1057
|
+
const rawIpc = await IpcParentWithWebSocket$1.create({
|
|
1058
|
+
webSocket
|
|
1059
|
+
});
|
|
1060
|
+
const ipc = IpcParentWithWebSocket$1.wrap(rawIpc);
|
|
1061
|
+
handleIpc(ipc);
|
|
1062
|
+
const rpc = createRpc(ipc);
|
|
1063
|
+
return rpc;
|
|
1064
|
+
};
|
|
1065
|
+
const create$h = async ({
|
|
1066
|
+
commandMap,
|
|
1067
|
+
type
|
|
1068
|
+
}) => {
|
|
1069
|
+
const host = getHost();
|
|
1070
|
+
const protocol = getProtocol();
|
|
1071
|
+
const wsUrl = getWebSocketUrl(type, host, protocol);
|
|
1072
|
+
const webSocket = new WebSocket(wsUrl);
|
|
1073
|
+
const rpc = await create$i({
|
|
1074
|
+
commandMap,
|
|
1075
|
+
webSocket
|
|
1076
|
+
});
|
|
1077
|
+
return rpc;
|
|
1078
|
+
};
|
|
1079
|
+
const WebSocketRpcParent2 = {
|
|
1080
|
+
__proto__: null,
|
|
1081
|
+
create: create$h
|
|
1082
|
+
};
|
|
1037
1083
|
const create$e = async ({
|
|
1038
1084
|
commandMap,
|
|
1039
|
-
|
|
1040
|
-
|
|
1085
|
+
isMessagePortOpen,
|
|
1086
|
+
messagePort
|
|
1041
1087
|
}) => {
|
|
1042
1088
|
// TODO create a commandMap per rpc instance
|
|
1043
1089
|
register(commandMap);
|
|
1044
1090
|
const rawIpc = await IpcParentWithMessagePort$1.create({
|
|
1045
|
-
|
|
1046
|
-
|
|
1091
|
+
isMessagePortOpen,
|
|
1092
|
+
messagePort
|
|
1047
1093
|
});
|
|
1048
1094
|
const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
|
|
1049
1095
|
handleIpc(ipc);
|
|
@@ -1056,13 +1102,14 @@ const MessagePortRpcParent = {
|
|
|
1056
1102
|
};
|
|
1057
1103
|
const create$5 = async ({
|
|
1058
1104
|
commandMap,
|
|
1105
|
+
isMessagePortOpen = true,
|
|
1059
1106
|
messagePort
|
|
1060
1107
|
}) => {
|
|
1061
1108
|
// TODO create a commandMap per rpc instance
|
|
1062
1109
|
register(commandMap);
|
|
1063
1110
|
const rawIpc = await IpcParentWithMessagePort$1.create({
|
|
1064
|
-
|
|
1065
|
-
|
|
1111
|
+
isMessagePortOpen,
|
|
1112
|
+
messagePort
|
|
1066
1113
|
});
|
|
1067
1114
|
const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
|
|
1068
1115
|
handleIpc(ipc);
|
|
@@ -1076,6 +1123,7 @@ const PlainMessagePortRpc = {
|
|
|
1076
1123
|
};
|
|
1077
1124
|
const create$3 = async ({
|
|
1078
1125
|
commandMap,
|
|
1126
|
+
isMessagePortOpen,
|
|
1079
1127
|
send
|
|
1080
1128
|
}) => {
|
|
1081
1129
|
const {
|
|
@@ -1085,6 +1133,7 @@ const create$3 = async ({
|
|
|
1085
1133
|
await send(port1);
|
|
1086
1134
|
return create$5({
|
|
1087
1135
|
commandMap,
|
|
1136
|
+
isMessagePortOpen,
|
|
1088
1137
|
messagePort: port2
|
|
1089
1138
|
});
|
|
1090
1139
|
};
|
|
@@ -1093,54 +1142,6 @@ const TransferMessagePortRpcParent = {
|
|
|
1093
1142
|
create: create$3
|
|
1094
1143
|
};
|
|
1095
1144
|
const create$2 = async ({
|
|
1096
|
-
commandMap,
|
|
1097
|
-
webSocket
|
|
1098
|
-
}) => {
|
|
1099
|
-
// TODO create a commandMap per rpc instance
|
|
1100
|
-
register(commandMap);
|
|
1101
|
-
const rawIpc = await IpcParentWithWebSocket$1.create({
|
|
1102
|
-
webSocket
|
|
1103
|
-
});
|
|
1104
|
-
const ipc = IpcParentWithWebSocket$1.wrap(rawIpc);
|
|
1105
|
-
handleIpc(ipc);
|
|
1106
|
-
const rpc = createRpc(ipc);
|
|
1107
|
-
return rpc;
|
|
1108
|
-
};
|
|
1109
|
-
const Https = 'https:';
|
|
1110
|
-
const Ws = 'ws:';
|
|
1111
|
-
const Wss = 'wss:';
|
|
1112
|
-
const getWebSocketProtocol = locationProtocol => {
|
|
1113
|
-
return locationProtocol === Https ? Wss : Ws;
|
|
1114
|
-
};
|
|
1115
|
-
const getWebSocketUrl = (type, host, locationProtocol) => {
|
|
1116
|
-
const wsProtocol = getWebSocketProtocol(locationProtocol);
|
|
1117
|
-
return `${wsProtocol}//${host}/websocket/${type}`;
|
|
1118
|
-
};
|
|
1119
|
-
const getHost = () => {
|
|
1120
|
-
return location.host;
|
|
1121
|
-
};
|
|
1122
|
-
const getProtocol = () => {
|
|
1123
|
-
return location.protocol;
|
|
1124
|
-
};
|
|
1125
|
-
const create$1$1 = async ({
|
|
1126
|
-
commandMap,
|
|
1127
|
-
type
|
|
1128
|
-
}) => {
|
|
1129
|
-
const host = getHost();
|
|
1130
|
-
const protocol = getProtocol();
|
|
1131
|
-
const wsUrl = getWebSocketUrl(type, host, protocol);
|
|
1132
|
-
const webSocket = new WebSocket(wsUrl);
|
|
1133
|
-
const rpc = await create$2({
|
|
1134
|
-
webSocket,
|
|
1135
|
-
commandMap
|
|
1136
|
-
});
|
|
1137
|
-
return rpc;
|
|
1138
|
-
};
|
|
1139
|
-
const WebSocketRpcParent2 = {
|
|
1140
|
-
__proto__: null,
|
|
1141
|
-
create: create$1$1
|
|
1142
|
-
};
|
|
1143
|
-
const create$4 = async ({
|
|
1144
1145
|
commandMap
|
|
1145
1146
|
}) => {
|
|
1146
1147
|
// TODO create a commandMap per rpc instance
|
|
@@ -1152,7 +1153,26 @@ const create$4 = async ({
|
|
|
1152
1153
|
};
|
|
1153
1154
|
const WebWorkerRpcClient = {
|
|
1154
1155
|
__proto__: null,
|
|
1155
|
-
create: create$
|
|
1156
|
+
create: create$2
|
|
1157
|
+
};
|
|
1158
|
+
const createMockRpc = ({
|
|
1159
|
+
commandMap
|
|
1160
|
+
}) => {
|
|
1161
|
+
const invocations = [];
|
|
1162
|
+
const invoke = (method, ...params) => {
|
|
1163
|
+
invocations.push([method, ...params]);
|
|
1164
|
+
const command = commandMap[method];
|
|
1165
|
+
if (!command) {
|
|
1166
|
+
throw new Error(`command ${method} not found`);
|
|
1167
|
+
}
|
|
1168
|
+
return command(...params);
|
|
1169
|
+
};
|
|
1170
|
+
const mockRpc = {
|
|
1171
|
+
invocations,
|
|
1172
|
+
invoke,
|
|
1173
|
+
invokeAndTransfer: invoke
|
|
1174
|
+
};
|
|
1175
|
+
return mockRpc;
|
|
1156
1176
|
};
|
|
1157
1177
|
|
|
1158
1178
|
const Web = 1;
|
|
@@ -1172,7 +1192,11 @@ const set$7 = (id, rpc) => {
|
|
|
1172
1192
|
const get$4 = id => {
|
|
1173
1193
|
return rpcs$1[id];
|
|
1174
1194
|
};
|
|
1195
|
+
const remove = id => {
|
|
1196
|
+
delete rpcs$1[id];
|
|
1197
|
+
};
|
|
1175
1198
|
|
|
1199
|
+
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
1176
1200
|
const create$1 = rpcId => {
|
|
1177
1201
|
return {
|
|
1178
1202
|
async dispose() {
|
|
@@ -1191,6 +1215,18 @@ const create$1 = rpcId => {
|
|
|
1191
1215
|
// @ts-ignore
|
|
1192
1216
|
return rpc.invokeAndTransfer(method, ...params);
|
|
1193
1217
|
},
|
|
1218
|
+
registerMockRpc(commandMap) {
|
|
1219
|
+
const mockRpc = createMockRpc({
|
|
1220
|
+
commandMap
|
|
1221
|
+
});
|
|
1222
|
+
set$7(rpcId, mockRpc);
|
|
1223
|
+
// @ts-ignore
|
|
1224
|
+
mockRpc[Symbol.dispose] = () => {
|
|
1225
|
+
remove(rpcId);
|
|
1226
|
+
};
|
|
1227
|
+
// @ts-ignore
|
|
1228
|
+
return mockRpc;
|
|
1229
|
+
},
|
|
1194
1230
|
set(rpc) {
|
|
1195
1231
|
set$7(rpcId, rpc);
|
|
1196
1232
|
}
|
|
@@ -1213,7 +1249,6 @@ const writeFile = async (uri, content) => {
|
|
|
1213
1249
|
return invoke$3('FileSystem.writeFile', uri, content);
|
|
1214
1250
|
};
|
|
1215
1251
|
const exists = async uri => {
|
|
1216
|
-
// @ts-ignore
|
|
1217
1252
|
return invoke$3('FileSystem.exists', uri);
|
|
1218
1253
|
};
|
|
1219
1254
|
|
|
@@ -1917,7 +1952,7 @@ const getWebExtensions = async assetDir => {
|
|
|
1917
1952
|
};
|
|
1918
1953
|
|
|
1919
1954
|
const getAllExtensions = async (assetDir, platform) => {
|
|
1920
|
-
if (
|
|
1955
|
+
if (typeof assetDir !== 'string') {
|
|
1921
1956
|
assetDir = await invoke$2('Layout.getAssetDir');
|
|
1922
1957
|
}
|
|
1923
1958
|
if (!platform) {
|