@lvce-editor/shared-process 0.25.8 → 0.25.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/shared-process",
3
- "version": "0.25.8",
3
+ "version": "0.25.10",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -18,18 +18,18 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@lvce-editor/assert": "^1.2.0",
21
- "@lvce-editor/extension-host-helper-process": "0.25.8",
22
- "@lvce-editor/ipc": "^3.4.0",
21
+ "@lvce-editor/extension-host-helper-process": "0.25.10",
22
+ "@lvce-editor/ipc": "^3.7.1",
23
23
  "@lvce-editor/json-rpc": "^1.3.0",
24
24
  "@lvce-editor/jsonc-parser": "^1.2.0",
25
25
  "@lvce-editor/pretty-error": "^1.5.0",
26
- "@lvce-editor/pty-host": "0.25.8",
26
+ "@lvce-editor/pty-host": "0.25.10",
27
27
  "@lvce-editor/verror": "^1.2.0",
28
28
  "@lvce-editor/web-socket-server": "^1.1.0",
29
29
  "debug": "^4.3.4",
30
30
  "execa": "^8.0.1",
31
31
  "exit-hook": "^4.0.0",
32
- "got": "^13.0.0",
32
+ "got": "^14.2.1",
33
33
  "is-object": "^1.0.2",
34
34
  "p-queue": "^8.0.1",
35
35
  "tar-fs": "^3.0.5",
@@ -37,7 +37,6 @@
37
37
  },
38
38
  "optionalDependencies": {
39
39
  "@lvce-editor/ripgrep": "^1.0.2",
40
- "extract-zip": "^2.0.1",
41
40
  "open": "^10.1.0",
42
41
  "tail": "^2.2.6",
43
42
  "tmp-promise": "^3.0.3",
@@ -1,7 +1,6 @@
1
- import * as AddSemiColon from '../AddSemiColon/AddSemiColon.js'
2
- import * as Character from '../Character/Character.js'
1
+ import * as GetContentSecurityPolicy from '../GetContentSecurityPolicy/GetContentSecurityPolicy.js'
3
2
 
4
- export const value = [
3
+ export const value = GetContentSecurityPolicy.getContentSecurityPolicy([
5
4
  `default-src 'none'`,
6
5
  `font-src 'self'`,
7
6
  `frame-src *`,
@@ -9,6 +8,4 @@ export const value = [
9
8
  `script-src 'self'`,
10
9
  `media-src 'self'`,
11
10
  `style-src 'self'`,
12
- ]
13
- .map(AddSemiColon.addSemicolon)
14
- .join(Character.Space)
11
+ ])
@@ -0,0 +1,3 @@
1
+ import * as GetContentSecurityPolicy from '../GetContentSecurityPolicy/GetContentSecurityPolicy.js'
2
+
3
+ export const value = GetContentSecurityPolicy.getContentSecurityPolicy([`default-src 'none'`, `script-src 'self'`])
@@ -1,4 +1,3 @@
1
- import * as Character from '../Character/Character.js'
2
- import * as AddSemiColon from '../AddSemiColon/AddSemiColon.js'
1
+ import * as GetContentSecurityPolicy from '../GetContentSecurityPolicy/GetContentSecurityPolicy.js'
3
2
 
4
- export const value = [`default-src 'none'`, `script-src 'self'`, `connect-src 'self'`].map(AddSemiColon.addSemicolon).join(Character.Space)
3
+ export const value = GetContentSecurityPolicy.getContentSecurityPolicy([`default-src 'none'`, `script-src 'self'`, `connect-src 'self'`])
@@ -1,4 +1,3 @@
1
- import * as Character from '../Character/Character.js'
2
- import * as AddSemiColon from '../AddSemiColon/AddSemiColon.js'
1
+ import * as GetContentSecurityPolicy from '../GetContentSecurityPolicy/GetContentSecurityPolicy.js'
3
2
 
4
- export const value = [`default-src 'none'`, `script-src 'self'`].map(AddSemiColon.addSemicolon).join(Character.Space)
3
+ export const value = GetContentSecurityPolicy.getContentSecurityPolicy([`default-src 'none'`, `script-src 'self'`])
@@ -1,12 +1,8 @@
1
- import * as Character from '../Character/Character.js'
2
- import * as AddSemiColon from '../AddSemiColon/AddSemiColon.js'
1
+ import * as GetContentSecurityPolicy from '../GetContentSecurityPolicy/GetContentSecurityPolicy.js'
3
2
 
4
- // prettier-ignore
5
- export const value = [
3
+ export const value = GetContentSecurityPolicy.getContentSecurityPolicy([
6
4
  `default-src 'none'`,
7
5
  `connect-src 'self'`,
8
6
  `script-src 'self'`,
9
7
  `font-src 'self'`,
10
- ]
11
- .map(AddSemiColon.addSemicolon)
12
- .join(Character.Space)
8
+ ])
@@ -0,0 +1,6 @@
1
+ import * as Character from '../Character/Character.js'
2
+ import * as AddSemiColon from '../AddSemiColon/AddSemiColon.js'
3
+
4
+ export const getContentSecurityPolicy = (items) => {
5
+ return items.map(AddSemiColon.addSemicolon).join(Character.Space)
6
+ }
@@ -3,11 +3,12 @@ import * as GetHeadersDefault from '../GetHeadersDefault/GetHeadersDefault.js'
3
3
  import * as GetHeadersExtensionHostWorker from '../GetHeadersExtensionHostWorker/GetHeadersExtensionHostWorker.js'
4
4
  import * as GetHeadersMainFrame from '../GetHeadersMainFrame/GetHeadersMainFrame.js'
5
5
  import * as GetHeadersOtherWorker from '../GetHeadersOtherWorker/GetHeadersOtherWorker.js'
6
- import * as HttpHeader from '../HttpHeader/HttpHeader.js'
7
6
  import * as GetHeadersRendererWorker from '../GetHeadersRendererWorker/GetHeadersRendererWorker.js'
7
+ import * as GetHeadersSyntaxHighlightingWorker from '../GetHeadersSyntaxHighlightingWorker/GetHeadersSyntaxHighlightingWorker.js'
8
8
  import * as GetHeadersTerminalWorker from '../GetHeadersTerminalWorker/GetHeadersTerminalWorker.js'
9
9
  import * as GetHeadersTestWorker from '../GetHeadersTestWorker/GetHeadersTestWorker.js'
10
10
  import * as GetMimeType from '../GetMimeType/GetMimeType.js'
11
+ import * as HttpHeader from '../HttpHeader/HttpHeader.js'
11
12
 
12
13
  const getExtraHeaders = (pathName, fileExtension) => {
13
14
  switch (fileExtension) {
@@ -27,6 +28,9 @@ const getExtraHeaders = (pathName, fileExtension) => {
27
28
  if (pathName.endsWith('terminalWorkerMain.js') || pathName.endsWith('terminalWorkerMain.ts')) {
28
29
  return GetHeadersTerminalWorker.getHeadersTerminalWorker()
29
30
  }
31
+ if (pathName.endsWith('syntaxHighlightingWorkerMain.js') || pathName.endsWith('syntaxHighlightingWorkerMain.ts')) {
32
+ return GetHeadersSyntaxHighlightingWorker.getHeadersSyntaxHighlightingWorker()
33
+ }
30
34
  if (pathName.endsWith('WorkerMain.js') || pathName.endsWith('WorkerMain.ts')) {
31
35
  return GetHeadersOtherWorker.getHeadersOtherWorker(pathName)
32
36
  }
@@ -0,0 +1,10 @@
1
+ import * as ContentSecurityPolicySyntaxHighlightingWorker from '../ContentSecurityPolicySyntaxHighlightingWorker/ContentSecurityPolicySyntaxHighlightingWorker.js'
2
+ import * as HttpHeader from '../HttpHeader/HttpHeader.js'
3
+ import * as CrossOriginEmbedderPolicy from '../CrossOriginEmbedderPolicy/CrossOriginEmbedderPolicy.js'
4
+
5
+ export const getHeadersSyntaxHighlightingWorker = () => {
6
+ return {
7
+ [HttpHeader.CrossOriginEmbedderPolicy]: CrossOriginEmbedderPolicy.value,
8
+ [HttpHeader.ContentSecurityPolicy]: ContentSecurityPolicySyntaxHighlightingWorker.value,
9
+ }
10
+ }
@@ -1,16 +1,22 @@
1
+ import {
2
+ IpcChildWithElectronMessagePort,
3
+ IpcChildWithElectronUtilityProcess,
4
+ IpcChildWithNodeForkedProcess,
5
+ IpcChildWithNodeWorker,
6
+ IpcChildWithWebSocket,
7
+ } from '@lvce-editor/ipc'
1
8
  import * as IpcChildType from '../IpcChildType/IpcChildType.js'
2
- import { IpcChildWithElectronUtilityProcess, IpcChildWithWebSocket } from '@lvce-editor/ipc'
3
9
 
4
10
  export const getModule = (method) => {
5
11
  switch (method) {
6
12
  case IpcChildType.NodeForkedProcess:
7
- return import('../IpcChildWithNodeForkedProcess/IpcChildWithNodeForkedProcess.js')
13
+ return IpcChildWithNodeForkedProcess
8
14
  case IpcChildType.NodeWorker:
9
- return import('../IpcChildWithNodeWorker/IpcChildWithNodeWorker.js')
15
+ return IpcChildWithNodeWorker
10
16
  case IpcChildType.ElectronUtilityProcess:
11
17
  return IpcChildWithElectronUtilityProcess
12
18
  case IpcChildType.ElectronMessagePort:
13
- return import('../IpcChildWithElectronMessagePort/IpcChildWithElectronMessagePort.js')
19
+ return IpcChildWithElectronMessagePort
14
20
  case IpcChildType.NodeMessagePort:
15
21
  return import('../IpcChildWithNodeMessagePort/IpcChildWithNodeMessagePort.js')
16
22
  case IpcChildType.WebSocket:
@@ -1,11 +1,12 @@
1
+ import { IpcParentWithNodeForkedProcess, IpcParentWithNodeWorker } from '@lvce-editor/ipc'
1
2
  import * as IpcParentType from '../IpcParentType/IpcParentType.js'
2
3
 
3
4
  export const getModule = (method) => {
4
5
  switch (method) {
5
6
  case IpcParentType.NodeWorker:
6
- return import('../IpcParentWithNodeWorker/IpcParentWithNodeWorker.js')
7
+ return IpcParentWithNodeWorker
7
8
  case IpcParentType.NodeForkedProcess:
8
- return import('../IpcParentWithNodeForkedProcess/IpcParentWithNodeForkedProcess.js')
9
+ return IpcParentWithNodeForkedProcess
9
10
  case IpcParentType.ElectronUtilityProcess:
10
11
  return import('../IpcParentWithElectronUtilityProcess/IpcParentWithElectronUtilityProcess.js')
11
12
  default:
@@ -16,8 +16,6 @@ export const load = (moduleId) => {
16
16
  return import('../AutoUpdaterWindowsNsis/AutoUpdaterWindowsNsis.ipc.js')
17
17
  case ModuleId.BulkReplacement:
18
18
  return import('../BulkReplacement/BulkReplacement.ipc.js')
19
- case ModuleId.ChromeExtension:
20
- return import('../ChromeExtension/ChromeExtension.ipc.js')
21
19
  case ModuleId.ClipBoard:
22
20
  return import('../ClipBoard/ClipBoard.ipc.js')
23
21
  case ModuleId.Crash:
@@ -61,11 +61,11 @@ export const getSetupName = () => {
61
61
  return 'Lvce-Setup'
62
62
  }
63
63
 
64
- export const version = '0.25.8'
64
+ export const version = '0.25.10'
65
65
 
66
- export const commit = '2031590'
66
+ export const commit = 'c9592d8'
67
67
 
68
- export const date = '2024-04-11T20:28:49.000Z'
68
+ export const date = '2024-04-14T11:11:32.000Z'
69
69
 
70
70
  export const getVersion = () => {
71
71
  return version
@@ -1,8 +0,0 @@
1
- import * as ChromeExtension from './ChromeExtension.js'
2
-
3
- export const name = 'ChromeExtension'
4
-
5
- export const Commands = {
6
- install: ChromeExtension.install,
7
- uninstall: ChromeExtension.uninstall,
8
- }
@@ -1,46 +0,0 @@
1
- import * as Assert from '../Assert/Assert.js'
2
- import * as Download from '../Download/Download.js'
3
- import * as ExtractZip from '../ExtractZip/ExtractZip.js'
4
- import * as FileSystem from '../FileSystem/FileSystem.js'
5
- import * as Path from '../Path/Path.js'
6
- import * as PlatformPaths from '../PlatformPaths/PlatformPaths.js'
7
- import { VError } from '../VError/VError.js'
8
-
9
- const getExtensionPath = async (tmpDir) => {
10
- const dirents = await FileSystem.readDirWithFileTypes(tmpDir)
11
- // @ts-ignore
12
- if (dirents.length === 1 && dirents[0].type === 'directory') {
13
- return Path.join(tmpDir, dirents[0].name)
14
- }
15
- return tmpDir
16
- }
17
-
18
- export const install = async (name, url) => {
19
- try {
20
- Assert.string(name)
21
- Assert.string(url)
22
- const cachedChromeExtensionsPath = PlatformPaths.getCachedExtensionsPath()
23
- const tempFileCompressed = Path.join(cachedChromeExtensionsPath, `${name}.zip`)
24
- const tmpDir = Path.join(cachedChromeExtensionsPath, name)
25
- const chromeExtensionsPath = PlatformPaths.getChromeExtensionsPath()
26
- await Download.download(url, tempFileCompressed)
27
- await ExtractZip.extractZip({ inFile: tempFileCompressed, outDir: tmpDir })
28
- const cachedExtensionPath = await getExtensionPath(tmpDir)
29
- const outDir = Path.join(chromeExtensionsPath, name)
30
- await FileSystem.remove(outDir)
31
- await FileSystem.rename(cachedExtensionPath, outDir)
32
- } catch (error) {
33
- throw new VError(error, `Failed to install chrome extension ${name}`)
34
- }
35
- }
36
-
37
- export const uninstall = async (name) => {
38
- try {
39
- Assert.string(name)
40
- // TODO
41
- // figure out extension path
42
- // remove file
43
- } catch (error) {
44
- throw new VError(error, `Failed to uninstall chrome extension ${name}`)
45
- }
46
- }
@@ -1,12 +0,0 @@
1
- import { mkdir } from 'node:fs/promises'
2
- import extract from 'extract-zip'
3
- import { VError } from '../VError/VError.js'
4
-
5
- export const extractZip = async ({ inFile, outDir }) => {
6
- try {
7
- await mkdir(outDir, { recursive: true })
8
- await extract(inFile, { dir: outDir })
9
- } catch (error) {
10
- throw new VError(error, `Failed to extract ${inFile}`)
11
- }
12
- }
@@ -1,46 +0,0 @@
1
- export const listen = async () => {
2
- if (!process.send) {
3
- throw new Error('process.send must be defined')
4
- }
5
- return process
6
- }
7
-
8
- export const signal = (process) => {
9
- process.send('ready')
10
- }
11
-
12
- const getActualData = (message, handle) => {
13
- if (handle) {
14
- return {
15
- ...message,
16
- params: [...message.params, handle],
17
- }
18
- }
19
- return message
20
- }
21
-
22
- export const wrap = (process) => {
23
- return {
24
- process,
25
- on(event, listener) {
26
- if (event === 'message') {
27
- const wrappedListener = (event, handle) => {
28
- const actualData = getActualData(event, handle)
29
- listener(actualData)
30
- }
31
- this.process.on(event, wrappedListener)
32
- } else if (event === 'close') {
33
- this.process.on('close', listener)
34
- } else {
35
- throw new Error('unsupported event type')
36
- }
37
- },
38
- off(event, listener) {
39
- this.process.off(event, listener)
40
- },
41
- send(message) {
42
- this.process.send(message)
43
- },
44
- dispose() {},
45
- }
46
- }
@@ -1,45 +0,0 @@
1
- import { parentPort } from 'node:worker_threads'
2
- import * as IsElectron from '../IsElectron/IsElectron.js'
3
-
4
- export const listen = async () => {
5
- if (!parentPort) {
6
- throw new Error('parentPort is required')
7
- }
8
- return parentPort
9
- }
10
-
11
- export const signal = (parentPort) => {
12
- parentPort.postMessage('ready')
13
- }
14
-
15
- const getActualData = (message) => {
16
- return message
17
- }
18
-
19
- export const wrap = (parentPort) => {
20
- return {
21
- parentPort,
22
- on(event, listener) {
23
- if (event === 'message') {
24
- const wrappedListener = (event) => {
25
- const actualData = getActualData(event)
26
- listener(actualData)
27
- }
28
- this.parentPort.on(event, wrappedListener)
29
- } else if (event === 'close') {
30
- this.parentPort.on('close', listener)
31
- } else {
32
- throw new Error('unsupported event type')
33
- }
34
- },
35
- off(event, listener) {
36
- this.parentPort.off(event, listener)
37
- },
38
- send(message) {
39
- this.parentPort.postMessage(message)
40
- },
41
- dispose() {
42
- this.parentPort.close()
43
- },
44
- }
45
- }
@@ -1,5 +0,0 @@
1
- import { IpcParentWithNodeForkedProcess } from '@lvce-editor/ipc'
2
-
3
- export const create = IpcParentWithNodeForkedProcess.create
4
-
5
- export const wrap = IpcParentWithNodeForkedProcess.wrap
@@ -1,36 +0,0 @@
1
- import { Worker } from 'node:worker_threads'
2
- import * as Assert from '../Assert/Assert.js'
3
- import * as FirstNodeWorkerEventType from '../FirstNodeWorkerEventType/FirstNodeWorkerEventType.js'
4
- import * as GetFirstNodeWorkerEvent from '../GetFirstNodeWorkerEvent/GetFirstNodeWorkerEvent.js'
5
-
6
- export const create = async ({ path, argv, env, execArgv }) => {
7
- Assert.string(path)
8
- const worker = new Worker(path, {
9
- argv,
10
- env,
11
- execArgv,
12
- })
13
- const { type, event } = await GetFirstNodeWorkerEvent.getFirstNodeWorkerEvent(worker)
14
- if (type === FirstNodeWorkerEventType.Error) {
15
- throw event
16
- }
17
- return worker
18
- }
19
-
20
- export const wrap = (worker) => {
21
- return {
22
- worker,
23
- on(event, listener) {
24
- this.worker.on(event, listener)
25
- },
26
- send(message) {
27
- this.worker.postMessage(message)
28
- },
29
- sendAndTransfer(message, transfer) {
30
- this.worker.postMessage(message, transfer)
31
- },
32
- dispose() {
33
- this.worker.terminate()
34
- },
35
- }
36
- }