@lvce-editor/shared-process 0.107.4 → 0.108.2
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 +1 -2
- package/src/parts/BuiltinExtensionsPath/BuiltinExtensionsPath.js +1 -1
- package/src/parts/GetMimeType/GetMimeType.js +16 -2
- package/src/parts/HandleIpcModule/HandleIpcModule.js +0 -3
- package/src/parts/HandleWebSocketModule/HandleWebSocketModule.js +0 -3
- package/src/parts/IpcId/IpcId.js +0 -1
- package/src/parts/MimeType/MimeType.js +2 -0
- package/src/parts/Module/Module.js +0 -2
- package/src/parts/ModuleId/ModuleId.js +0 -1
- package/src/parts/ModuleMap/ModuleMap.js +0 -3
- package/src/parts/Platform/Platform.js +3 -3
- package/src/parts/PlatformPaths/PlatformPaths.js +0 -7
- package/src/parts/PreloadUrl/PreloadUrl.js +1 -1
- package/src/parts/ProtocolType/ProtocolType.js +0 -1
- package/src/parts/RequiresSocket/RequiresSocket.js +0 -1
- package/src/parts/ExtensionHostHelperProcessIpc/ExtensionHostHelperProcessIpc.js +0 -15
- package/src/parts/HandleIpcExtensionHostHelperProcess/HandleIpcExtensionHostHelperProcess.js +0 -32
- package/src/parts/HandleMessagePortForExtensionHostHelperProcess/HandleMessagePortForExtensionHostHelperProcess.ipc.js +0 -7
- package/src/parts/HandleMessagePortForExtensionHostHelperProcess/HandleMessagePortForExtensionHostHelperProcess.js +0 -25
- package/src/parts/HandleWebSocketForExtensionHostHelperProcess/HandleWebSocketForExtensionHostHelperProcess.js +0 -31
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/shared-process",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.108.2",
|
|
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', '
|
|
6
|
+
const builtinExtensionsPath = join(staticServerPath, '..', '..', 'static', '00cccba', '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 '.
|
|
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:
|
package/src/parts/IpcId/IpcId.js
CHANGED
|
@@ -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.
|
|
64
|
+
export const version = '0.108.2'
|
|
65
65
|
|
|
66
|
-
export const commit = '
|
|
66
|
+
export const commit = '00cccba'
|
|
67
67
|
|
|
68
|
-
export const date = '2026-08-
|
|
68
|
+
export const date = '2026-08-22T23:08:19.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', '
|
|
5
|
+
return join(Root.root, 'static', '00cccba', '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
|
-
}
|
package/src/parts/HandleIpcExtensionHostHelperProcess/HandleIpcExtensionHostHelperProcess.js
DELETED
|
@@ -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
|
-
}
|