@lvce-editor/shared-process 0.103.16 → 0.103.18

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.103.16",
3
+ "version": "0.103.18",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@lvce-editor/assert": "1.9.0",
21
- "@lvce-editor/extension-host-helper-process": "0.103.16",
21
+ "@lvce-editor/extension-host-helper-process": "0.103.18",
22
22
  "@lvce-editor/ipc": "16.11.0",
23
23
  "@lvce-editor/json-rpc": "8.6.0",
24
24
  "@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', '716beab', 'extensions')
6
+ const builtinExtensionsPath = join(staticServerPath, '..', '..', 'static', '4dc628e', 'extensions')
7
7
  return builtinExtensionsPath
8
8
  }
@@ -13,12 +13,13 @@ import { VError } from '../VError/VError.js'
13
13
  export const enable = async (id) => {
14
14
  try {
15
15
  const disabledExtensionsJsonPath = PlatformPaths.getDisabledExtensionsJsonPath()
16
- const oldDisabledExtensionIds = await getDisabledExtensionIds()
17
- if (!oldDisabledExtensionIds.includes(id)) {
16
+ const { disabledExtensionIds, enabledExtensionIds } = await getExtensionEnablement()
17
+ if (!disabledExtensionIds.includes(id) && enabledExtensionIds.includes(id)) {
18
18
  return
19
19
  }
20
- const newDisabledExtensionIds = oldDisabledExtensionIds.filter((extensionId) => extensionId !== id)
21
- const content = getNewDisabledExtensionContent(newDisabledExtensionIds)
20
+ const newDisabledExtensionIds = disabledExtensionIds.filter((extensionId) => extensionId !== id)
21
+ const newEnabledExtensionIds = enabledExtensionIds.includes(id) ? enabledExtensionIds : [...enabledExtensionIds, id]
22
+ const content = getNewExtensionEnablementContent(newDisabledExtensionIds, newEnabledExtensionIds)
22
23
  await mkdir(dirname(disabledExtensionsJsonPath), { recursive: true })
23
24
  await writeFile(disabledExtensionsJsonPath, content)
24
25
  } catch (error) {
@@ -26,11 +27,12 @@ export const enable = async (id) => {
26
27
  }
27
28
  }
28
29
 
29
- const getNewDisabledExtensionContent = (disabledExtensions) => {
30
+ const getNewExtensionEnablementContent = (disabledExtensions, enabledExtensions) => {
30
31
  const content =
31
32
  JSON.stringify(
32
33
  {
33
34
  disabledExtensions,
35
+ enabledExtensions,
34
36
  },
35
37
  null,
36
38
  2,
@@ -41,12 +43,13 @@ const getNewDisabledExtensionContent = (disabledExtensions) => {
41
43
  export const disable = async (id) => {
42
44
  try {
43
45
  const disabledExtensionsJsonPath = PlatformPaths.getDisabledExtensionsJsonPath()
44
- const oldDisabledExtensionIds = await getDisabledExtensionIds()
45
- if (oldDisabledExtensionIds.includes(id)) {
46
+ const { disabledExtensionIds, enabledExtensionIds } = await getExtensionEnablement()
47
+ if (disabledExtensionIds.includes(id) && !enabledExtensionIds.includes(id)) {
46
48
  return
47
49
  }
48
- const newDisabledExtensionIds = [...oldDisabledExtensionIds, id]
49
- const content = getNewDisabledExtensionContent(newDisabledExtensionIds)
50
+ const newDisabledExtensionIds = disabledExtensionIds.includes(id) ? disabledExtensionIds : [...disabledExtensionIds, id]
51
+ const newEnabledExtensionIds = enabledExtensionIds.filter((extensionId) => extensionId !== id)
52
+ const content = getNewExtensionEnablementContent(newDisabledExtensionIds, newEnabledExtensionIds)
50
53
  await mkdir(dirname(disabledExtensionsJsonPath), { recursive: true })
51
54
  await writeFile(disabledExtensionsJsonPath, content)
52
55
  } catch (error) {
@@ -54,23 +57,41 @@ export const disable = async (id) => {
54
57
  }
55
58
  }
56
59
 
57
- export const getDisabledExtensionIds = async () => {
60
+ const getStringArray = (value) => {
61
+ if (!Array.isArray(value)) {
62
+ return []
63
+ }
64
+ return value.filter((extensionId) => typeof extensionId === 'string')
65
+ }
66
+
67
+ export const getExtensionEnablement = async () => {
58
68
  try {
59
69
  const disabledExtensionsJsonPath = PlatformPaths.getDisabledExtensionsJsonPath()
60
70
  if (!existsSync(disabledExtensionsJsonPath)) {
61
- return []
71
+ return {
72
+ disabledExtensionIds: [],
73
+ enabledExtensionIds: [],
74
+ }
62
75
  }
63
76
  const content = await readFile(disabledExtensionsJsonPath, 'utf8')
64
77
  const parsed = JSON.parse(content)
65
- if (!parsed || !parsed.disabledExtensions || !Array.isArray(parsed.disabledExtensions)) {
66
- return []
78
+ return {
79
+ disabledExtensionIds: getStringArray(parsed?.disabledExtensions),
80
+ enabledExtensionIds: getStringArray(parsed?.enabledExtensions),
67
81
  }
68
- return parsed.disabledExtensions.filter((extensionId) => typeof extensionId === 'string')
69
82
  } catch {
70
- return []
83
+ return {
84
+ disabledExtensionIds: [],
85
+ enabledExtensionIds: [],
86
+ }
71
87
  }
72
88
  }
73
89
 
90
+ export const getDisabledExtensionIds = async () => {
91
+ const { disabledExtensionIds } = await getExtensionEnablement()
92
+ return disabledExtensionIds
93
+ }
94
+
74
95
  export const getBuiltinExtensions = () => {
75
96
  return ExtensionManifests.getAll(
76
97
  [
@@ -1,5 +1,5 @@
1
1
  import * as DeduplicateExtensions from '../DeduplicateExtensions/DeduplicateExtensions.js'
2
- import { getDisabledExtensionIds } from '../ExtensionManagement/ExtensionManagement.js'
2
+ import { getExtensionEnablement } from '../ExtensionManagement/ExtensionManagement.js'
3
3
  import * as ExtensionManifestInputType from '../ExtensionManifestInputType/ExtensionManifestInputType.js'
4
4
  import * as ExtensionManifestsGetFromFolder from './ExtensionManifestsFromFolder.js'
5
5
  import * as ExtensionManifestsGetFromLinkedExtension from './ExtensionManifestsFromLinkedExtension.js'
@@ -30,11 +30,11 @@ const isBuiltin = (extension) => {
30
30
  return extension && extension.id && extension.id.startsWith('builtin.')
31
31
  }
32
32
 
33
- const addExtensionDisabledStatus = (uniqueExtensions, disabledExtensionIds) => {
33
+ const addExtensionDisabledStatus = (uniqueExtensions, disabledExtensionIds, enabledExtensionIds) => {
34
34
  return uniqueExtensions.map((extension) => {
35
35
  return {
36
36
  ...extension,
37
- disabled: extension.disabled === true || disabledExtensionIds.includes(extension.id),
37
+ disabled: disabledExtensionIds.includes(extension.id) || (extension.disabled === true && !enabledExtensionIds.includes(extension.id)),
38
38
  isBuiltin: isBuiltin(extension),
39
39
  }
40
40
  })
@@ -42,9 +42,9 @@ const addExtensionDisabledStatus = (uniqueExtensions, disabledExtensionIds) => {
42
42
 
43
43
  export const getAll = async (inputs, builtinExtensionsPath = undefined) => {
44
44
  const manifests = await Promise.all(inputs.map(get))
45
- const disabledIds = await getDisabledExtensionIds()
45
+ const { disabledExtensionIds, enabledExtensionIds } = await getExtensionEnablement()
46
46
  const flatManifests = manifests.flat(1)
47
47
  const uniqueExtensions = DeduplicateExtensions.deduplicateExtensions(flatManifests, builtinExtensionsPath)
48
- const filteredExtensions = addExtensionDisabledStatus(uniqueExtensions, disabledIds)
48
+ const filteredExtensions = addExtensionDisabledStatus(uniqueExtensions, disabledExtensionIds, enabledExtensionIds)
49
49
  return filteredExtensions
50
50
  }
@@ -61,11 +61,11 @@ export const getSetupName = () => {
61
61
  return 'Lvce-Setup'
62
62
  }
63
63
 
64
- export const version = '0.103.16'
64
+ export const version = '0.103.18'
65
65
 
66
- export const commit = '716beab'
66
+ export const commit = '4dc628e'
67
67
 
68
- export const date = '2026-08-16T17:14:32.000Z'
68
+ export const date = '2026-08-16T19:38:37.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', '716beab', 'packages', 'preload', 'dist', 'index.js')
5
+ return join(Root.root, 'static', '4dc628e', 'packages', 'preload', 'dist', 'index.js')
6
6
  }