@lvce-editor/shared-process 0.107.4 → 0.108.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/shared-process",
3
- "version": "0.107.4",
3
+ "version": "0.108.1",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -18,7 +18,6 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@lvce-editor/assert": "1.9.0",
21
- "@lvce-editor/extension-host-helper-process": "0.107.4",
22
21
  "@lvce-editor/ipc": "16.12.0",
23
22
  "@lvce-editor/json-rpc": "8.7.0",
24
23
  "@lvce-editor/jsonc-parser": "1.5.0",
@@ -3,6 +3,6 @@ import { fileURLToPath } from 'url'
3
3
 
4
4
  export const getBuiltinExtensionsPath = () => {
5
5
  const staticServerPath = fileURLToPath(import.meta.resolve('@lvce-editor/static-server'))
6
- const builtinExtensionsPath = join(staticServerPath, '..', '..', 'static', '31117c9', 'extensions')
6
+ const builtinExtensionsPath = join(staticServerPath, '..', '..', 'static', '2b18d6c', 'extensions')
7
7
  return builtinExtensionsPath
8
8
  }
@@ -1,16 +1,27 @@
1
1
  import * as MimeType from '../MimeType/MimeType.js'
2
2
 
3
3
  export const getMimeType = (fileExtension) => {
4
- switch (fileExtension) {
4
+ switch (fileExtension.toLowerCase()) {
5
+ case '.apng':
6
+ return MimeType.ImageApng
5
7
  case '.avif':
6
8
  return MimeType.ImageAvif
9
+ case '.bmp':
10
+ return MimeType.ImageBmp
7
11
  case '.css':
8
12
  return MimeType.TextCss
9
- case '.HEIC':
13
+ case '.gif':
14
+ return MimeType.ImageGif
10
15
  case '.heic':
11
16
  return MimeType.ImageHeic
17
+ case '.heif':
18
+ return MimeType.ImageHeif
12
19
  case '.html':
13
20
  return MimeType.TextHtml
21
+ case '.ico':
22
+ return MimeType.ImageXIcon
23
+ case '.jfif':
24
+ case '.jpe':
14
25
  case '.jpeg':
15
26
  case '.jpg':
16
27
  return MimeType.ImageJpg
@@ -29,6 +40,9 @@ export const getMimeType = (fileExtension) => {
29
40
  return MimeType.ImagePng
30
41
  case '.svg':
31
42
  return MimeType.ImageSvgXml
43
+ case '.tif':
44
+ case '.tiff':
45
+ return MimeType.ImageTiff
32
46
  case '.ttf':
33
47
  return MimeType.FontTtf
34
48
  case '.webm':
@@ -2,7 +2,6 @@ import * as Assert from '../Assert/Assert.js'
2
2
  import * as HandleIpcAuthProcess from '../HandleIpcAuthProcess/HandleIpcAuthProcess.js'
3
3
  import * as HandleIpcClipBoardProcess from '../HandleIpcClipBoardProcess/HandleIpcClipBoardProcess.js'
4
4
  import * as HandleIpcEmbedsProcess from '../HandleIpcEmbedsProcess/HandleIpcEmbedsProcess.js'
5
- import * as HandleIpcExtensionHostHelperProcess from '../HandleIpcExtensionHostHelperProcess/HandleIpcExtensionHostHelperProcess.js'
6
5
  import * as HandleIpcFileSystemProcess from '../HandleIpcFileSystemProcess/HandleIpcFileSystemProcess.js'
7
6
  import * as HandleIpcProcessExplorer from '../HandleIpcProcessExplorer/HandleIpcProcessExplorer.js'
8
7
  import * as HandleIpcSearchProcess from '../HandleIpcSearchProcess/HandleIpcSearchProcess.js'
@@ -19,8 +18,6 @@ export const getModule = (ipcId) => {
19
18
  return HandleIpcClipBoardProcess
20
19
  case IpcId.EmbedsProcess:
21
20
  return HandleIpcEmbedsProcess
22
- case IpcId.ExtensionHostHelperProcess:
23
- return HandleIpcExtensionHostHelperProcess
24
21
  case IpcId.FileSystemProcess:
25
22
  return HandleIpcFileSystemProcess
26
23
  case IpcId.ProcessExplorer:
@@ -1,5 +1,4 @@
1
1
  import * as HandleWebSocketForClipBoardProcess from '../HandleWebSocketForClipBoardProcess/HandleWebSocketForClipBoardProcess.js'
2
- import * as HandleWebSocketForExtensionHostHelperProcess from '../HandleWebSocketForExtensionHostHelperProcess/HandleWebSocketForExtensionHostHelperProcess.js'
3
2
  import * as HandleWebSocketForExtensionNodeProcess from '../HandleWebSocketForExtensionNodeProcess/HandleWebSocketForExtensionNodeProcess.js'
4
3
  import * as HandleWebSocketForFileSystemProcess from '../HandleWebSocketForFileSystemProcess/HandleWebSocketForFileSystemProcess.js'
5
4
  import * as HandleWebSocketForProcessExplorer from '../HandleWebSocketForProcessExplorer/HandleWebSocketForProcessExplorer.js'
@@ -17,8 +16,6 @@ export const load = (protocol) => {
17
16
  switch (protocol) {
18
17
  case ProtocolType.ClipBoardProcess:
19
18
  return HandleWebSocketForClipBoardProcess
20
- case ProtocolType.ExtensionHostHelperProcess:
21
- return HandleWebSocketForExtensionHostHelperProcess
22
19
  case ProtocolType.ExtensionNodeProcess:
23
20
  return HandleWebSocketForExtensionNodeProcess
24
21
  case ProtocolType.FileSystemProcess:
@@ -3,7 +3,6 @@ import { RpcId } from '@lvce-editor/rpc-registry'
3
3
  export const AuthProcess = RpcId.AuthWorker
4
4
  export const EmbedsProcess = RpcId.EmbedsProcess
5
5
  export const EmbedsWorker = RpcId.EmbedsWorker
6
- export const ExtensionHostHelperProcess = 3
7
6
  export const MainProcess = RpcId.MainProcess
8
7
  export const ProcessExplorer = 11
9
8
  export const SearchProcess = RpcId.SearchProcess
@@ -8,10 +8,12 @@ export const AudioXaac = 'audio/x-aac'
8
8
  export const AudioXMsWma = 'audio/x-ms-wma'
9
9
  export const AudioXWav = 'audio/x-wav'
10
10
  export const FontTtf = 'font/ttf'
11
+ export const ImageApng = 'image/apng'
11
12
  export const ImageAvif = 'image/avif'
12
13
  export const ImageBmp = 'image/bmp'
13
14
  export const ImageGif = 'image/gif'
14
15
  export const ImageHeic = 'image/heic'
16
+ export const ImageHeif = 'image/heif'
15
17
  export const ImageJpg = 'image/jpg'
16
18
  export const ImagePng = 'image/png'
17
19
  export const ImageSvgXml = 'image/svg+xml'
@@ -86,8 +86,6 @@ export const load = (moduleId) => {
86
86
  return import('../HandleMessagePortForClipBoardProcess/HandleMessagePortForClipBoardProcess.ipc.js')
87
87
  case ModuleId.HandleMessagePortForEmbedsProcess:
88
88
  return import('../HandleMessagePortForEmbedsProcess/HandleMessagePortForEmbedsProcess.ipc.js')
89
- case ModuleId.HandleMessagePortForExtensionHostHelperProcess:
90
- return import('../HandleMessagePortForExtensionHostHelperProcess/HandleMessagePortForExtensionHostHelperProcess.ipc.js')
91
89
  case ModuleId.HandleMessagePortForExtensionNodeProcess:
92
90
  return import('../HandleMessagePortForExtensionNodeProcess/HandleMessagePortForExtensionNodeProcess.ipc.js')
93
91
  case ModuleId.HandleMessagePortForFileSystemProcess:
@@ -60,7 +60,6 @@ export const HandleMessagePortForTerminalProcess = 61
60
60
  export const TemporaryMessagePort = 62
61
61
  export const GetElectronFileResponse = 63
62
62
  export const HandleRemoteRequest = 64
63
- export const HandleMessagePortForExtensionHostHelperProcess = 65
64
63
  export const HandleRequestTest = 69
65
64
  export const ContentSecurityPolicy = 70
66
65
  export const HandleMessagePortForEmbedsProcess = 72
@@ -181,9 +181,6 @@ export const getModuleId = (commandId) => {
181
181
  case 'HandleMessagePortForEmbedsProcess.handleEmbedsProcessIpcClosed':
182
182
  case 'HandleMessagePortForEmbedsProcess.handleMessagePortForEmbedsProcess':
183
183
  return ModuleId.HandleMessagePortForEmbedsProcess
184
- case 'HandleMessagePortForExtensionHostHelperProcess.handleMessagePortForExtensionHostHelperProcess':
185
- case 'HandleMessagePortForExtensionHostHelperProcess.handlePreloadedMessagePortForExtensionHostHelperProcess':
186
- return ModuleId.HandleMessagePortForExtensionHostHelperProcess
187
184
  case 'HandleMessagePortForExtensionNodeProcess.handleMessagePortForExtensionNodeProcess':
188
185
  return ModuleId.HandleMessagePortForExtensionNodeProcess
189
186
  case 'HandleMessagePortForFileSystemProcess.handleMessagePortForFileSystemProcess':
@@ -61,11 +61,11 @@ export const getSetupName = () => {
61
61
  return 'Lvce-Setup'
62
62
  }
63
63
 
64
- export const version = '0.107.4'
64
+ export const version = '0.108.1'
65
65
 
66
- export const commit = '31117c9'
66
+ export const commit = '2b18d6c'
67
67
 
68
- export const date = '2026-08-22T20:24:03.000Z'
68
+ export const date = '2026-08-22T22:23:53.000Z'
69
69
 
70
70
  export const getVersion = () => {
71
71
  return version
@@ -87,13 +87,6 @@ export const getUserKeyBindingsPath = () => {
87
87
  return Path.join(configDir, 'keybindings.json')
88
88
  }
89
89
 
90
- export const getExtensionHostHelperProcessPath = async () => {
91
- const { extensionHostHelperProcessPath } = await import(
92
- '@lvce-editor/extension-host-helper-process'
93
- )
94
- return extensionHostHelperProcessPath
95
- }
96
-
97
90
  export const getWebViewRoot = (relativePath) => {
98
91
  return Path.join(Root.root, relativePath)
99
92
  }
@@ -2,5 +2,5 @@ import { join } from 'node:path'
2
2
  import * as Root from '../Root/Root.js'
3
3
 
4
4
  export const getPreloadUrl = () => {
5
- return join(Root.root, 'static', '31117c9', 'packages', 'preload', 'dist', 'index.js')
5
+ return join(Root.root, 'static', '2b18d6c', 'packages', 'preload', 'dist', 'index.js')
6
6
  }
@@ -1,5 +1,4 @@
1
1
  export const ExtensionHost = 'extension-host'
2
- export const ExtensionHostHelperProcess = 'extension-host-helper-process'
3
2
  export const ExtensionNodeProcess = 'extension-node-process'
4
3
  export const SearchProcess = 'search-process'
5
4
  export const ProcessExplorer = 'process-explorer'
@@ -10,7 +10,6 @@ const METHODS_THAT_REQUIRE_SOCKET = new Set([
10
10
  'Terminal.create',
11
11
  'IncrementalTextSearch.start',
12
12
  'ElectronApplicationMenu.setItems',
13
- 'HandleMessagePortForExtensionHostHelperProcess.handleMessagePortForExtensionHostHelperProcess',
14
13
  'HandleMessagePortForExtensionNodeProcess.handleMessagePortForExtensionNodeProcess',
15
14
  'ElectronBrowserView.createBrowserView',
16
15
  'ElectronWebContentsView.createWebContentsView',
@@ -1,15 +0,0 @@
1
- import * as Id from '../Id/Id.js'
2
- import * as IpcParent from '../IpcParent/IpcParent.js'
3
- import * as PlatformPaths from '../PlatformPaths/PlatformPaths.js'
4
-
5
- export const create = async ({ method } ) => {
6
- const extensionHostHelperProcessPath = await PlatformPaths.getExtensionHostHelperProcessPath()
7
- const id = Id.create()
8
- const ipc = await IpcParent.create({
9
- execArgv: [],
10
- method,
11
- name: `Extension Host Helper Process ${id}`,
12
- path: extensionHostHelperProcessPath,
13
- })
14
- return ipc
15
- }
@@ -1,32 +0,0 @@
1
- import * as ExtensionHostHelperProcessIpc from '../ExtensionHostHelperProcessIpc/ExtensionHostHelperProcessIpc.js'
2
- import * as IpcParentType from '../IpcParentType/IpcParentType.js'
3
-
4
- export const targetWebSocket = async () => {
5
- const ipc = await ExtensionHostHelperProcessIpc.create({
6
- method: IpcParentType.NodeForkedProcess,
7
- })
8
- return ipc
9
- }
10
-
11
- export const upgradeWebSocket = (handle, message) => {
12
- return {
13
- method: 'HandleWebSocket.handleWebSocket',
14
- params: [handle, message],
15
- type: 'send',
16
- }
17
- }
18
-
19
- export const targetMessagePort = async () => {
20
- const ipc = await ExtensionHostHelperProcessIpc.create({
21
- method: IpcParentType.ElectronUtilityProcess,
22
- })
23
- return ipc
24
- }
25
-
26
- export const upgradeMessagePort = (port) => {
27
- return {
28
- method: 'HandleElectronMessagePort.handleElectronMessagePort',
29
- params: [port],
30
- type: 'send',
31
- }
32
- }
@@ -1,7 +0,0 @@
1
- import * as HandleMessagePortForExtensionHostHelperProcess from './HandleMessagePortForExtensionHostHelperProcess.js'
2
-
3
- export const name = 'HandleMessagePortForExtensionHostHelperProcess'
4
-
5
- export const Commands = {
6
- handleMessagePortForExtensionHostHelperProcess: HandleMessagePortForExtensionHostHelperProcess.handleMessagePortForExtensionHostHelperProcess,
7
- }
@@ -1,25 +0,0 @@
1
- import * as Assert from '../Assert/Assert.js'
2
- import * as ExtensionHostHelperProcessIpc from '../ExtensionHostHelperProcessIpc/ExtensionHostHelperProcessIpc.js'
3
- import * as HandleIpc from '../HandleIpc/HandleIpc.js'
4
- import * as IpcId from '../IpcId/IpcId.js'
5
- import * as IpcParentType from '../IpcParentType/IpcParentType.js'
6
- import * as JsonRpc from '../JsonRpc/JsonRpc.js'
7
-
8
- // TODO connect this ipc to the renderer worker ipc
9
- // when renderer worker ipc closes, dispose all
10
- // matching extension host helper processes
11
- // unless the app is exiting, in which case the child processes
12
- // would get cleaned up automatically
13
- export const handleMessagePortForExtensionHostHelperProcess = async (rendererWorkerIpc, port) => {
14
- Assert.object(port)
15
- const ipc = await ExtensionHostHelperProcessIpc.create({
16
- method: IpcParentType.ElectronUtilityProcess,
17
- })
18
- HandleIpc.handleIpc(ipc)
19
- await JsonRpc.invokeAndTransfer(ipc, 'HandleElectronMessagePort.handleElectronMessagePort', port, IpcId.ExtensionHostWorker)
20
- // const cleanup = () => {
21
- // ipc.dispose()
22
- // rendererWorkerIpc.off('close', cleanup)
23
- // }
24
- // rendererWorkerIpc.on('close', cleanup)
25
- }
@@ -1,31 +0,0 @@
1
- import * as ExtensionHostHelperProcessIpc from '../ExtensionHostHelperProcessIpc/ExtensionHostHelperProcessIpc.js'
2
- import * as HandleIncomingIpc from '../HandleIncomingIpc/HandleIncomingIpc.js'
3
- import * as HandleIpc from '../HandleIpc/HandleIpc.js'
4
- import * as IpcId from '../IpcId/IpcId.js'
5
- import * as IpcParentType from '../IpcParentType/IpcParentType.js'
6
- import * as JsonRpc from '../JsonRpc/JsonRpc.js'
7
- import * as ResolveExtensionNodeRpcPath from '../ResolveExtensionNodeRpcPath/ResolveExtensionNodeRpcPath.js'
8
-
9
- export const handleWebSocket = async (message, handle) => {
10
- const url = new URL(message.url, 'http://localhost')
11
- const extensionId = url.searchParams.get('extensionId')
12
- const rpcId = url.searchParams.get('rpcId')
13
- if (!extensionId && !rpcId) {
14
- return HandleIncomingIpc.handleIncomingIpc(IpcId.ExtensionHostHelperProcess, handle, message)
15
- }
16
- if (!extensionId || !rpcId) {
17
- throw new Error('Remote extension node rpc request is incomplete')
18
- }
19
- const modulePath = await ResolveExtensionNodeRpcPath.resolveExtensionNodeRpcPath(extensionId, rpcId)
20
- const ipc = await ExtensionHostHelperProcessIpc.create({
21
- method: IpcParentType.NodeForkedProcess,
22
- })
23
- HandleIpc.handleIpc(ipc)
24
- try {
25
- await JsonRpc.invoke(ipc, 'LoadFile.loadFile', modulePath)
26
- await JsonRpc.invokeAndTransfer(ipc, 'HandleWebSocket.handleWebSocket', handle, message)
27
- } catch (error) {
28
- ipc.dispose()
29
- throw error
30
- }
31
- }