@lvce-editor/iframe-worker 5.36.0 → 6.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.
@@ -54,6 +54,49 @@ class VError extends Error {
54
54
  }
55
55
  }
56
56
 
57
+ class AssertionError extends Error {
58
+ constructor(message) {
59
+ super(message);
60
+ this.name = 'AssertionError';
61
+ }
62
+ }
63
+ const Object$1 = 1;
64
+ const Number = 2;
65
+ const Array$1 = 3;
66
+ const String = 4;
67
+ const Boolean = 5;
68
+ const Function = 6;
69
+ const Null = 7;
70
+ const Unknown = 8;
71
+ const getType = value => {
72
+ switch (typeof value) {
73
+ case 'number':
74
+ return Number;
75
+ case 'function':
76
+ return Function;
77
+ case 'string':
78
+ return String;
79
+ case 'object':
80
+ if (value === null) {
81
+ return Null;
82
+ }
83
+ if (Array.isArray(value)) {
84
+ return Array$1;
85
+ }
86
+ return Object$1;
87
+ case 'boolean':
88
+ return Boolean;
89
+ default:
90
+ return Unknown;
91
+ }
92
+ };
93
+ const number = value => {
94
+ const type = getType(value);
95
+ if (type !== Number) {
96
+ throw new AssertionError('expected value to be of type number');
97
+ }
98
+ };
99
+
57
100
  const isMessagePort = value => {
58
101
  return value && value instanceof MessagePort;
59
102
  };
@@ -464,7 +507,7 @@ const IpcParentWithMessagePort$1 = {
464
507
  };
465
508
 
466
509
  const Two = '2.0';
467
- const create$4 = (method, params) => {
510
+ const create$4$1 = (method, params) => {
468
511
  return {
469
512
  jsonrpc: Two,
470
513
  method,
@@ -719,7 +762,7 @@ const getErrorResponse = (id, error, preparePrettyError, logError) => {
719
762
  const errorProperty = getErrorProperty(error, prettyError);
720
763
  return create$1$1(id, errorProperty);
721
764
  };
722
- const create$5 = (message, result) => {
765
+ const create$7 = (message, result) => {
723
766
  return {
724
767
  jsonrpc: Two,
725
768
  id: message.id,
@@ -728,7 +771,7 @@ const create$5 = (message, result) => {
728
771
  };
729
772
  const getSuccessResponse = (message, result) => {
730
773
  const resultProperty = result ?? null;
731
- return create$5(message, resultProperty);
774
+ return create$7(message, resultProperty);
732
775
  };
733
776
  const getErrorResponseSimple = (id, error) => {
734
777
  return {
@@ -833,7 +876,7 @@ const invokeHelper = async (ipc, method, params, useSendAndTransfer) => {
833
876
  return unwrapJsonRpcResult(responseMessage);
834
877
  };
835
878
  const send = (transport, method, ...params) => {
836
- const message = create$4(method, params);
879
+ const message = create$4$1(method, params);
837
880
  transport.send(message);
838
881
  };
839
882
  const invoke$6 = (ipc, method, ...params) => {
@@ -936,7 +979,54 @@ const MessagePortRpcParent = {
936
979
  __proto__: null,
937
980
  create: create$e
938
981
  };
982
+ const create$5 = async ({
983
+ commandMap,
984
+ messagePort
985
+ }) => {
986
+ // TODO create a commandMap per rpc instance
987
+ register$4(commandMap);
988
+ const rawIpc = await IpcParentWithMessagePort$1.create({
989
+ messagePort,
990
+ isMessagePortOpen: true
991
+ });
992
+ const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
993
+ handleIpc(ipc);
994
+ const rpc = createRpc(ipc);
995
+ messagePort.start();
996
+ return rpc;
997
+ };
998
+ const create$4 = async ({
999
+ commandMap,
1000
+ messagePort
1001
+ }) => {
1002
+ return create$5({
1003
+ commandMap,
1004
+ messagePort
1005
+ });
1006
+ };
1007
+ const PlainMessagePortRpcParent = {
1008
+ __proto__: null,
1009
+ create: create$4
1010
+ };
939
1011
  const create$3 = async ({
1012
+ commandMap,
1013
+ send
1014
+ }) => {
1015
+ const {
1016
+ port1,
1017
+ port2
1018
+ } = new MessageChannel();
1019
+ await send(port1);
1020
+ return create$5({
1021
+ commandMap,
1022
+ messagePort: port2
1023
+ });
1024
+ };
1025
+ const TransferMessagePortRpcParent = {
1026
+ __proto__: null,
1027
+ create: create$3
1028
+ };
1029
+ const create$6 = async ({
940
1030
  commandMap
941
1031
  }) => {
942
1032
  // TODO create a commandMap per rpc instance
@@ -948,14 +1038,39 @@ const create$3 = async ({
948
1038
  };
949
1039
  const WebWorkerRpcClient = {
950
1040
  __proto__: null,
951
- create: create$3
1041
+ create: create$6
1042
+ };
1043
+ const createMockRpc = ({
1044
+ commandMap
1045
+ }) => {
1046
+ const invocations = [];
1047
+ const invoke = (method, ...params) => {
1048
+ invocations.push([method, ...params]);
1049
+ const command = commandMap[method];
1050
+ if (!command) {
1051
+ throw new Error(`command ${method} not found`);
1052
+ }
1053
+ return command(...params);
1054
+ };
1055
+ const mockRpc = {
1056
+ invoke,
1057
+ invokeAndTransfer: invoke,
1058
+ invocations
1059
+ };
1060
+ return mockRpc;
952
1061
  };
953
1062
 
1063
+ const Script = 2;
1064
+
954
1065
  const DebugWorker = 55;
1066
+ const ExtensionHostWorker = 44;
955
1067
  const RendererWorker$1 = 1;
956
1068
 
957
1069
  const rpcs$1 = Object.create(null);
958
1070
  const set$2 = (id, rpc) => {
1071
+ if (rpcs$1[id]) {
1072
+ throw new Error(`rpc with id ${id} is already registered`);
1073
+ }
959
1074
  rpcs$1[id] = rpc;
960
1075
  };
961
1076
  const get$1 = id => {
@@ -964,6 +1079,10 @@ const get$1 = id => {
964
1079
 
965
1080
  const create$2 = rpcId => {
966
1081
  return {
1082
+ async dispose() {
1083
+ const rpc = get$1(rpcId);
1084
+ await rpc.dispose();
1085
+ },
967
1086
  // @ts-ignore
968
1087
  invoke(method, ...params) {
969
1088
  const rpc = get$1(rpcId);
@@ -978,274 +1097,333 @@ const create$2 = rpcId => {
978
1097
  },
979
1098
  set(rpc) {
980
1099
  set$2(rpcId, rpc);
981
- },
982
- async dispose() {
983
- const rpc = get$1(rpcId);
984
- await rpc.dispose();
985
1100
  }
986
1101
  };
987
1102
  };
988
1103
 
989
1104
  const {
990
1105
  invoke: invoke$5,
991
- invokeAndTransfer: invokeAndTransfer$4,
992
- set: set$1,
993
- dispose
1106
+ invokeAndTransfer: invokeAndTransfer$4} = create$2(ExtensionHostWorker);
1107
+
1108
+ const {
1109
+ dispose,
1110
+ invoke: invoke$4,
1111
+ invokeAndTransfer: invokeAndTransfer$3,
1112
+ set: set$1
994
1113
  } = create$2(RendererWorker$1);
995
1114
  const searchFileHtml = async uri => {
996
- return invoke$5('ExtensionHost.searchFileWithHtml', uri);
1115
+ return invoke$4('ExtensionHost.searchFileWithHtml', uri);
997
1116
  };
998
1117
  const getFilePathElectron = async file => {
999
- return invoke$5('FileSystemHandle.getFilePathElectron', file);
1118
+ return invoke$4('FileSystemHandle.getFilePathElectron', file);
1000
1119
  };
1120
+ /**
1121
+ * @deprecated
1122
+ */
1001
1123
  const showContextMenu = async (x, y, id, ...args) => {
1002
- return invoke$5('ContextMenu.show', x, y, id, ...args);
1124
+ return invoke$4('ContextMenu.show', x, y, id, ...args);
1125
+ };
1126
+ const showContextMenu2 = async (uid, menuId, x, y, args) => {
1127
+ number(uid);
1128
+ number(menuId);
1129
+ number(x);
1130
+ number(y);
1131
+ // @ts-ignore
1132
+ await invoke$4('ContextMenu.show2', uid, menuId, x, y, args);
1003
1133
  };
1004
1134
  const getElectronVersion = async () => {
1005
- return invoke$5('Process.getElectronVersion');
1135
+ return invoke$4('Process.getElectronVersion');
1006
1136
  };
1007
1137
  const applyBulkReplacement = async bulkEdits => {
1008
- await invoke$5('BulkReplacement.applyBulkReplacement', bulkEdits);
1138
+ await invoke$4('BulkReplacement.applyBulkReplacement', bulkEdits);
1009
1139
  };
1010
1140
  const setColorTheme = async id => {
1011
1141
  // @ts-ignore
1012
- return invoke$5(/* ColorTheme.setColorTheme */'ColorTheme.setColorTheme', /* colorThemeId */id);
1142
+ return invoke$4(/* ColorTheme.setColorTheme */'ColorTheme.setColorTheme', /* colorThemeId */id);
1013
1143
  };
1014
1144
  const getNodeVersion = async () => {
1015
- return invoke$5('Process.getNodeVersion');
1145
+ return invoke$4('Process.getNodeVersion');
1016
1146
  };
1017
1147
  const getChromeVersion = async () => {
1018
- return invoke$5('Process.getChromeVersion');
1148
+ return invoke$4('Process.getChromeVersion');
1019
1149
  };
1020
1150
  const getV8Version = async () => {
1021
- return invoke$5('Process.getV8Version');
1151
+ return invoke$4('Process.getV8Version');
1022
1152
  };
1023
1153
  const getFileHandles = async fileIds => {
1024
- const files = await invoke$5('FileSystemHandle.getFileHandles', fileIds);
1154
+ const files = await invoke$4('FileSystemHandle.getFileHandles', fileIds);
1025
1155
  return files;
1026
1156
  };
1027
1157
  const setWorkspacePath = async path => {
1028
- await invoke$5('Workspace.setPath', path);
1158
+ await invoke$4('Workspace.setPath', path);
1029
1159
  };
1030
1160
  const registerWebViewInterceptor = async (id, port) => {
1031
- await invokeAndTransfer$4('WebView.registerInterceptor', id, port);
1161
+ await invokeAndTransfer$3('WebView.registerInterceptor', id, port);
1032
1162
  };
1033
1163
  const unregisterWebViewInterceptor = async id => {
1034
- await invoke$5('WebView.unregisterInterceptor', id);
1164
+ await invoke$4('WebView.unregisterInterceptor', id);
1035
1165
  };
1036
1166
  const sendMessagePortToEditorWorker = async (port, rpcId) => {
1037
1167
  const command = 'HandleMessagePort.handleMessagePort';
1038
1168
  // @ts-ignore
1039
- await invokeAndTransfer$4('SendMessagePortToExtensionHostWorker.sendMessagePortToEditorWorker', port, command, rpcId);
1169
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToEditorWorker', port, command, rpcId);
1040
1170
  };
1041
1171
  const sendMessagePortToErrorWorker = async (port, rpcId) => {
1042
1172
  const command = 'Errors.handleMessagePort';
1043
1173
  // @ts-ignore
1044
- await invokeAndTransfer$4('SendMessagePortToExtensionHostWorker.sendMessagePortToErrorWorker', port, command, rpcId);
1174
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToErrorWorker', port, command, rpcId);
1045
1175
  };
1046
1176
  const sendMessagePortToMarkdownWorker = async (port, rpcId) => {
1047
1177
  const command = 'Markdown.handleMessagePort';
1048
1178
  // @ts-ignore
1049
- await invokeAndTransfer$4('SendMessagePortToExtensionHostWorker.sendMessagePortToMarkdownWorker', port, command, rpcId);
1179
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToMarkdownWorker', port, command, rpcId);
1180
+ };
1181
+ const sendMessagePortToIconThemeWorker = async (port, rpcId) => {
1182
+ const command = 'IconTheme.handleMessagePort';
1183
+ // @ts-ignore
1184
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToIconThemeWorker', port, command, rpcId);
1050
1185
  };
1051
1186
  const sendMessagePortToFileSystemWorker = async (port, rpcId) => {
1052
1187
  const command = 'FileSystem.handleMessagePort';
1053
1188
  // @ts-ignore
1054
- await invokeAndTransfer$4('SendMessagePortToExtensionHostWorker.sendMessagePortToFileSystemWorker', port, command, rpcId);
1189
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToFileSystemWorker', port, command, rpcId);
1055
1190
  };
1056
1191
  const readFile$1 = async uri => {
1057
- return invoke$5('FileSystem.readFile', uri);
1192
+ return invoke$4('FileSystem.readFile', uri);
1058
1193
  };
1059
1194
  const getWebViewSecret = async key => {
1060
1195
  // @ts-ignore
1061
- return invoke$5('WebView.getSecret', key);
1196
+ return invoke$4('WebView.getSecret', key);
1062
1197
  };
1063
1198
  const setWebViewPort = async (uid, port, origin, portType) => {
1064
- return invokeAndTransfer$4('WebView.setPort', uid, port, origin, portType);
1199
+ return invokeAndTransfer$3('WebView.setPort', uid, port, origin, portType);
1065
1200
  };
1066
1201
  const setFocus = key => {
1067
- return invoke$5('Focus.setFocus', key);
1202
+ return invoke$4('Focus.setFocus', key);
1068
1203
  };
1069
1204
  const getFileIcon = async options => {
1070
- return invoke$5('IconTheme.getFileIcon', options);
1205
+ return invoke$4('IconTheme.getFileIcon', options);
1071
1206
  };
1072
1207
  const getColorThemeNames = async () => {
1073
- return invoke$5('ColorTheme.getColorThemeNames');
1208
+ return invoke$4('ColorTheme.getColorThemeNames');
1074
1209
  };
1075
1210
  const disableExtension = async id => {
1076
1211
  // @ts-ignore
1077
- return invoke$5('ExtensionManagement.disable', id);
1212
+ return invoke$4('ExtensionManagement.disable', id);
1078
1213
  };
1079
1214
  const enableExtension = async id => {
1080
1215
  // @ts-ignore
1081
- return invoke$5('ExtensionManagement.enable', id);
1216
+ return invoke$4('ExtensionManagement.enable', id);
1082
1217
  };
1083
1218
  const handleDebugChange = async params => {
1084
1219
  // @ts-ignore
1085
- return invoke$5('Run And Debug.handleChange', params);
1220
+ return invoke$4('Run And Debug.handleChange', params);
1086
1221
  };
1087
1222
  const getFolderIcon = async options => {
1088
- return invoke$5('IconTheme.getFolderIcon', options);
1223
+ return invoke$4('IconTheme.getFolderIcon', options);
1224
+ };
1225
+ const handleWorkspaceRefresh = async () => {
1226
+ return invoke$4('Layout.handleWorkspaceRefresh');
1089
1227
  };
1090
1228
  const closeWidget = async widgetId => {
1091
- return invoke$5('Viewlet.closeWidget', widgetId);
1229
+ return invoke$4('Viewlet.closeWidget', widgetId);
1092
1230
  };
1093
1231
  const sendMessagePortToExtensionHostWorker = async (port, rpcId = 0) => {
1094
1232
  const command = 'HandleMessagePort.handleMessagePort2';
1095
- await invokeAndTransfer$4('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
1233
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
1096
1234
  };
1097
1235
  const sendMessagePortToSearchProcess = async port => {
1098
- await invokeAndTransfer$4('SendMessagePortToElectron.sendMessagePortToElectron', port, 'HandleMessagePortForSearchProcess.handleMessagePortForSearchProcess');
1236
+ await invokeAndTransfer$3('SendMessagePortToElectron.sendMessagePortToElectron', port, 'HandleMessagePortForSearchProcess.handleMessagePortForSearchProcess');
1099
1237
  };
1100
1238
  const confirm = async (message, options) => {
1101
1239
  // @ts-ignore
1102
- const result = await invoke$5('ConfirmPrompt.prompt', message, options);
1240
+ const result = await invoke$4('ConfirmPrompt.prompt', message, options);
1103
1241
  return result;
1104
1242
  };
1105
1243
  const getRecentlyOpened = async () => {
1106
- return invoke$5(/* RecentlyOpened.getRecentlyOpened */'RecentlyOpened.getRecentlyOpened');
1244
+ return invoke$4(/* RecentlyOpened.getRecentlyOpened */'RecentlyOpened.getRecentlyOpened');
1107
1245
  };
1108
1246
  const getKeyBindings = async () => {
1109
- return invoke$5('KeyBindingsInitial.getKeyBindings');
1247
+ return invoke$4('KeyBindingsInitial.getKeyBindings');
1110
1248
  };
1111
1249
  const writeClipBoardText = async text => {
1112
- await invoke$5('ClipBoard.writeText', /* text */text);
1250
+ await invoke$4('ClipBoard.writeText', /* text */text);
1251
+ };
1252
+ const readClipBoardText = async () => {
1253
+ return invoke$4('ClipBoard.readText');
1113
1254
  };
1114
1255
  const writeClipBoardImage = async blob => {
1115
1256
  // @ts-ignore
1116
- await invoke$5('ClipBoard.writeImage', /* text */blob);
1257
+ await invoke$4('ClipBoard.writeImage', /* text */blob);
1117
1258
  };
1118
1259
  const searchFileMemory = async uri => {
1119
1260
  // @ts-ignore
1120
- return invoke$5('ExtensionHost.searchFileWithMemory', uri);
1261
+ return invoke$4('ExtensionHost.searchFileWithMemory', uri);
1121
1262
  };
1122
1263
  const searchFileFetch = async uri => {
1123
- return invoke$5('ExtensionHost.searchFileWithFetch', uri);
1264
+ return invoke$4('ExtensionHost.searchFileWithFetch', uri);
1124
1265
  };
1125
1266
  const showMessageBox = async options => {
1126
- return invoke$5('ElectronDialog.showMessageBox', options);
1267
+ return invoke$4('ElectronDialog.showMessageBox', options);
1127
1268
  };
1128
1269
  const handleDebugResumed = async params => {
1129
- await invoke$5('Run And Debug.handleResumed', params);
1270
+ await invoke$4('Run And Debug.handleResumed', params);
1130
1271
  };
1131
1272
  const openWidget = async name => {
1132
- await invoke$5('Viewlet.openWidget', name);
1273
+ await invoke$4('Viewlet.openWidget', name);
1133
1274
  };
1134
1275
  const getIcons = async requests => {
1135
- const icons = await invoke$5('IconTheme.getIcons', requests);
1276
+ const icons = await invoke$4('IconTheme.getIcons', requests);
1136
1277
  return icons;
1137
1278
  };
1138
1279
  const activateByEvent = event => {
1139
- return invoke$5('ExtensionHostManagement.activateByEvent', event);
1280
+ return invoke$4('ExtensionHostManagement.activateByEvent', event);
1140
1281
  };
1141
1282
  const setAdditionalFocus = focusKey => {
1142
1283
  // @ts-ignore
1143
- return invoke$5('Focus.setAdditionalFocus', focusKey);
1284
+ return invoke$4('Focus.setAdditionalFocus', focusKey);
1144
1285
  };
1145
1286
  const getActiveEditorId = () => {
1146
1287
  // @ts-ignore
1147
- return invoke$5('GetActiveEditor.getActiveEditorId');
1288
+ return invoke$4('GetActiveEditor.getActiveEditorId');
1148
1289
  };
1149
1290
  const getWorkspacePath = () => {
1150
- return invoke$5('Workspace.getPath');
1291
+ return invoke$4('Workspace.getPath');
1151
1292
  };
1152
1293
  const sendMessagePortToRendererProcess = async port => {
1153
1294
  const command = 'HandleMessagePort.handleMessagePort';
1154
1295
  // @ts-ignore
1155
- await invokeAndTransfer$4('SendMessagePortToExtensionHostWorker.sendMessagePortToRendererProcess', port, command, DebugWorker);
1296
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToRendererProcess', port, command, DebugWorker);
1297
+ };
1298
+ const sendMessagePortToTextMeasurementWorker = async port => {
1299
+ const command = 'TextMeasurement.handleMessagePort';
1300
+ // @ts-ignore
1301
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToTextMeasurementWorker', port, command, 0);
1302
+ };
1303
+ const sendMessagePortToSourceControlWorker = async port => {
1304
+ const command = 'SourceControl.handleMessagePort';
1305
+ // @ts-ignore
1306
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToSourceControlWorker', port, command, 0);
1307
+ };
1308
+ const sendMessagePortToSharedProcess = async port => {
1309
+ const command = 'HandleElectronMessagePort.handleElectronMessagePort';
1310
+ // @ts-ignore
1311
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToSharedProcess', port, command, 0);
1312
+ };
1313
+ const sendMessagePortToFileSystemProcess = async (port, rpcId) => {
1314
+ const command = 'HandleMessagePortForFileSystemProcess.handleMessagePortForFileSystemProcess';
1315
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToSharedProcess', port, command, rpcId);
1316
+ };
1317
+ const sendMessagePortToIframeWorker = async (port, rpcId) => {
1318
+ const command = 'Iframes.handleMessagePort';
1319
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToIframeWorker', port, command, rpcId);
1320
+ };
1321
+ const sendMessagePortToExtensionManagementWorker = async (port, rpcId) => {
1322
+ const command = 'Extensions.handleMessagePort';
1323
+ await invokeAndTransfer$3('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionManagementWorker', port, command, rpcId);
1156
1324
  };
1157
1325
  const getPreference = async key => {
1158
- return await invoke$5('Preferences.get', key);
1326
+ return await invoke$4('Preferences.get', key);
1159
1327
  };
1160
1328
  const getAllExtensions = async () => {
1161
- return invoke$5('ExtensionManagement.getAllExtensions');
1329
+ return invoke$4('ExtensionManagement.getAllExtensions');
1162
1330
  };
1163
1331
  const rerenderEditor = async key => {
1164
1332
  // @ts-ignore
1165
- return invoke$5('Editor.rerender', key);
1333
+ return invoke$4('Editor.rerender', key);
1166
1334
  };
1167
1335
  const handleDebugPaused = async params => {
1168
- await invoke$5('Run And Debug.handlePaused', params);
1336
+ await invoke$4('Run And Debug.handlePaused', params);
1169
1337
  };
1170
1338
  const openUri = async (uri, focus, options) => {
1171
- await invoke$5('Main.openUri', uri, focus, options);
1339
+ await invoke$4('Main.openUri', uri, focus, options);
1172
1340
  };
1173
1341
  const sendMessagePortToSyntaxHighlightingWorker = async port => {
1174
- await invokeAndTransfer$4(
1342
+ await invokeAndTransfer$3(
1175
1343
  // @ts-ignore
1176
1344
  'SendMessagePortToSyntaxHighlightingWorker.sendMessagePortToSyntaxHighlightingWorker', port, 'HandleMessagePort.handleMessagePort2');
1177
1345
  };
1178
1346
  const handleDebugScriptParsed = async script => {
1179
- await invoke$5('Run And Debug.handleScriptParsed', script);
1347
+ await invoke$4('Run And Debug.handleScriptParsed', script);
1180
1348
  };
1181
1349
  const getWindowId = async () => {
1182
- return invoke$5('GetWindowId.getWindowId');
1350
+ return invoke$4('GetWindowId.getWindowId');
1183
1351
  };
1184
1352
  const getBlob = async uri => {
1185
1353
  // @ts-ignore
1186
- return invoke$5('FileSystem.getBlob', uri);
1354
+ return invoke$4('FileSystem.getBlob', uri);
1187
1355
  };
1188
1356
  const getExtensionCommands = async () => {
1189
- return invoke$5('ExtensionHost.getCommands');
1357
+ return invoke$4('ExtensionHost.getCommands');
1190
1358
  };
1191
1359
  const showErrorDialog = async errorInfo => {
1192
1360
  // @ts-ignore
1193
- await invoke$5('ErrorHandling.showErrorDialog', errorInfo);
1361
+ await invoke$4('ErrorHandling.showErrorDialog', errorInfo);
1194
1362
  };
1195
1363
  const getFolderSize = async uri => {
1196
1364
  // @ts-ignore
1197
- return await invoke$5('FileSystem.getFolderSize', uri);
1365
+ return await invoke$4('FileSystem.getFolderSize', uri);
1198
1366
  };
1199
1367
  const getExtension = async id => {
1200
1368
  // @ts-ignore
1201
- return invoke$5('ExtensionManagement.getExtension', id);
1369
+ return invoke$4('ExtensionManagement.getExtension', id);
1202
1370
  };
1203
1371
  const getMarkdownDom = async html => {
1204
1372
  // @ts-ignore
1205
- return invoke$5('Markdown.getVirtualDom', html);
1373
+ return invoke$4('Markdown.getVirtualDom', html);
1206
1374
  };
1207
1375
  const renderMarkdown = async (markdown, options) => {
1208
1376
  // @ts-ignore
1209
- return invoke$5('Markdown.renderMarkdown', markdown, options);
1377
+ return invoke$4('Markdown.renderMarkdown', markdown, options);
1210
1378
  };
1211
1379
  const openNativeFolder = async uri => {
1212
1380
  // @ts-ignore
1213
- await invoke$5('OpenNativeFolder.openNativeFolder', uri);
1381
+ await invoke$4('OpenNativeFolder.openNativeFolder', uri);
1214
1382
  };
1215
1383
  const uninstallExtension = async id => {
1216
- return invoke$5('ExtensionManagement.uninstall', id);
1384
+ return invoke$4('ExtensionManagement.uninstall', id);
1217
1385
  };
1218
1386
  const installExtension = async id => {
1219
1387
  // @ts-ignore
1220
- return invoke$5('ExtensionManagement.install', id);
1388
+ return invoke$4('ExtensionManagement.install', id);
1221
1389
  };
1222
1390
  const openExtensionSearch = async () => {
1223
1391
  // @ts-ignore
1224
- return invoke$5('SideBar.openViewlet', 'Extensions');
1392
+ return invoke$4('SideBar.openViewlet', 'Extensions');
1225
1393
  };
1226
1394
  const setExtensionsSearchValue = async searchValue => {
1227
1395
  // @ts-ignore
1228
- return invoke$5('Extensions.handleInput', searchValue);
1396
+ return invoke$4('Extensions.handleInput', searchValue, Script);
1229
1397
  };
1230
1398
  const openExternal = async uri => {
1231
1399
  // @ts-ignore
1232
- await invoke$5('Open.openExternal', uri);
1400
+ await invoke$4('Open.openExternal', uri);
1233
1401
  };
1234
1402
  const openUrl = async uri => {
1235
1403
  // @ts-ignore
1236
- await invoke$5('Open.openUrl', uri);
1404
+ await invoke$4('Open.openUrl', uri);
1237
1405
  };
1238
1406
  const getAllPreferences = async () => {
1239
1407
  // @ts-ignore
1240
- return invoke$5('Preferences.getAll');
1408
+ return invoke$4('Preferences.getAll');
1241
1409
  };
1242
1410
  const showSaveFilePicker = async () => {
1243
1411
  // @ts-ignore
1244
- return invoke$5('FilePicker.showSaveFilePicker');
1412
+ return invoke$4('FilePicker.showSaveFilePicker');
1245
1413
  };
1246
1414
  const getLogsDir = async () => {
1247
1415
  // @ts-ignore
1248
- return invoke$5('PlatformPaths.getLogsDir');
1416
+ return invoke$4('PlatformPaths.getLogsDir');
1417
+ };
1418
+ const measureTextBlockHeight = async (actualInput, fontFamily, fontSize, lineHeightPx, width) => {
1419
+ return invoke$4(`MeasureTextHeight.measureTextBlockHeight`, actualInput, fontFamily, fontSize, lineHeightPx, width);
1420
+ };
1421
+ const registerMockRpc = commandMap => {
1422
+ const mockRpc = createMockRpc({
1423
+ commandMap
1424
+ });
1425
+ set$1(mockRpc);
1426
+ return mockRpc;
1249
1427
  };
1250
1428
 
1251
1429
  const RendererWorker = {
@@ -1286,16 +1464,20 @@ const RendererWorker = {
1286
1464
  handleDebugPaused,
1287
1465
  handleDebugResumed,
1288
1466
  handleDebugScriptParsed,
1467
+ handleWorkspaceRefresh,
1289
1468
  installExtension,
1290
- invoke: invoke$5,
1291
- invokeAndTransfer: invokeAndTransfer$4,
1469
+ invoke: invoke$4,
1470
+ invokeAndTransfer: invokeAndTransfer$3,
1471
+ measureTextBlockHeight,
1292
1472
  openExtensionSearch,
1293
1473
  openExternal,
1294
1474
  openNativeFolder,
1295
1475
  openUri,
1296
1476
  openUrl,
1297
1477
  openWidget,
1478
+ readClipBoardText,
1298
1479
  readFile: readFile$1,
1480
+ registerMockRpc,
1299
1481
  registerWebViewInterceptor,
1300
1482
  renderMarkdown,
1301
1483
  rerenderEditor,
@@ -1305,11 +1487,18 @@ const RendererWorker = {
1305
1487
  sendMessagePortToEditorWorker,
1306
1488
  sendMessagePortToErrorWorker,
1307
1489
  sendMessagePortToExtensionHostWorker,
1490
+ sendMessagePortToExtensionManagementWorker,
1491
+ sendMessagePortToFileSystemProcess,
1308
1492
  sendMessagePortToFileSystemWorker,
1493
+ sendMessagePortToIconThemeWorker,
1494
+ sendMessagePortToIframeWorker,
1309
1495
  sendMessagePortToMarkdownWorker,
1310
1496
  sendMessagePortToRendererProcess,
1311
1497
  sendMessagePortToSearchProcess,
1498
+ sendMessagePortToSharedProcess,
1499
+ sendMessagePortToSourceControlWorker,
1312
1500
  sendMessagePortToSyntaxHighlightingWorker,
1501
+ sendMessagePortToTextMeasurementWorker,
1313
1502
  set: set$1,
1314
1503
  setAdditionalFocus,
1315
1504
  setColorTheme,
@@ -1318,6 +1507,7 @@ const RendererWorker = {
1318
1507
  setWebViewPort,
1319
1508
  setWorkspacePath,
1320
1509
  showContextMenu,
1510
+ showContextMenu2,
1321
1511
  showErrorDialog,
1322
1512
  showMessageBox,
1323
1513
  showSaveFilePicker,
@@ -1327,20 +1517,6 @@ const RendererWorker = {
1327
1517
  writeClipBoardText
1328
1518
  };
1329
1519
 
1330
- const {
1331
- invoke: invoke$4,
1332
- invokeAndTransfer: invokeAndTransfer$3
1333
- } = RendererWorker;
1334
-
1335
- const invoke$3 = async (method, ...params) => {
1336
- // @ts-ignore
1337
- return invoke$4('WebView.compatExtensionHostWorkerInvoke', method, ...params);
1338
- };
1339
- const invokeAndTransfer$2 = async (method, ...params) => {
1340
- // @ts-ignore
1341
- return invokeAndTransfer$3('WebView.compatExtensionHostWorkerInvokeAndTransfer', method, ...params);
1342
- };
1343
-
1344
1520
  const getCredentialLess = locationHost => {
1345
1521
  if (locationHost.startsWith('localhost:')) {
1346
1522
  // disabled to improve performance and make testing easier
@@ -1547,9 +1723,14 @@ const getPortTuple = () => {
1547
1723
  };
1548
1724
  };
1549
1725
 
1726
+ const {
1727
+ invoke: invoke$3,
1728
+ invokeAndTransfer: invokeAndTransfer$2
1729
+ } = RendererWorker;
1730
+
1550
1731
  const getSavedState = async () => {
1551
1732
  // @ts-ignore
1552
- return invoke$4('WebView.getSavedState');
1733
+ return invoke$3('WebView.getSavedState');
1553
1734
  };
1554
1735
 
1555
1736
  const getSavedWebViewState = async id => {
@@ -1619,7 +1800,7 @@ const getIframePermissionPolicy = webView => {
1619
1800
 
1620
1801
  const getWebViews = async () => {
1621
1802
  // @ts-ignore
1622
- return invoke$4('WebView.getWebViews');
1803
+ return invoke$3('WebView.getWebViews');
1623
1804
  };
1624
1805
 
1625
1806
  const AllowScripts = 'allow-scripts';
@@ -1669,11 +1850,11 @@ const getPort = () => {
1669
1850
 
1670
1851
  const invoke$2 = async (method, ...params) => {
1671
1852
  // @ts-ignore
1672
- return invoke$4('WebView.compatRendererProcessInvoke', method, ...params);
1853
+ return invoke$3('WebView.compatRendererProcessInvoke', method, ...params);
1673
1854
  };
1674
1855
  const invokeAndTransfer$1 = async (method, ...params) => {
1675
1856
  // @ts-ignore
1676
- return invokeAndTransfer$3('WebView.compatRendererProcessInvokeAndTransfer', method, ...params);
1857
+ return invokeAndTransfer$2('WebView.compatRendererProcessInvokeAndTransfer', method, ...params);
1677
1858
  };
1678
1859
 
1679
1860
  const WebView = 'lvce-oss-webview';
@@ -1684,7 +1865,7 @@ const setPort = async (uid, port, origin, portType) => {
1684
1865
 
1685
1866
  const invoke$1 = async (method, ...params) => {
1686
1867
  // @ts-ignore
1687
- return invoke$4('WebView.compatSharedProcessInvoke', method, ...params);
1868
+ return invoke$3('WebView.compatSharedProcessInvoke', method, ...params);
1688
1869
  };
1689
1870
 
1690
1871
  const registerProtocol = async () => {
@@ -1801,7 +1982,7 @@ const create2 = async ({
1801
1982
  const permissionPolicyString = permissionPolicy.join('; ');
1802
1983
  const iframeCsp = platform === Web ? csp : '';
1803
1984
  const credentialless = getCredentialLess(locationHost);
1804
- await invoke$4('ExtensionHostManagement.activateByEvent', `onWebView:${webViewId}`);
1985
+ await invoke$3('ExtensionHostManagement.activateByEvent', `onWebView:${webViewId}`);
1805
1986
  const {
1806
1987
  port1,
1807
1988
  port2
@@ -1818,9 +1999,9 @@ const create2 = async ({
1818
1999
  const origin = getWebViewOrigin(webViewPort, platform, webViewScheme, webViewId);
1819
2000
  const portType = '';
1820
2001
  await setPort(id, port1, origin, portType);
1821
- await invokeAndTransfer$2('ExtensionHostWebView.create', webViewId, port2, uri, id, origin, webView);
2002
+ await invokeAndTransfer$4('ExtensionHostWebView.create', webViewId, port2, uri, id, origin, webView);
1822
2003
  const savedState = await getSavedWebViewState(webViewId);
1823
- await invoke$3('ExtensionHostWebView.load', webViewId, savedState);
2004
+ await invoke$5('ExtensionHostWebView.load', webViewId, savedState);
1824
2005
  return {
1825
2006
  csp: iframeCsp,
1826
2007
  iframeSrc,
@@ -1841,11 +2022,11 @@ const createAndLoadWebView = async (id, iframeSrc, sandbox, iframeCsp, credentia
1841
2022
 
1842
2023
  const invoke = async (method, ...params) => {
1843
2024
  // @ts-ignore
1844
- return invoke$4('WebView.compatRendererWorkerInvoke', method, ...params);
2025
+ return invoke$3('WebView.compatRendererWorkerInvoke', method, ...params);
1845
2026
  };
1846
2027
  const invokeAndTransfer = async (method, ...params) => {
1847
2028
  // @ts-ignore
1848
- return invokeAndTransfer$3('WebView.compatRendererWorkerInvokeAndTransfer', method, ...params);
2029
+ return invokeAndTransfer$2('WebView.compatRendererWorkerInvokeAndTransfer', method, ...params);
1849
2030
  };
1850
2031
 
1851
2032
  const createSecondaryWebViewConnection = async (uid, origin, port) => {
@@ -1854,19 +2035,13 @@ const createSecondaryWebViewConnection = async (uid, origin, port) => {
1854
2035
  };
1855
2036
 
1856
2037
  const createWebViewConnection = async (uid, origin) => {
1857
- const {
1858
- port1,
1859
- port2
1860
- } = getPortTuple();
1861
- const rpcPromise = MessagePortRpcParent.create({
2038
+ const rpc = await TransferMessagePortRpcParent.create({
1862
2039
  commandMap: {},
1863
- isMessagePortOpen: false,
1864
- messagePort: port2
2040
+ async send(port) {
2041
+ const portType = 'test';
2042
+ await invokeAndTransfer('WebView.setPort', uid, port, origin, portType);
2043
+ }
1865
2044
  });
1866
- const portType = 'test';
1867
- await invokeAndTransfer('WebView.setPort', uid, port1, origin, portType);
1868
- // TODO dispose rpc to avoid memory leak
1869
- const rpc = await rpcPromise;
1870
2045
  return rpc;
1871
2046
  };
1872
2047
 
@@ -1964,22 +2139,16 @@ const commandMap$1 = {
1964
2139
  };
1965
2140
 
1966
2141
  const getWebViewWorkerRpc2 = async rpcInfo => {
1967
- const {
1968
- port1,
1969
- port2
1970
- } = getPortTuple();
1971
- const rpcPromise = MessagePortRpcParent.create({
2142
+ const rpc = await TransferMessagePortRpcParent.create({
1972
2143
  commandMap: commandMap$1,
1973
- isMessagePortOpen: true,
1974
- messagePort: port2
2144
+ async send(port) {
2145
+ await invokeAndTransfer$4('WebView.createWebViewWorkerRpc2', rpcInfo, port);
2146
+ }
1975
2147
  });
1976
2148
  // TODO
1977
2149
  // 1. ask extension host worker to ask renderer worker to ask renderer process to create a worker with given url
1978
2150
  // 2. send the port through renderer worker to renderer process to the worker for a direct connection
1979
- await invokeAndTransfer$2('WebView.createWebViewWorkerRpc2', rpcInfo, port1);
1980
- const rpc = await rpcPromise;
1981
2151
  // TODO rpc module should start the port
1982
- port2.start();
1983
2152
  return rpc;
1984
2153
  };
1985
2154
 
@@ -2090,7 +2259,7 @@ const getWebViewWorkerRpc = async rpcInfo => {
2090
2259
  isMessagePortOpen: true,
2091
2260
  messagePort: port2
2092
2261
  });
2093
- await invokeAndTransfer$2('WebView.createWebViewWorkerRpc', rpcInfo, port1);
2262
+ await invokeAndTransfer$4('WebView.createWebViewWorkerRpc', rpcInfo, port1);
2094
2263
  const rpc = await rpcPromise;
2095
2264
  // TODO rpc module should start the port
2096
2265
  port2.start();
@@ -2131,7 +2300,7 @@ const createWebViewRpc = async (webView, savedState, uri, portId, webViewUid, or
2131
2300
  if (!webView || !webView.rpc || typeof webView.rpc !== 'string') {
2132
2301
  return;
2133
2302
  }
2134
- const rpcInfo = await invoke$3('WebView.getRpcInfo', webView.rpc);
2303
+ const rpcInfo = await invoke$5('WebView.getRpcInfo', webView.rpc);
2135
2304
  if (rpcInfo && rpcInfo.type === 'web-worker-2') {
2136
2305
  return createWebWorkerRpc2(rpcInfo, webView, savedState, uri, portId, webViewUid, origin);
2137
2306
  }
@@ -2218,7 +2387,7 @@ const create3 = async ({
2218
2387
  const credentialless = getCredentialLess(locationHost);
2219
2388
 
2220
2389
  // TODO remove this
2221
- await invoke$4('ExtensionHostManagement.activateByEvent', `onWebView:${webViewId}`);
2390
+ await invoke$3('ExtensionHostManagement.activateByEvent', `onWebView:${webViewId}`);
2222
2391
  const portId = create$1();
2223
2392
  const remotePathPrefix = '/remote';
2224
2393
  await register(previewServerId, webViewPort, frameAncestors, webViewRoot, csp, iframeContent, platform, webViewId, remotePathPrefix, useNewWebViewHandler);
@@ -2232,11 +2401,11 @@ const create3 = async ({
2232
2401
  } = getPortTuple();
2233
2402
  const portType = '';
2234
2403
  await setPort(id, port1, origin, portType);
2235
- await invokeAndTransfer$2('ExtensionHostWebView.create', webViewId, port2, uri, id, origin, webView);
2404
+ await invokeAndTransfer$4('ExtensionHostWebView.create', webViewId, port2, uri, id, origin, webView);
2236
2405
  }
2237
2406
  const savedState = await getSavedWebViewState(webViewId);
2238
2407
  if (hasOldRpc) {
2239
- await invoke$3('ExtensionHostWebView.load', webViewId, savedState);
2408
+ await invoke$5('ExtensionHostWebView.load', webViewId, savedState);
2240
2409
  }
2241
2410
  await createWebViewRpc(webView, savedState, uri, portId, id, origin);
2242
2411
  return {
@@ -2250,7 +2419,7 @@ const create3 = async ({
2250
2419
 
2251
2420
  const executeCommand = (method, ...params) => {
2252
2421
  // @ts-ignore
2253
- return invoke$4('ExecuteExternalCommand.executeExternalCommand', method, ...params);
2422
+ return invoke$3('ExecuteExternalCommand.executeExternalCommand', method, ...params);
2254
2423
  };
2255
2424
 
2256
2425
  const getSecret = async key => {
@@ -2270,6 +2439,16 @@ const getWebViewInfo = webViewId => {
2270
2439
  return undefined;
2271
2440
  };
2272
2441
 
2442
+ const handleMessagePort2 = async (port, rpcId) => {
2443
+ const rpc = await PlainMessagePortRpcParent.create({
2444
+ commandMap: {},
2445
+ messagePort: port
2446
+ });
2447
+ if (rpcId) {
2448
+ set$2(rpcId, rpc);
2449
+ }
2450
+ };
2451
+
2273
2452
  const saveState = async () => {
2274
2453
  const all = getAll$1();
2275
2454
  const serialized = [];
@@ -2296,6 +2475,8 @@ const unregisterInterceptor = async id => {
2296
2475
  };
2297
2476
 
2298
2477
  const commandMap = {
2478
+ 'Iframes.handleMessagePort': handleMessagePort2,
2479
+ 'Iframes.initialize': handleMessagePort2,
2299
2480
  'WebView.create2': create2,
2300
2481
  'WebView.create3': create3,
2301
2482
  'WebView.executeExternalCommand': executeCommand,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/iframe-worker",
3
- "version": "5.36.0",
3
+ "version": "6.0.0",
4
4
  "description": "Web Worker to manage creation and lifecycle of iframes in Lvce Editor",
5
5
  "keywords": [
6
6
  "iframe"