diff --git a/apps/app/package.json b/apps/app/package.json index 2ca74ef..0ace351 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -44,6 +44,7 @@ "node-loader": "^2.0.0", "node-pty": "^1.0.0", "os-locale": "^6.0.2", + "shell-env": "^4.0.1", "vm": "^0.1.0", "webpack": "^5.72.0", "winston": "^3.8.2" diff --git a/apps/app/src/nativeBridge/modules/terminalModule.ts b/apps/app/src/nativeBridge/modules/terminalModule.ts index 152f777..3b73e24 100644 --- a/apps/app/src/nativeBridge/modules/terminalModule.ts +++ b/apps/app/src/nativeBridge/modules/terminalModule.ts @@ -36,14 +36,14 @@ class PTYInstance { cols: cols, rows: rows, cwd: startupDirectory || os.homedir() || process.cwd(), - env: { - ...process.env, + // eslint-disable-next-line @typescript-eslint/no-var-requires + env: Object.assign({}, require('shell-env').shellEnvSync(shell), { LANG: `${osLocaleSync().replace(/-/, '_')}.UTF-8`, TERM: 'xterm-256color', COLORTERM: 'truecolor', TERM_PROGRAM: app.name, TERM_PROGRAM_VERSION: app.getVersion(), - }, + }), }); Logger.getInstance().log( diff --git a/apps/app/webpack.preload.config.js b/apps/app/webpack.preload.config.js index 8238477..7710074 100644 --- a/apps/app/webpack.preload.config.js +++ b/apps/app/webpack.preload.config.js @@ -12,6 +12,8 @@ module.exports = { }, externals: { electron: 'commonjs electron', + 'node:os': 'commonjs os', + 'node:process': 'commonjs process', }, plugins: [ new webpack.NormalModuleReplacementPlugin( @@ -51,6 +53,7 @@ module.exports = { fallback: { assert: false, buffer: false, + child_process: false, console: false, constants: false, crypto: false, diff --git a/package-lock.json b/package-lock.json index e70bdd7..935d33f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@terminalone/monorepo", - "version": "1.2.0", + "version": "1.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@terminalone/monorepo", - "version": "1.2.0", + "version": "1.5.1", "license": "MIT", "workspaces": [ "apps/*", @@ -53,6 +53,7 @@ "node-loader": "^2.0.0", "node-pty": "^1.0.0", "os-locale": "^6.0.2", + "shell-env": "^4.0.1", "vm": "^0.1.0", "webpack": "^5.72.0", "winston": "^3.8.2" @@ -6504,6 +6505,17 @@ "node": ">=0.10.0" } }, + "node_modules/default-shell": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/default-shell/-/default-shell-2.2.0.tgz", + "integrity": "sha512-sPpMZcVhRQ0nEMDtuMJ+RtCxt7iHPAMBU+I4tAlo5dU1sjRpNax0crj6nR3qKpvVnckaQ9U38enXcwW9nZJeCw==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -7982,7 +7994,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -8005,7 +8016,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, "engines": { "node": ">=10" }, @@ -8864,7 +8874,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, "engines": { "node": ">=10.17.0" } @@ -11174,7 +11183,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, "engines": { "node": ">=6" } @@ -11632,7 +11640,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, "dependencies": { "path-key": "^3.0.0" }, @@ -11814,7 +11821,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -13179,6 +13185,47 @@ "node": ">=8" } }, + "node_modules/shell-env": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/shell-env/-/shell-env-4.0.1.tgz", + "integrity": "sha512-w3oeZ9qg/P6Lu6qqwavvMnB/bwfsz67gPB3WXmLd/n6zuh7TWQZtGa3iMEdmua0kj8rivkwl+vUjgLWlqZOMPw==", + "dependencies": { + "default-shell": "^2.0.0", + "execa": "^5.1.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/shell-env/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/shell-env/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/shell-quote": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", @@ -13237,8 +13284,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/simple-swizzle": { "version": "0.2.2", @@ -13586,7 +13632,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, "engines": { "node": ">=6" } diff --git a/package.json b/package.json index 0a56c48..219afb4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@terminalone/monorepo", "productName": "Terminal One", - "version": "1.5.0", + "version": "1.5.1", "description": "A fast, elegant and intelligent cross-platform terminal.", "author": "atinylittleshell ", "license": "MIT",