@lvce-editor/shared-process 0.94.8 → 0.94.10
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 +8 -8
- package/src/parts/BuiltinExtensionsPath/BuiltinExtensionsPath.js +1 -1
- package/src/parts/ChromeCookieImport/ChromeCookieImport.ipc.js +8 -0
- package/src/parts/ChromeCookieImport/ChromeCookieImport.js +9 -0
- package/src/parts/Module/Module.js +4 -0
- package/src/parts/ModuleId/ModuleId.js +2 -0
- package/src/parts/ModuleMap/ModuleMap.js +7 -0
- package/src/parts/Platform/Platform.js +3 -3
- package/src/parts/PreloadUrl/PreloadUrl.js +1 -1
- package/src/parts/SecretStorage/SecretStorage.ipc.js +9 -0
- package/src/parts/SecretStorage/SecretStorage.js +71 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/shared-process",
|
|
3
|
-
"version": "0.94.
|
|
3
|
+
"version": "0.94.10",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -19,28 +19,28 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@lvce-editor/assert": "1.7.0",
|
|
21
21
|
"@lvce-editor/auth-process": "1.12.0",
|
|
22
|
-
"@lvce-editor/extension-host-helper-process": "0.94.
|
|
22
|
+
"@lvce-editor/extension-host-helper-process": "0.94.10",
|
|
23
23
|
"@lvce-editor/ipc": "16.6.0",
|
|
24
24
|
"@lvce-editor/json-rpc": "8.5.0",
|
|
25
25
|
"@lvce-editor/jsonc-parser": "1.5.0",
|
|
26
26
|
"@lvce-editor/pretty-error": "2.0.0",
|
|
27
|
-
"@lvce-editor/process-explorer": "3.12.
|
|
28
|
-
"@lvce-editor/rpc-registry": "9.
|
|
27
|
+
"@lvce-editor/process-explorer": "3.12.1",
|
|
28
|
+
"@lvce-editor/rpc-registry": "9.43.0",
|
|
29
29
|
"@lvce-editor/verror": "1.7.0",
|
|
30
30
|
"is-object": "^1.0.2",
|
|
31
31
|
"markdown-it": "^14.3.0",
|
|
32
32
|
"xdg-basedir": "^5.1.0"
|
|
33
33
|
},
|
|
34
34
|
"optionalDependencies": {
|
|
35
|
-
"@lvce-editor/embeds-process": "4.
|
|
35
|
+
"@lvce-editor/embeds-process": "4.13.1",
|
|
36
36
|
"@lvce-editor/file-system-process": "5.7.0",
|
|
37
|
-
"@lvce-editor/file-watcher-process": "4.
|
|
37
|
+
"@lvce-editor/file-watcher-process": "4.9.0",
|
|
38
38
|
"@lvce-editor/network-process": "5.2.0",
|
|
39
39
|
"@lvce-editor/preload": "1.5.0",
|
|
40
40
|
"@lvce-editor/preview-process": "11.0.0",
|
|
41
41
|
"@lvce-editor/pty-host": "8.4.0",
|
|
42
|
-
"@lvce-editor/search-process": "15.
|
|
43
|
-
"@lvce-editor/typescript-compile-process": "5.
|
|
42
|
+
"@lvce-editor/search-process": "15.3.0",
|
|
43
|
+
"@lvce-editor/typescript-compile-process": "5.6.0",
|
|
44
44
|
"open": "^11.0.0",
|
|
45
45
|
"tail": "^2.2.6",
|
|
46
46
|
"tmp-promise": "^3.0.3",
|
|
@@ -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', '76f9b17', 'extensions')
|
|
7
7
|
return builtinExtensionsPath
|
|
8
8
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as MainProcess from '../MainProcess/MainProcess.js'
|
|
2
|
+
|
|
3
|
+
export const getInfo = () => {
|
|
4
|
+
return MainProcess.invoke('ChromeCookieImport.getInfo')
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const importCookies = () => {
|
|
8
|
+
return MainProcess.invoke('ChromeCookieImport.importCookies')
|
|
9
|
+
}
|
|
@@ -12,6 +12,8 @@ export const load = (moduleId) => {
|
|
|
12
12
|
return import('../AutoUpdaterWindowsNsis/AutoUpdaterWindowsNsis.ipc.js')
|
|
13
13
|
case ModuleId.BulkReplacement:
|
|
14
14
|
return import('../BulkReplacement/BulkReplacement.ipc.js')
|
|
15
|
+
case ModuleId.ChromeCookieImport:
|
|
16
|
+
return import('../ChromeCookieImport/ChromeCookieImport.ipc.js')
|
|
15
17
|
case ModuleId.ClipBoard:
|
|
16
18
|
return import('../ClipBoard/ClipBoard.ipc.js')
|
|
17
19
|
case ModuleId.ContentSecurityPolicy:
|
|
@@ -140,6 +142,8 @@ export const load = (moduleId) => {
|
|
|
140
142
|
return import('../RecentlyOpened/RecentlyOpened.ipc.js')
|
|
141
143
|
case ModuleId.Screen:
|
|
142
144
|
return import('../Screen/Screen.ipc.js')
|
|
145
|
+
case ModuleId.SecretStorage:
|
|
146
|
+
return import('../SecretStorage/SecretStorage.ipc.js')
|
|
143
147
|
case ModuleId.SendMessagePortToMainProcess:
|
|
144
148
|
return import('../SendMessagePortToMainProcess/SendMessagePortToMainProcess.ipc.js')
|
|
145
149
|
case ModuleId.TemporaryMessagePort:
|
|
@@ -18,6 +18,9 @@ export const getModuleId = (commandId) => {
|
|
|
18
18
|
return ModuleId.AutoUpdaterWindowsNsis
|
|
19
19
|
case 'BulkReplacement.applyBulkReplacement':
|
|
20
20
|
return ModuleId.BulkReplacement
|
|
21
|
+
case 'ChromeCookieImport.getInfo':
|
|
22
|
+
case 'ChromeCookieImport.importCookies':
|
|
23
|
+
return ModuleId.ChromeCookieImport
|
|
21
24
|
case 'ChromeExtension.install':
|
|
22
25
|
case 'ChromeExtension.uninstall':
|
|
23
26
|
return ModuleId.ChromeExtension
|
|
@@ -320,6 +323,10 @@ export const getModuleId = (commandId) => {
|
|
|
320
323
|
case 'Screen.getHeight':
|
|
321
324
|
case 'Screen.getWidth':
|
|
322
325
|
return ModuleId.Screen
|
|
326
|
+
case 'SecretStorage.delete':
|
|
327
|
+
case 'SecretStorage.get':
|
|
328
|
+
case 'SecretStorage.store':
|
|
329
|
+
return ModuleId.SecretStorage
|
|
323
330
|
case 'SendMessagePortToMainProcess.sendMessagePortToMainProcess':
|
|
324
331
|
return ModuleId.SendMessagePortToMainProcess
|
|
325
332
|
case 'TemporaryMessagePort.getPortTuple2':
|
|
@@ -61,11 +61,11 @@ export const getSetupName = () => {
|
|
|
61
61
|
return 'Lvce-Setup'
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
export const version = '0.94.
|
|
64
|
+
export const version = '0.94.10'
|
|
65
65
|
|
|
66
|
-
export const commit = '
|
|
66
|
+
export const commit = '76f9b17'
|
|
67
67
|
|
|
68
|
-
export const date = '2026-07-
|
|
68
|
+
export const date = '2026-07-27T17:58:54.000Z'
|
|
69
69
|
|
|
70
70
|
export const getVersion = () => {
|
|
71
71
|
return version
|
|
@@ -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', '76f9b17', 'packages', 'preload', 'dist', 'index.js')
|
|
6
6
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as ElectronSafeStorage from '../ElectronSafeStorage/ElectronSafeStorage.js'
|
|
2
|
+
import { FileNotFoundError } from '../FileNotFoundError/FileNotFoundError.js'
|
|
3
|
+
import * as JsonFile from '../JsonFile/JsonFile.js'
|
|
4
|
+
import * as Path from '../Path/Path.js'
|
|
5
|
+
import * as PlatformPaths from '../PlatformPaths/PlatformPaths.js'
|
|
6
|
+
import * as Queue from '../Queue/Queue.js'
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
const queueKey = 'secret-storage'
|
|
11
|
+
|
|
12
|
+
const getStoragePath = () => {
|
|
13
|
+
return Path.join(PlatformPaths.getConfigDir(), 'secrets.json')
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const readStoredSecrets = async () => {
|
|
17
|
+
try {
|
|
18
|
+
const stored = await JsonFile.readJson(getStoragePath())
|
|
19
|
+
if (!stored || typeof stored !== 'object' || Array.isArray(stored)) {
|
|
20
|
+
return {}
|
|
21
|
+
}
|
|
22
|
+
return stored
|
|
23
|
+
} catch (error) {
|
|
24
|
+
if (error instanceof FileNotFoundError) {
|
|
25
|
+
return {}
|
|
26
|
+
}
|
|
27
|
+
throw error
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const get = async (extensionId, key) => {
|
|
32
|
+
const stored = await readStoredSecrets()
|
|
33
|
+
const encrypted = stored[extensionId]?.[key]
|
|
34
|
+
if (typeof encrypted !== 'string') {
|
|
35
|
+
return undefined
|
|
36
|
+
}
|
|
37
|
+
return ElectronSafeStorage.decryptString(encrypted)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const store = async (extensionId, key, value) => {
|
|
41
|
+
await Queue.add(queueKey, async () => {
|
|
42
|
+
const encrypted = await ElectronSafeStorage.encryptString(value)
|
|
43
|
+
const stored = await readStoredSecrets()
|
|
44
|
+
await JsonFile.writeJson(getStoragePath(), {
|
|
45
|
+
...stored,
|
|
46
|
+
[extensionId]: {
|
|
47
|
+
...stored[extensionId],
|
|
48
|
+
[key]: encrypted,
|
|
49
|
+
},
|
|
50
|
+
})
|
|
51
|
+
})
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export const deleteSecret = async (extensionId, key) => {
|
|
55
|
+
await Queue.add(queueKey, async () => {
|
|
56
|
+
const stored = await readStoredSecrets()
|
|
57
|
+
const extensionSecrets = stored[extensionId]
|
|
58
|
+
if (!extensionSecrets || typeof extensionSecrets[key] !== 'string') {
|
|
59
|
+
return
|
|
60
|
+
}
|
|
61
|
+
const nextExtensionSecrets = { ...extensionSecrets }
|
|
62
|
+
delete nextExtensionSecrets[key]
|
|
63
|
+
const nextStored = { ...stored }
|
|
64
|
+
if (Object.keys(nextExtensionSecrets).length === 0) {
|
|
65
|
+
delete nextStored[extensionId]
|
|
66
|
+
} else {
|
|
67
|
+
nextStored[extensionId] = nextExtensionSecrets
|
|
68
|
+
}
|
|
69
|
+
await JsonFile.writeJson(getStoragePath(), nextStored)
|
|
70
|
+
})
|
|
71
|
+
}
|