@lvce-editor/shared-process 0.52.4 → 0.52.6

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.
Files changed (37) hide show
  1. package/package.json +5 -5
  2. package/src/parts/AppWindow/AppWindow.js +1 -1
  3. package/src/parts/BuiltinExtensionsPath/BuiltinExtensionsPath.js +1 -1
  4. package/src/parts/ConnectIpcToElectron/ConnectIpcToElectron.js +8 -1
  5. package/src/parts/Crash/Crash.js +1 -1
  6. package/src/parts/CreateUtilityProcessRpc/CreateUtilityProcessRpc.js +1 -1
  7. package/src/parts/DesktopCapturer/DesktopCapturer.js +1 -1
  8. package/src/parts/ElectronApplicationMenu/ElectronApplicationMenu.js +1 -1
  9. package/src/parts/ElectronContentTracing/ElectronContentTracing.js +1 -1
  10. package/src/parts/ElectronContextMenu/ElectronContextMenu.js +1 -1
  11. package/src/parts/ElectronDeveloper/ElectronDeveloper.js +1 -1
  12. package/src/parts/ElectronDialog/ElectronDialog.js +1 -1
  13. package/src/parts/ElectronNet/ElectronNet.js +1 -1
  14. package/src/parts/ElectronNetLog/ElectronNetLog.js +1 -1
  15. package/src/parts/ElectronPowerSaveBlocker/ElectronPowerSaveBlocker.js +1 -1
  16. package/src/parts/ElectronProcess/ElectronProcess.js +1 -1
  17. package/src/parts/ElectronSafeStorage/ElectronSafeStorage.js +1 -1
  18. package/src/parts/ElectronShell/ElectronShell.js +1 -1
  19. package/src/parts/ElectronWindow/ElectronWindow.js +1 -1
  20. package/src/parts/ElectronWindowAbout/ElectronWindowAbout.js +1 -1
  21. package/src/parts/ElectronWindowProcessExplorer/ElectronWindowProcessExplorer.js +1 -1
  22. package/src/parts/Exit/Exit.js +1 -1
  23. package/src/parts/GetWindowId/GetWindowId.js +1 -1
  24. package/src/parts/HandleIpcSharedProcess/HandleIpcSharedProcess.js +1 -1
  25. package/src/parts/HandleWindowAllClosed/HandleWindowAllClosed.js +1 -1
  26. package/src/parts/IpcParentWithElectronUtilityProcess/IpcParentWithElectronUtilityProcess.js +1 -1
  27. package/src/parts/LaunchEmbedsProcess/LaunchEmbedsProcess.js +1 -1
  28. package/src/parts/LaunchSearchProcess/LaunchSearchProcess.js +12 -1
  29. package/src/parts/Main/Main.js +1 -1
  30. package/src/parts/OpenExternal/OpenExternal.js +1 -1
  31. package/src/parts/Platform/Platform.js +3 -3
  32. package/src/parts/RegisterWebViewProtocol/RegisterWebViewProtocol.js +1 -1
  33. package/src/parts/ResolveRoot/ResolveRoot.js +1 -1
  34. package/src/parts/Screen/Screen.js +1 -1
  35. package/src/parts/TemporaryMessagePort/TemporaryMessagePort.js +1 -1
  36. package/src/parts/TrashElectron/TrashElectron.js +1 -1
  37. /package/src/parts/{ParentIpc/ParentIpc.js → MainProcess/MainProcess.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/shared-process",
3
- "version": "0.52.4",
3
+ "version": "0.52.6",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -18,26 +18,26 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@lvce-editor/assert": "1.3.0",
21
- "@lvce-editor/extension-host-helper-process": "0.52.4",
21
+ "@lvce-editor/extension-host-helper-process": "0.52.6",
22
22
  "@lvce-editor/ipc": "14.1.0",
23
23
  "@lvce-editor/json-rpc": "5.4.0",
24
24
  "@lvce-editor/jsonc-parser": "1.5.0",
25
25
  "@lvce-editor/pretty-error": "2.0.0",
26
- "@lvce-editor/rpc-registry": "2.11.0",
26
+ "@lvce-editor/rpc-registry": "2.14.0",
27
27
  "@lvce-editor/verror": "1.6.0",
28
28
  "debug": "^4.4.1",
29
29
  "is-object": "^1.0.2",
30
30
  "xdg-basedir": "^5.1.0"
31
31
  },
32
32
  "optionalDependencies": {
33
- "@lvce-editor/embeds-process": "3.4.0",
33
+ "@lvce-editor/embeds-process": "4.1.0",
34
34
  "@lvce-editor/file-system-process": "2.0.0",
35
35
  "@lvce-editor/file-watcher-process": "3.1.0",
36
36
  "@lvce-editor/network-process": "4.0.0",
37
37
  "@lvce-editor/preload": "1.5.0",
38
38
  "@lvce-editor/preview-process": "11.0.0",
39
39
  "@lvce-editor/pty-host": "4.0.0",
40
- "@lvce-editor/search-process": "8.1.0",
40
+ "@lvce-editor/search-process": "9.1.0",
41
41
  "@lvce-editor/typescript-compile-process": "3.0.0",
42
42
  "open": "^10.1.2",
43
43
  "tail": "^2.2.6",
@@ -1,7 +1,7 @@
1
1
  import * as DefaultUrl from '../DefaultUrl/DefaultUrl.js';
2
2
  import * as GetAppWindowOptions from '../GetAppWindowOptions/GetAppWindowOptions.js';
3
3
  import * as GetTitleBarItems from '../GetTitleBarItems/GetTitleBarItems.js';
4
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
4
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
5
5
  import * as Preferences from '../Preferences/Preferences.js';
6
6
  import * as Screen from '../Screen/Screen.js';
7
7
  export const createAppWindow = async (preferences, parsedArgs, workingDirectory, url = DefaultUrl.defaultUrl) => {
@@ -2,6 +2,6 @@ import { join } from 'path';
2
2
  import { fileURLToPath } from 'url';
3
3
  export const getBuiltinExtensionsPath = () => {
4
4
  const staticServerPath = fileURLToPath(import.meta.resolve('@lvce-editor/static-server'));
5
- const builtinExtensionsPath = join(staticServerPath, '..', '..', 'static', '11a3d6e', 'extensions');
5
+ const builtinExtensionsPath = join(staticServerPath, '..', '..', 'static', '0392966', 'extensions');
6
6
  return builtinExtensionsPath;
7
7
  };
@@ -1,7 +1,7 @@
1
1
  import * as GetPortTuple from '../GetPortTuple/GetPortTuple.js';
2
2
  import * as IpcId from '../IpcId/IpcId.js';
3
3
  import * as JsonRpc from '../JsonRpc/JsonRpc.js';
4
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
4
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
5
5
  export const connectIpcToElectron = async (ipc, ipcId = IpcId.Unknown) => {
6
6
  const { port1, port2 } = await GetPortTuple.getPortTuple();
7
7
  await Promise.all([
@@ -9,3 +9,10 @@ export const connectIpcToElectron = async (ipc, ipcId = IpcId.Unknown) => {
9
9
  ParentIpc.invokeAndTransfer('HandleElectronMessagePort.handleElectronMessagePort', port2, ipcId),
10
10
  ]);
11
11
  };
12
+ export const connectIpcToMainProcess2 = async (ipc, ipcId = IpcId.Unknown) => {
13
+ const { port1, port2 } = await GetPortTuple.getPortTuple();
14
+ await Promise.all([
15
+ JsonRpc.invokeAndTransfer(ipc, 'Initialize.initialize', port1),
16
+ ParentIpc.invokeAndTransfer('HandleElectronMessagePort.handleElectronMessagePort', port2, ipcId),
17
+ ]);
18
+ };
@@ -1,5 +1,5 @@
1
1
  import * as Timeout from '../Timeout/Timeout.js';
2
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
2
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
3
3
  const handleTimeout = () => {
4
4
  throw new Error('oops');
5
5
  };
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const createUtilityProcessRpc = async (options) => {
3
3
  await ParentIpc.invoke('CreateUtilityProcessRpc.createUtilityProcessRpc', {
4
4
  ...options,
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const getSources = (options) => {
3
3
  return ParentIpc.invoke('DesktopCapturer.getSources', options);
4
4
  };
@@ -1,5 +1,5 @@
1
1
  import * as Assert from '../Assert/Assert.js';
2
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
2
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
3
3
  export const state = {
4
4
  ipcMap: Object.create(null),
5
5
  };
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const startRecording = (options) => {
3
3
  return ParentIpc.invoke('ElectronContentTracing.startRecording', options);
4
4
  };
@@ -1,5 +1,5 @@
1
1
  import * as Assert from '../Assert/Assert.js';
2
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
2
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
3
3
  export const openContextMenu = (menuItems, x, y) => {
4
4
  Assert.array(menuItems);
5
5
  Assert.number(x);
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const getPerformanceEntries = () => {
3
3
  return ParentIpc.invoke('ElectronDeveloper.getPerformanceEntries');
4
4
  };
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const showOpenDialog = (title, properties) => {
3
3
  return ParentIpc.invoke('ElectronDialog.showOpenDialog', title, properties);
4
4
  };
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  /**
3
3
  * @param {string} url
4
4
  */
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  /**
3
3
  * @param {string} path
4
4
  */
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  /**
3
3
  *
4
4
  * @param {'prevent-app-suspension'|'prevent-display-sleep'} type
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const getElectronVersion = () => {
3
3
  return ParentIpc.invoke('Process.getElectronVersion');
4
4
  };
@@ -1,5 +1,5 @@
1
1
  import * as EncodingType from '../EncodingType/EncodingType.js';
2
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
2
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
3
3
  export const isEncryptionAvailable = () => {
4
4
  return ParentIpc.invoke('ElectronSafeStorage.isEncryptionAvailable');
5
5
  };
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const beep = () => {
3
3
  return ParentIpc.invoke('ElectronShell.beep');
4
4
  };
@@ -1,7 +1,7 @@
1
1
  import * as AppWindow from '../AppWindow/AppWindow.js';
2
2
  import * as Assert from '../Assert/Assert.js';
3
3
  import * as Clamp from '../Clamp/Clamp.js';
4
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
4
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
5
5
  export const openNew = () => {
6
6
  return AppWindow.openNew();
7
7
  };
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const open = () => {
3
3
  return ParentIpc.invoke('ElectronWindowAbout.open');
4
4
  };
@@ -4,7 +4,7 @@ import { join } from 'node:path';
4
4
  import * as ColorTheme from '../ColorTheme/ColorTheme.js';
5
5
  import * as PreloadUrl from '../PreloadUrl/PreloadUrl.js';
6
6
  import * as GetProcessExplorerUrl from '../GetProcessExplorerUrl/GetProcessExplorerUrl.js';
7
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
7
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
8
8
  const getOptions = async (colorThemeJson) => {
9
9
  const backgroundColor = colorThemeJson.MainBackground;
10
10
  const preload = PreloadUrl.preloadUrl;
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const exit = () => {
3
3
  return ParentIpc.invoke('Exit.exit');
4
4
  };
@@ -1,5 +1,5 @@
1
1
  import * as Assert from '../Assert/Assert.js';
2
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
2
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
3
3
  export const getWindowId = (webContentsId) => {
4
4
  Assert.number(webContentsId);
5
5
  return ParentIpc.invoke('GetWindowId.getWindowId', webContentsId);
@@ -3,7 +3,7 @@ import * as HandleSocketError from '../HandleSocketError/HandleSocketError.js';
3
3
  import * as IpcChild from '../IpcChild/IpcChild.js';
4
4
  import * as IpcChildType from '../IpcChildType/IpcChildType.js';
5
5
  import * as IpcId from '../IpcId/IpcId.js';
6
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
6
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
7
7
  export const targetWebSocket = async (handle, message) => {
8
8
  handle.on('error', HandleSocketError.handleSocketError);
9
9
  const ipc = await IpcChild.listen({
@@ -1,5 +1,5 @@
1
1
  import * as Debug from '../Debug/Debug.js';
2
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
2
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
3
3
  import * as Platform from '../Platform/Platform.js';
4
4
  export const handleWindowAllClosed = async () => {
5
5
  Debug.debug('[info] all windows closed');
@@ -1,7 +1,7 @@
1
1
  import * as CreateUtilityProcessRpc from '../CreateUtilityProcessRpc/CreateUtilityProcessRpc.js';
2
2
  import * as FixElectronParameters from '../FixElectronParameters/FixElectronParameters.js';
3
3
  import * as GetPortTuple from '../GetPortTuple/GetPortTuple.js';
4
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
4
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
5
5
  import * as TemporaryMessagePort from '../TemporaryMessagePort/TemporaryMessagePort.js';
6
6
  export const create = async (options) => {
7
7
  // TODO how to launch process without race condition?
@@ -26,6 +26,6 @@ export const launchEmbedsProcess = async () => {
26
26
  targetRpcId: IpcId.EmbedsProcess,
27
27
  });
28
28
  HandleIpc.handleIpc(ipc);
29
- await ConnectIpcToElectron.connectIpcToElectron(ipc, IpcId.EmbedsProcess);
29
+ await ConnectIpcToElectron.connectIpcToMainProcess2(ipc, IpcId.EmbedsProcess);
30
30
  return ipc;
31
31
  };
@@ -2,12 +2,23 @@ import * as HandleIpc from '../HandleIpc/HandleIpc.js';
2
2
  import * as IpcParent from '../IpcParent/IpcParent.js';
3
3
  import * as IpcParentType from '../IpcParentType/IpcParentType.js';
4
4
  import * as IsElectron from '../IsElectron/IsElectron.js';
5
+ import * as Platform from '../Platform/Platform.js';
6
+ import * as Preferences from '../Preferences/Preferences.js';
5
7
  import * as SearchProcessPath from '../SearchProcessPath/SearchProcessPath.js';
8
+ const getConfiguredUrl = async () => {
9
+ if (Platform.isProduction) {
10
+ return SearchProcessPath.searchProcessPath;
11
+ }
12
+ const allPreferences = await Preferences.getAll();
13
+ const processPath = allPreferences['develop.searchProcessPath'] || SearchProcessPath.searchProcessPath;
14
+ return processPath;
15
+ };
6
16
  export const launchSearchProcess = async () => {
7
17
  const method = IsElectron.isElectron ? IpcParentType.ElectronUtilityProcess : IpcParentType.NodeForkedProcess;
18
+ const path = await getConfiguredUrl();
8
19
  const searchProcess = await IpcParent.create({
9
20
  method,
10
- path: SearchProcessPath.searchProcessPath,
21
+ path,
11
22
  argv: [],
12
23
  stdio: 'inherit',
13
24
  name: 'Search Process',
@@ -2,7 +2,7 @@ import * as Command from '../Command/Command.js';
2
2
  import * as HandleDisconnect from '../HandleDisconnect/HandleDisconnect.js';
3
3
  import * as HandleUncaughtExceptionMonitor from '../HandleUncaughtExceptionMonitor/HandleUncaughtExceptionMonitor.js';
4
4
  import * as Module from '../Module/Module.js';
5
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
5
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
6
6
  import * as ProcessListeners from '../ProcessListeners/ProcessListeners.js';
7
7
  import * as Signal from '../Signal/Signal.js';
8
8
  export const main = async () => {
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const showItemInFolder = (fullPath) => {
3
3
  return ParentIpc.invoke('ElectronShell.showItemInFolder', fullPath);
4
4
  };
@@ -41,9 +41,9 @@ export const getAppImageName = () => {
41
41
  export const getSetupName = () => {
42
42
  return 'Lvce-Setup';
43
43
  };
44
- export const version = '0.52.4';
45
- export const commit = '11a3d6e';
46
- export const date = '2025-05-17T19:00:27.000Z';
44
+ export const version = '0.52.6';
45
+ export const commit = '0392966';
46
+ export const date = '2025-05-22T21:43:36.000Z';
47
47
  export const getVersion = () => {
48
48
  return version;
49
49
  };
@@ -1,5 +1,5 @@
1
1
  import * as GetPortTuple from '../GetPortTuple/GetPortTuple.js';
2
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
2
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
3
3
  import * as PreviewProcess from '../PreviewProcess/PreviewProcess.js';
4
4
  import * as WebViewProtocolState from '../WebViewProtocolState/WebViewProtocolState.js';
5
5
  const doRegisterWebViewProtocol = async () => {
@@ -5,7 +5,7 @@ import * as Env from '../Env/Env.js';
5
5
  import * as GetWorkspaceId from '../GetWorkspaceId/GetWorkspaceId.js';
6
6
  import * as IsAbsolutePath from '../IsAbsolutePath/IsAbsolutePath.js';
7
7
  import * as IsElectron from '../IsElectron/IsElectron.js';
8
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
8
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
9
9
  import * as Platform from '../Platform/Platform.js';
10
10
  import * as PlatformPaths from '../PlatformPaths/PlatformPaths.js';
11
11
  import * as Root from '../Root/Root.js';
@@ -1,4 +1,4 @@
1
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
1
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
2
2
  export const getWidth = () => {
3
3
  return ParentIpc.invoke('ElectronScreen.getWidth');
4
4
  };
@@ -1,7 +1,7 @@
1
1
  import { VError } from '@lvce-editor/verror';
2
2
  import * as Assert from '../Assert/Assert.js';
3
3
  import * as Id from '../Id/Id.js';
4
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
4
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
5
5
  export const state = {
6
6
  ports: Object.create(null),
7
7
  };
@@ -1,5 +1,5 @@
1
1
  import { existsSync } from 'node:fs';
2
- import * as ParentIpc from '../ParentIpc/ParentIpc.js';
2
+ import * as ParentIpc from '../MainProcess/MainProcess.js';
3
3
  export const trash = async (path) => {
4
4
  if (!existsSync(path)) {
5
5
  return;