Compare commits

...

102 Commits

Author SHA1 Message Date
dependabot-preview[bot]
2e486c5e53 Bump sass-loader from 7.1.0 to 7.2.0 (#1376)
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v7.1.0...v7.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-12 10:07:16 +02:00
dependabot-preview[bot]
d87f329838 Bump xterm from 3.15.0-beta93 to 3.15.0-beta98 in /terminus-ter… (#1375)
Bumps [xterm](https://github.com/xtermjs/xterm.js) from 3.15.0-beta93 to 3.15.0-beta98.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-12 10:06:47 +02:00
Eugene Pankov
e6de63c689 better sourcemaps 2019-08-09 17:39:03 +02:00
Eugene
bb845ee803 Update travis.sh 2019-08-09 16:33:14 +02:00
dependabot-preview[bot]
9e67996e24 Bump core-js from 3.1.4 to 3.2.0 (#1371)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.1.4 to 3.2.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/3.1.4...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-09 14:31:44 +02:00
dependabot-preview[bot]
b5523d9820 Bump core-js from 3.1.4 to 3.2.0 in /terminus-core (#1370)
Bumps [core-js](https://github.com/zloirock/core-js) from 3.1.4 to 3.2.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/3.1.4...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-09 14:31:31 +02:00
Eugene Pankov
ad26e4f6a3 Merge branch 'master' of github.com:Eugeny/terminus 2019-08-08 12:48:17 +02:00
Eugene Pankov
ae40f009a0 Create config.yml 2019-08-08 12:48:14 +02:00
dependabot-preview[bot]
7ee603df60 Bump xterm from 3.15.0-beta91 to 3.15.0-beta93 in /terminus-ter… (#1363)
Bumps [xterm](https://github.com/xtermjs/xterm.js) from 3.15.0-beta91 to 3.15.0-beta93.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-08 11:58:13 +02:00
Eugene Pankov
a8eb0d8346 lint 2019-08-07 15:31:21 +02:00
Eugene Pankov
924a8da2f5 Merge branch 'master' of github.com:Eugeny/terminus 2019-08-07 15:24:04 +02:00
Eugene Pankov
07ab28279c don't copy empty selection (fixes #1346, fixes #1325) 2019-08-07 15:21:58 +02:00
Eugene Pankov
dbb6c544de Update package.json 2019-08-07 15:16:31 +02:00
Eugene Pankov
8c3d2531dc fixed #816 2019-08-07 15:16:03 +02:00
dependabot-preview[bot]
e8fc47665b Bump xterm from 3.15.0-beta89 to 3.15.0-beta91 in /terminus-ter… (#1332)
Bumps [xterm](https://github.com/xtermjs/xterm.js) from 3.15.0-beta89 to 3.15.0-beta91.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-07 15:14:18 +02:00
dependabot-preview[bot]
574d8d9c7a Bump typedoc from 0.14.2 to 0.15.0 (#1317)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.14.2 to 0.15.0.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.14.2...v0.15.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-07 15:13:47 +02:00
dependabot-preview[bot]
16c9e20b2a Bump @fortawesome/fontawesome-free from 5.9.0 to 5.10.1 (#1341)
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 5.9.0 to 5.10.1.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/5.9.0...5.10.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-07 15:13:14 +02:00
dependabot-preview[bot]
665e0ff692 Bump graceful-fs from 4.2.0 to 4.2.1 (#1342)
Bumps [graceful-fs](https://github.com/isaacs/node-graceful-fs) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/isaacs/node-graceful-fs/releases)
- [Commits](https://github.com/isaacs/node-graceful-fs/compare/v4.2.0...v4.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-07 15:13:01 +02:00
dependabot-preview[bot]
8c71b26109 Bump webpack from 4.35.2 to 4.39.1 (#1343)
Bumps [webpack](https://github.com/webpack/webpack) from 4.35.2 to 4.39.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.35.2...v4.39.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-07 15:12:51 +02:00
dependabot-preview[bot]
6aeb9a62e6 Bump style-loader from 0.23.1 to 1.0.0 (#1353)
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 0.23.1 to 1.0.0.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v0.23.1...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-07 15:12:21 +02:00
dependabot-preview[bot]
337d1f4df5 Bump css-loader from 3.1.0 to 3.2.0 (#1354)
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.1.0...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-07 15:12:01 +02:00
dependabot-preview[bot]
057bd3f6d1 Bump node-pty from 0.9.0-beta19 to 0.9.0-beta22 in /app (#1355)
Bumps [node-pty](https://github.com/Tyriar/node-pty) from 0.9.0-beta19 to 0.9.0-beta22.
- [Release notes](https://github.com/Tyriar/node-pty/releases)
- [Commits](https://github.com/Tyriar/node-pty/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-07 15:11:46 +02:00
Eugene Pankov
b01a2e42fb Update package.json 2019-08-07 15:11:24 +02:00
Eugene Pankov
62efe406f5 Merge branch 'pr/1249' 2019-08-07 15:10:19 +02:00
Eugene Pankov
43f6ad3530 Update index.ts 2019-08-07 15:10:00 +02:00
Eugene
a060246269 Merge pull request #1328 from Eugeny/dependabot/npm_and_yarn/app/keytar-4.13.0
Bump keytar from 4.12.0 to 4.13.0 in /app
2019-08-01 12:24:23 +02:00
Eugene
802752d76c Merge pull request #1330 from Eugeny/dependabot/npm_and_yarn/node-abi-2.10.0
Bump node-abi from 2.9.0 to 2.10.0
2019-08-01 12:23:58 +02:00
dependabot-preview[bot]
a7fc2f4ddc Bump node-abi from 2.9.0 to 2.10.0
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 2.9.0 to 2.10.0.
- [Release notes](https://github.com/lgeiger/node-abi/releases)
- [Commits](https://github.com/lgeiger/node-abi/compare/v2.9.0...v2.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-31 04:31:19 +00:00
dependabot-preview[bot]
6a2fcd9f16 Bump keytar from 4.12.0 to 4.13.0 in /app
Bumps [keytar](https://github.com/atom/node-keytar) from 4.12.0 to 4.13.0.
- [Release notes](https://github.com/atom/node-keytar/releases)
- [Commits](https://github.com/atom/node-keytar/compare/v4.12.0...v4.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-31 04:29:33 +00:00
dependabot-preview[bot]
90f475e532 Bump xterm-addon-webgl from 0.2.0-beta5 to 0.2.0-beta6 in /term… (#1305)
Bumps xterm-addon-webgl from 0.2.0-beta5 to 0.2.0-beta6.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-26 14:30:59 +02:00
dependabot-preview[bot]
af6294e404 Bump xterm-addon-search from 0.2.0-beta2 to 0.2.0-beta4 in /ter… (#1310)
Bumps xterm-addon-search from 0.2.0-beta2 to 0.2.0-beta4.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-26 14:29:26 +02:00
dependabot-preview[bot]
17f471ac24 Bump xterm from 3.15.0-beta85 to 3.15.0-beta89 in /terminus-ter… (#1311)
Bumps [xterm](https://github.com/xtermjs/xterm.js) from 3.15.0-beta85 to 3.15.0-beta89.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-26 14:27:08 +02:00
Eugene
4274ed563b Merge pull request #1304 from ehwarren/feature/working-directory-in-new-terminals
Allow configuration of new tab CWD behaviour
2019-07-25 08:22:04 +02:00
Austin Warren
2acda3be5f fix lint 2019-07-24 17:09:08 -07:00
Austin Warren
2848f9f257 Added ability to configure whether new terminals will always open with the configured working directory 2019-07-24 11:56:57 -07:00
Eugene Pankov
6536e3d4b5 lint 2019-07-24 15:24:26 +02:00
Eugene Pankov
cdaa4fe106 Merge branch 'travis' 2019-07-24 12:53:30 +02:00
Eugene Pankov
a07e27ef4b . 2019-07-24 12:39:01 +02:00
Eugene
2d5e4477b8 Travis (#1303)
* .

* script
2019-07-24 12:25:06 +02:00
Eugene Pankov
f1213fb83e script 2019-07-24 12:16:29 +02:00
Eugene Pankov
947c751bc7 fixed wrong external 2019-07-24 12:07:28 +02:00
Eugene Pankov
0ca00b81d5 . 2019-07-24 12:06:29 +02:00
Eugene Pankov
7c10b57fb9 Update .travis.yml 2019-07-24 11:56:58 +02:00
Eugene Pankov
ffa6d41d8b go back to the upstream windows-process-tree 2019-07-24 11:51:26 +02:00
Eugene Pankov
5ecab9f304 ensure app deps get properly installed on travis 2019-07-24 11:50:39 +02:00
Eugene Pankov
dc9508f80d lint & enabled linter on Azure pipelines 2019-07-24 11:24:57 +02:00
Eugene
b6aa1f764b Merge pull request #1293 from ehwarren/bugfix/1271
Ensure tabs can be closed before executing window closure
2019-07-24 11:14:03 +02:00
Eugene
63f8ac2d92 Bump xterm from 3.15.0-beta84 to 3.15.0-beta85 in /terminus-ter… (#1295)
Bump xterm from 3.15.0-beta84 to 3.15.0-beta85 in /terminus-terminal
2019-07-24 09:28:22 +02:00
dependabot-preview[bot]
da4622a2ed Bump xterm from 3.15.0-beta84 to 3.15.0-beta85 in /terminus-terminal
Bumps [xterm](https://github.com/xtermjs/xterm.js) from 3.15.0-beta84 to 3.15.0-beta85.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-24 04:46:47 +00:00
Austin Warren
2896321076 Ensure tabs can be closed before executing window closure 2019-07-23 14:40:18 -07:00
Eugene
092e5fb8aa Merge pull request #1292 from ehwarren/auto-updater-fixes
Auto updater fixes
2019-07-23 22:43:07 +02:00
Eugene
43bb3f7f2d Bump xterm from 3.15.0-beta81 to 3.15.0-beta84 in /terminus-ter… (#1287)
Bump xterm from 3.15.0-beta81 to 3.15.0-beta84 in /terminus-terminal
2019-07-23 21:50:02 +02:00
Austin Warren
b144724ed5 Fix import for spawn 2019-07-23 12:47:44 -07:00
Austin Warren
04f233b4a5 Download the install executable regardless of if we're going to automatically install it 2019-07-23 12:39:41 -07:00
Austin Warren
7645a1d2c7 Added check to see if auto-update is enabled and fix issues with installation on windows platform 2019-07-23 12:29:14 -07:00
Austin Warren
2953ea60e8 Clarify that this button is used to install the available update 2019-07-23 12:24:35 -07:00
Austin Warren
8d5b2bc4c5 Added configuration option to enable/disable automatic updates 2019-07-23 12:24:17 -07:00
Austin Warren
1d1e620db6 Merge pull request #4 from Eugeny/master
Update to master
2019-07-23 08:36:30 -07:00
Eugene
3532195760 Merge pull request #1288 from Eugeny/dependabot/npm_and_yarn/app/keytar-4.12.0
Bump keytar from 4.11.0 to 4.12.0 in /app
2019-07-23 08:24:38 +02:00
dependabot-preview[bot]
9d55c7c0ed Bump keytar from 4.11.0 to 4.12.0 in /app
Bumps [keytar](https://github.com/atom/node-keytar) from 4.11.0 to 4.12.0.
- [Release notes](https://github.com/atom/node-keytar/releases)
- [Commits](https://github.com/atom/node-keytar/compare/v4.11.0...v4.12.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-23 05:40:41 +00:00
dependabot-preview[bot]
b9fcf6cac3 Bump xterm from 3.15.0-beta81 to 3.15.0-beta84 in /terminus-terminal
Bumps [xterm](https://github.com/xtermjs/xterm.js) from 3.15.0-beta81 to 3.15.0-beta84.
- [Release notes](https://github.com/xtermjs/xterm.js/releases)
- [Commits](https://github.com/xtermjs/xterm.js/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-23 05:12:03 +00:00
Eugene Pankov
e49deee303 Update .travis.yml 2019-07-22 14:25:27 +02:00
Eugene Pankov
f4da5955de Update .travis.yml 2019-07-22 14:04:28 +02:00
Eugene Pankov
5db0ccf96a Merge branch 'master' of github.com:Eugeny/terminus 2019-07-22 12:58:34 +02:00
Eugene
f8f9c81a66 Bump @typescript-eslint/eslint-plugin from 1.12.0 to 1.13.0 (#1286)
Bump @typescript-eslint/eslint-plugin from 1.12.0 to 1.13.0
2019-07-22 11:40:48 +02:00
dependabot-preview[bot]
75b51983cc Bump @typescript-eslint/eslint-plugin from 1.12.0 to 1.13.0
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v1.13.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-22 09:38:29 +00:00
Eugene
7e66af2585 Bump @typescript-eslint/parser from 1.12.0 to 1.13.0 (#1285)
Bump @typescript-eslint/parser from 1.12.0 to 1.13.0
2019-07-22 11:36:37 +02:00
Eugene
ac8026b6d9 Bump eslint-plugin-import from 2.18.0 to 2.18.2 (#1284)
Bump eslint-plugin-import from 2.18.0 to 2.18.2
2019-07-22 11:35:37 +02:00
dependabot-preview[bot]
119cfdc577 Bump @typescript-eslint/parser from 1.12.0 to 1.13.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v1.13.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-22 05:05:24 +00:00
dependabot-preview[bot]
09ce7e062f Bump eslint-plugin-import from 2.18.0 to 2.18.2
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.0 to 2.18.2.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.18.0...v2.18.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-22 05:05:05 +00:00
Eugene
9cd4fb5417 docs: add ThePuzzlemaker as a contributor (#1280)
docs: add ThePuzzlemaker as a contributor
2019-07-21 09:47:46 +02:00
allcontributors[bot]
7887cf58d2 docs: update .all-contributorsrc 2019-07-21 07:46:53 +00:00
allcontributors[bot]
af9c9e580c docs: update README.md 2019-07-21 07:46:52 +00:00
Eugene
a4c98db69e Add a newline after banners (#1277)
Add a newline after banners
2019-07-21 09:46:39 +02:00
Dak Smyth
122e68de04 Add a newline after banners to prevent ASCII art-style banners from getting messed up
This may also want to be done for shell greetings and banners.
2019-07-20 18:17:42 -05:00
Eugene
d922b2de1f Bump raw-loader from 3.0.0 to 3.1.0 (#1267)
Bump raw-loader from 3.0.0 to 3.1.0
2019-07-19 07:45:06 +02:00
dependabot-preview[bot]
84e2cdb191 Bump raw-loader from 3.0.0 to 3.1.0
Bumps [raw-loader](https://github.com/webpack-contrib/raw-loader) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/webpack-contrib/raw-loader/releases)
- [Changelog](https://github.com/webpack-contrib/raw-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/raw-loader/compare/v3.0.0...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-19 04:43:01 +00:00
Eugene
b424876cf8 Bump css-loader from 3.0.0 to 3.1.0 (#1253)
Bump css-loader from 3.0.0 to 3.1.0
2019-07-18 22:00:49 +02:00
Eugene
3e306c1479 Bump url-loader from 2.0.0 to 2.1.0 (#1254)
Bump url-loader from 2.0.0 to 2.1.0
2019-07-18 22:00:05 +02:00
Eugene Pankov
fb4258d0a2 disabled travis cache 2019-07-18 21:59:14 +02:00
Eugene
c9965d3d1a Bump node-gyp from 5.0.2 to 5.0.3 (#1258)
Bump node-gyp from 5.0.2 to 5.0.3
2019-07-18 21:58:57 +02:00
Eugene
5411ef4802 Bump file-loader from 4.0.0 to 4.1.0 (#1259)
Bump file-loader from 4.0.0 to 4.1.0
2019-07-18 21:54:55 +02:00
Eugene
fbc67970b4 docs: add hammster as a contributor (#1264)
docs: add hammster as a contributor
2019-07-18 21:53:55 +02:00
Eugene
08910933e0 Merge pull request #1263 from Hammster/master
added proc destruction on tab close (fixes #1261)
2019-07-18 21:53:44 +02:00
allcontributors[bot]
ee23ca0770 docs: update .all-contributorsrc 2019-07-18 19:53:38 +00:00
allcontributors[bot]
febdb96c2b docs: update README.md 2019-07-18 19:53:37 +00:00
Eugene
d771bd196c Merge pull request #1262 from ehwarren/bugfix/app-crashes-when-clicking-on-systray-icon
bugfix/app-crashes-when-clicking-on-systray-icon
2019-07-18 21:41:06 +02:00
Hans Koch
4782a67fe0 added proc destruction on tab close (fixes #1261) 2019-07-18 21:38:15 +02:00
Austin Warren
6cd5d819ea Added setTimeout to make sure that tray operation is complete before we destroy tray icon 2019-07-18 10:48:11 -07:00
dependabot-preview[bot]
f8cc637e19 Bump file-loader from 4.0.0 to 4.1.0
Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v4.0.0...v4.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-18 15:56:05 +00:00
dependabot-preview[bot]
23907ffffe Bump node-gyp from 5.0.2 to 5.0.3
Bumps [node-gyp](https://github.com/nodejs/node-gyp) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/nodejs/node-gyp/releases)
- [Changelog](https://github.com/nodejs/node-gyp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodejs/node-gyp/compare/v5.0.2...v5.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-18 15:55:38 +00:00
dependabot-preview[bot]
9af1f40086 Bump url-loader from 2.0.0 to 2.1.0
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/webpack-contrib/url-loader/releases)
- [Changelog](https://github.com/webpack-contrib/url-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/url-loader/compare/v2.0.0...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-18 15:53:33 +00:00
dependabot-preview[bot]
2a1e1007b7 Bump css-loader from 3.0.0 to 3.1.0
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.0.0...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-18 15:53:06 +00:00
Eugene Pankov
4c2168b4b5 added plugin load entitlements 2019-07-18 15:25:52 +02:00
Austin Warren
8920cc7924 remove console log 2019-07-17 20:56:39 -07:00
Austin Warren
8ee7022307 Merge branch 'master' into feature/support-multiple-windows-win10 2019-07-17 17:30:11 -07:00
Austin Warren
380266a57c Do not auto-open tab if we've started the console and pointed it to open in a specific location 2019-07-17 17:17:50 -07:00
Austin Warren
5679d5edf1 Fix code from xterm-addon-fit so that we don't run into issues with the first recovered console.. I'm sure there's a better way. 2019-07-17 17:16:42 -07:00
Austin Warren
6a9d569345 Do not save settings tab into list of tabs to recover 2019-07-17 17:15:51 -07:00
Austin Warren
eccbd66c18 Alter tab recovery system to only keep track of tabs in main window. Also fix issue where closing main window would remove all tabs from saved tab state 2019-07-17 17:15:14 -07:00
Austin Warren
041a2a92d5 Dont emit destroyed event when we're closing all tabs. This is to ensure we don't save the state of our open tabs innapropriately 2019-07-17 17:10:22 -07:00
Austin Warren
a735c910d5 Added basic support for multiple windows in windows 10 2019-07-16 20:36:24 -07:00
50 changed files with 803 additions and 542 deletions

View File

@@ -162,6 +162,24 @@
"contributions": [
"code"
]
},
{
"login": "hammster",
"name": "Hans Koch",
"avatar_url": "https://avatars0.githubusercontent.com/u/1093709?v=4",
"profile": "https://hans-koch.me",
"contributions": [
"code"
]
},
{
"login": "ThePuzzlemaker",
"name": "Dak Smyth",
"avatar_url": "https://avatars3.githubusercontent.com/u/12666617?v=4",
"profile": "http://thepuzzlemaker.info",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,

20
.circleci/config.yml Normal file
View File

@@ -0,0 +1,20 @@
version: 2
jobs:
build:
macos:
xcode: "11.0.0"
steps:
- checkout
- run:
name: Build
command: ./build/travis.sh
- store_artifacts:
path: dist/*.dmg
destination: DMG
- store_artifacts:
path: dist/*.pkg
destination: PKG

View File

@@ -31,6 +31,11 @@ rules:
'@typescript-eslint/promise-function-async': off
'@typescript-eslint/no-unnecessary-type-assertion': off
'@typescript-eslint/require-array-sort-compare': off
'@typescript-eslint/no-floating-promises': off
'@typescript-eslint/prefer-readonly': off
'@typescript-eslint/require-await': off
'@typescript-eslint/strict-boolean-expressions': off
'@typescript-eslint/no-misused-promises': off
'@typescript-eslint/no-use-before-define':
- error
- classes: false

View File

@@ -9,42 +9,16 @@ stages:
jobs:
include:
- stage: 'Build'
if: branch = xxx
os: linux
before_install:
- set -e
- rm app/node_modules/.yarn-integrity || true
- yarn
script:
- set -e
- python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # https://github.com/travis-ci/travis-ci/issues/8920
- scripts/build-native.js
- yarn run build:typings
- yarn run build
- scripts/prepackage-plugins.js
- travis_wait scripts/build-linux.js
- stage: 'Build'
os: osx
before_install:
- set -e
- rm app/node_modules/.yarn-integrity || true
- yarn
script:
- set -e
- scripts/build-native.js
- yarn run build:typings
- yarn run build
- scripts/prepackage-plugins.js
- travis_wait scripts/build-macos.js
script: travis_wait ./build/travis.sh
- stage: 'Docs'
os: linux
if: branch = master
script:
- '[ -z "${encrypted_4e2fb4889ef8_iv}" ] && exit 0 || true'
- set -e
- '[ -z "${encrypted_4e2fb4889ef8_iv}" ] && exit 0'
- openssl aes-256-cbc -K $encrypted_4e2fb4889ef8_key -iv $encrypted_4e2fb4889ef8_iv -in .travis.ssh.key.enc -out .travis.ssh.key -d
- eval "$(ssh-agent -s)"
- chmod 600 .travis.ssh.key
@@ -69,7 +43,5 @@ addons:
cache:
directories:
- 'terminus-*/node_modules'
- $HOME/.cache/yarn
- $HOME/.cache/electron
- $HOME/.cache/electron-builder

File diff suppressed because one or more lines are too long

View File

@@ -58,7 +58,7 @@ export class Application {
if (!this.hasWindows()) {
await this.newWindow()
}
this.windows[0].send(event, ...args)
this.windows.filter(w => !w.isDestroyed())[0].send(event, ...args)
}
enableTray () {
@@ -72,7 +72,7 @@ export class Application {
this.tray = new Tray(`${app.getAppPath()}/assets/tray.png`)
}
this.tray.on('click', () => this.focus())
this.tray.on('click', () => setTimeout(() => this.focus()));
const contextMenu = Menu.buildFromTemplate([{
label: 'Show',
@@ -100,7 +100,6 @@ export class Application {
focus () {
for (let window of this.windows) {
window.show()
window.focus()
}
}

View File

@@ -39,7 +39,7 @@ const argv = parseArgs(process.argv, process.cwd())
if (!app.requestSingleInstanceLock()) {
app.quit()
process.exit(0)
app.exit(0)
}
if (argv.d) {

View File

@@ -147,6 +147,10 @@ export class Window {
this.window.webContents.send(event, ...args)
}
isDestroyed() {
return !this.window || this.window.isDestroyed();
}
private setupWindowManagement () {
this.window.on('show', () => {
this.visible.next(true)

View File

@@ -28,11 +28,11 @@
"electron-is-dev": "1.1.0",
"electron-updater": "^4.0.6",
"js-yaml": "3.13.1",
"keytar": "^4.7.0",
"keytar": "^4.13.0",
"mz": "^2.7.0",
"ngx-toastr": "^10.0.4",
"node-pty": "^0.9.0-beta19",
"npm": "~6.9.0",
"node-pty": "^0.9.0-beta22",
"npm": "6.9.0",
"path": "0.12.7",
"rxjs": "^6.5.2",
"rxjs-compat": "^6.5.2",
@@ -40,10 +40,10 @@
"zone.js": "^0.8.29"
},
"optionalDependencies": {
"@terminus-term/windows-process-tree": "^0.2.4",
"macos-native-processlist": "^1.0.1",
"windows-blurbehind": "^1.0.1",
"windows-native-registry": "^1.0.14",
"windows-process-tree": "^0.2.4",
"windows-swca": "^2.0.2"
},
"devDependencies": {

View File

@@ -176,7 +176,7 @@ export async function loadPlugins (foundPlugins: PluginInfo[], progress: Progres
pluginModule['bootstrap'] = packageModule.bootstrap
plugins.push(pluginModule)
console.timeEnd(label)
await (new Promise(x => setTimeout(x, 50)))
await new Promise(x => setTimeout(x, 50))
} catch (error) {
console.error(`Could not load ${foundPlugin.name}:`, error)
}

View File

@@ -58,13 +58,6 @@
dependencies:
tslib "^1.9.0"
"@terminus-term/windows-process-tree@^0.2.4":
version "0.2.4"
resolved "https://registry.yarnpkg.com/@terminus-term/windows-process-tree/-/windows-process-tree-0.2.4.tgz#558f33d5afd934b070aec78da2529fc4042cf90d"
integrity sha512-FbquNhrFoe9EBwVITV9bqd/wukJLJSVI2pAzvM8dBvPP3/ErTiavZWU0W/J5av61SavJFDMkSiYVYL5NJe30zg==
dependencies:
nan "^2.13.2"
"@types/mz@0.0.32":
version "0.0.32"
resolved "https://registry.yarnpkg.com/@types/mz/-/mz-0.0.32.tgz#e8248b4e41424c052edc1725dd33650c313a3659"
@@ -277,7 +270,7 @@ bluebird-lst@^1.0.6, bluebird-lst@^1.0.7:
dependencies:
bluebird "^3.5.4"
bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3:
bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5:
version "3.5.5"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
@@ -376,6 +369,27 @@ cacache@^11.0.1, cacache@^11.3.2:
unique-filename "^1.1.1"
y18n "^4.0.0"
cacache@^12.0.0:
version "12.0.2"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.2.tgz#8db03205e36089a3df6954c66ce92541441ac46c"
integrity sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==
dependencies:
bluebird "^3.5.5"
chownr "^1.1.1"
figgy-pudding "^3.5.1"
glob "^7.1.4"
graceful-fs "^4.1.15"
infer-owner "^1.0.3"
lru-cache "^5.1.1"
mississippi "^3.0.0"
mkdirp "^0.5.1"
move-concurrently "^1.0.1"
promise-inflight "^1.0.1"
rimraf "^2.6.3"
ssri "^6.0.1"
unique-filename "^1.1.1"
y18n "^4.0.0"
call-limit@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz#ef15f2670db3f1992557e2d965abc459e6e358d4"
@@ -652,7 +666,7 @@ debug@^4.1.1:
dependencies:
ms "^2.1.1"
debuglog@^1.0.1:
debuglog@*, debuglog@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=
@@ -1116,7 +1130,7 @@ github-from-package@0.0.0:
resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
glob@^7.0.3, glob@^7.1.1, glob@^7.1.3:
glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4:
version "7.1.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
@@ -1261,11 +1275,16 @@ import-lazy@^2.1.0:
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
imurmurhash@^0.1.4:
imurmurhash@*, imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
infer-owner@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
inflight@^1.0.4, inflight@~1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -1474,10 +1493,10 @@ keyboardevents-areequal@^0.2.1:
resolved "https://registry.yarnpkg.com/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz#88191ec738ce9f7591c25e9056de928b40277194"
integrity sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==
keytar@^4.7.0:
version "4.11.0"
resolved "https://registry.yarnpkg.com/keytar/-/keytar-4.11.0.tgz#891569045b287a0dabe69320e2381e059b02363f"
integrity sha512-cGn2xd4NY0yCBrU5zQ/lwIagP1UBOhUEemi6iSJU2gshN1RHkxHekSdLUji9IWNo5B1Va/iwXXWzGD2p8ziqfQ==
keytar@^4.13.0:
version "4.13.0"
resolved "https://registry.yarnpkg.com/keytar/-/keytar-4.13.0.tgz#f3484988e87e692958ce901a36c850422093def0"
integrity sha512-qdyZ3XDuv11ANDXJ+shsmc+j/h5BHPDSn33MwkUMDg2EA++xEBleNkghr3Jg95cqVx5WgDYD8V/m3Q0y7kwQ2w==
dependencies:
nan "2.14.0"
prebuild-install "5.3.0"
@@ -1553,6 +1572,16 @@ libnpm@^2.0.1:
read-package-json "^2.0.13"
stringify-package "^1.0.0"
libnpmaccess@*:
version "3.0.2"
resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.2.tgz#8b2d72345ba3bef90d3b4f694edd5c0417f58923"
integrity sha512-01512AK7MqByrI2mfC7h5j8N9V4I7MHJuk9buo8Gv+5QgThpOgpjB7sQBDDkeZqRteFb1QM/6YNdHfG7cDvfAQ==
dependencies:
aproba "^2.0.0"
get-stream "^4.0.0"
npm-package-arg "^6.1.0"
npm-registry-fetch "^4.0.0"
libnpmaccess@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8"
@@ -1582,6 +1611,16 @@ libnpmhook@^5.0.2:
get-stream "^4.0.0"
npm-registry-fetch "^3.8.0"
libnpmorg@*:
version "1.0.1"
resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.1.tgz#5d2503f6ceb57f33dbdcc718e6698fea6d5ad087"
integrity sha512-0sRUXLh+PLBgZmARvthhYXQAWn0fOsa6T5l3JSe2n9vKG/lCVK4nuG7pDsa7uMq+uTt2epdPK+a2g6btcY11Ww==
dependencies:
aproba "^2.0.0"
figgy-pudding "^3.4.1"
get-stream "^4.0.0"
npm-registry-fetch "^4.0.0"
libnpmorg@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.0.tgz#979b868c48ba28c5820e3bb9d9e73c883c16a232"
@@ -1607,6 +1646,15 @@ libnpmpublish@^1.1.0:
semver "^5.5.1"
ssri "^6.0.1"
libnpmsearch@*:
version "2.0.2"
resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.2.tgz#9a4f059102d38e3dd44085bdbfe5095f2a5044cf"
integrity sha512-VTBbV55Q6fRzTdzziYCr64+f8AopQ1YZ+BdPOv16UegIEaE8C0Kch01wo4s3kRTFV64P121WZJwgmBwrq68zYg==
dependencies:
figgy-pudding "^3.5.1"
get-stream "^4.0.0"
npm-registry-fetch "^4.0.0"
libnpmsearch@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.0.tgz#de05af47ada81554a5f64276a69599070d4a5685"
@@ -1616,6 +1664,16 @@ libnpmsearch@^2.0.0:
get-stream "^4.0.0"
npm-registry-fetch "^3.8.0"
libnpmteam@*:
version "1.0.2"
resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.2.tgz#8b48bcbb6ce70dd8150c950fcbdbf3feb6eec820"
integrity sha512-p420vM28Us04NAcg1rzgGW63LMM6rwe+6rtZpfDxCcXxM0zUTLl7nPFEnRF3JfFBF5skF/yuZDUthTsHgde8QA==
dependencies:
aproba "^2.0.0"
figgy-pudding "^3.4.1"
get-stream "^4.0.0"
npm-registry-fetch "^4.0.0"
libnpmteam@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.1.tgz#ff704b1b6c06ea674b3b1101ac3e305f5114f213"
@@ -1671,6 +1729,11 @@ lockfile@^1.0.4:
dependencies:
signal-exit "^3.0.2"
lodash._baseindexof@*:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c"
integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=
lodash._baseuniq@~4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
@@ -1679,11 +1742,33 @@ lodash._baseuniq@~4.6.0:
lodash._createset "~4.0.0"
lodash._root "~3.0.0"
lodash._bindcallback@*:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4=
lodash._cacheindexof@*:
version "3.0.2"
resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92"
integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=
lodash._createcache@*:
version "3.1.2"
resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093"
integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=
dependencies:
lodash._getnative "^3.0.0"
lodash._createset@~4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=
lodash._getnative@*, lodash._getnative@^3.0.0:
version "3.9.1"
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
lodash._root@~3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
@@ -1699,6 +1784,11 @@ lodash.isequal@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
lodash.restparam@*:
version "3.6.1"
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=
lodash.union@~4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
@@ -1765,6 +1855,23 @@ make-fetch-happen@^4.0.1:
socks-proxy-agent "^4.0.0"
ssri "^6.0.0"
make-fetch-happen@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.0.tgz#a8e3fe41d3415dd656fe7b8e8172e1fb4458b38d"
integrity sha512-nFr/vpL1Jc60etMVKeaLOqfGjMMb3tAHFVJWxHOFCFS04Zmd7kGlMxo0l1tzfhoQje0/UPnd0X8OeGUiXXnfPA==
dependencies:
agentkeepalive "^3.4.1"
cacache "^12.0.0"
http-cache-semantics "^3.8.1"
http-proxy-agent "^2.1.0"
https-proxy-agent "^2.2.1"
lru-cache "^5.1.1"
mississippi "^3.0.0"
node-fetch-npm "^2.0.2"
promise-retry "^1.1.1"
socks-proxy-agent "^4.0.0"
ssri "^6.0.0"
meant@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz#66044fea2f23230ec806fb515efea29c44d2115d"
@@ -1895,7 +2002,7 @@ mz@^2.7.0:
object-assign "^4.0.1"
thenify-all "^1.0.0"
nan@2.14.0, nan@^2.13.2:
nan@2.14.0, nan@^2.13.2, nan@^2.14.0:
version "2.14.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
@@ -1963,12 +2070,12 @@ node-gyp@^4.0.0:
tar "^4.4.8"
which "1"
node-pty@^0.9.0-beta19:
version "0.9.0-beta19"
resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.9.0-beta19.tgz#0fd381b2006f4665c4c2ee0509219e591842371a"
integrity sha512-MkKEvBnauGnzgXNr/oaoWQLVXm1gheIKZs4YQp8883ZiETmbEnpSvD0FU3bELcPXG5VFPRqIGsQJ4KUMBLzkPA==
node-pty@^0.9.0-beta22:
version "0.9.0-beta22"
resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.9.0-beta22.tgz#5c26bbad8ccebaf887309f9511b40c8e22465459"
integrity sha512-ASvZMaSXVT0ntpAw+nEXjjWplgBKwddjkJ4X0+aDNbTsqSjrNxWvArVdrlk8c7dC5D5tKCBzWtxJuM1a2q8baw==
dependencies:
nan "^2.13.2"
nan "^2.14.0"
noop-logger@^0.1.1:
version "0.1.1"
@@ -2071,6 +2178,15 @@ npm-pick-manifest@^2.2.3:
npm-package-arg "^6.0.0"
semver "^5.4.1"
npm-profile@*:
version "4.0.2"
resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.2.tgz#8272a71c19634d0dce9c35a5daf8ee589cbb0f52"
integrity sha512-VRsC04pvRH+9cF+PoVh2nTmJjiG21yu59IHpsBpkxk+jaGAV8lxx96G4SDc0jOHAkfWLXbc6kIph3dGAuRnotQ==
dependencies:
aproba "^1.1.2 || 2"
figgy-pudding "^3.4.1"
npm-registry-fetch "^4.0.0"
npm-profile@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.1.tgz#d350f7a5e6b60691c7168fbb8392c3603583f5aa"
@@ -2092,6 +2208,18 @@ npm-registry-fetch@^3.8.0, npm-registry-fetch@^3.9.0:
make-fetch-happen "^4.0.1"
npm-package-arg "^6.1.0"
npm-registry-fetch@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#5ef75845b605855c7964472542c25da172af8677"
integrity sha512-Jllq35Jag8dtv0M17ue74XtdQTyqKzuAYGiX9mAjOhkmNjib3bBUgK6mUY61+AHnXeSRobQkpY3/xIOS/omptw==
dependencies:
JSONStream "^1.3.4"
bluebird "^3.5.1"
figgy-pudding "^3.4.1"
lru-cache "^5.1.1"
make-fetch-happen "^5.0.0"
npm-package-arg "^6.1.0"
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -2104,7 +2232,7 @@ npm-user-validate@~1.0.0:
resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951"
integrity sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=
npm@~6.9.0:
npm@6.9.0:
version "6.9.0"
resolved "https://registry.yarnpkg.com/npm/-/npm-6.9.0.tgz#5296720486814a64a7fb082de00c4b5cfd11211f"
integrity sha512-91V+zB5hDxO+Jyp2sUKS7juHlIM95dGQxTeQtmZI1nAI/7kjWXFipPrtwwKjhyKmV4GsS2LzJhrxRjGWsU9z/w==
@@ -2676,6 +2804,16 @@ readable-stream@~1.1.10:
isarray "0.0.1"
string_decoder "~0.10.x"
readdir-scoped-modules@*:
version "1.1.0"
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309"
integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==
dependencies:
debuglog "^1.0.1"
dezalgo "^1.0.0"
graceful-fs "^4.1.2"
once "^1.3.0"
readdir-scoped-modules@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
@@ -3396,6 +3534,13 @@ windows-native-registry@^1.0.14:
dependencies:
nan "^2.13.2"
windows-process-tree@^0.2.4:
version "0.2.4"
resolved "https://registry.yarnpkg.com/windows-process-tree/-/windows-process-tree-0.2.4.tgz#747af587b54cc6c996f2be0836cc8a8fd0dc038f"
integrity sha512-9gag9AHm3Iin/4YC1EwoIfZlqW/rG2eV7rJZ4Fy5NnAMGdewmnwsie5Rz+CJo2vSolqzzfw7hPeu3oOdniNejg==
dependencies:
nan "^2.13.2"
windows-swca@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/windows-swca/-/windows-swca-2.0.2.tgz#66807012f73f5d3c0f0cb49bfa61be297aaabb50"

View File

@@ -86,6 +86,9 @@ jobs:
- script: yarn run build
displayName: 'Build'
- script: yarn run lint
displayName: 'Lint'
- script: node scripts/prepackage-plugins.js
displayName: 'Prepackage plugins'

View File

@@ -8,5 +8,7 @@
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
</dict>
</plist>

12
build/travis.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
set -e
cd app
yarn
cd ..
rm app/node_modules/.yarn-integrity
yarn
scripts/build-native.js
yarn run build:typings
yarn run build
scripts/prepackage-plugins.js
scripts/build-macos.js

View File

@@ -1,32 +1,32 @@
{
"devDependencies": {
"@fortawesome/fontawesome-free": "^5.9.0",
"@fortawesome/fontawesome-free": "^5.10.1",
"@types/electron-config": "^3.2.2",
"@types/electron-debug": "^2.1.0",
"@types/fs-promise": "1.0.3",
"@types/js-yaml": "^3.12.1",
"@types/node": "^12.6.2",
"@types/node": "12.6.2",
"@types/webpack-env": "1.13.9",
"@typescript-eslint/eslint-plugin": "^1.12.0",
"@typescript-eslint/parser": "^1.12.0",
"@typescript-eslint/eslint-plugin": "^1.13.0",
"@typescript-eslint/parser": "^1.13.0",
"app-builder-lib": "^21.0.8",
"apply-loader": "2.0.0",
"awesome-typescript-loader": "^5.0.0",
"core-js": "^3.1.4",
"core-js": "^3.2.0",
"cross-env": "5.2.0",
"css-loader": "3.0.0",
"css-loader": "3.2.0",
"electron": "^5.0.7",
"electron-builder": "^21.0.8",
"electron-installer-snap": "^4.0.0",
"electron-notarize": "^0.1.1",
"electron-rebuild": "^1.8.5",
"eslint": "^5.16.0",
"file-loader": "^4.0.0",
"graceful-fs": "^4.1.15",
"file-loader": "^4.1.0",
"graceful-fs": "^4.2.1",
"html-loader": "0.5.5",
"json-loader": "0.5.7",
"node-abi": "^2.9.0",
"node-gyp": "^5.0.2",
"node-abi": "^2.10.0",
"node-gyp": "^5.0.3",
"node-sass": "^4.12.0",
"npmlog": "4.1.2",
"npx": "^10.2.0",
@@ -36,20 +36,20 @@
"pug-loader": "^2.4.0",
"pug-static-loader": "2.0.0",
"raven-js": "3.27.2",
"raw-loader": "3.0.0",
"sass-loader": "^7.0.1",
"raw-loader": "3.1.0",
"sass-loader": "^7.2.0",
"shelljs": "0.8.3",
"source-code-pro": "^2.30.1",
"source-sans-pro": "2.45.0",
"style-loader": "^0.23.1",
"style-loader": "^1.0.0",
"svg-inline-loader": "^0.8.0",
"to-string-loader": "1.1.5",
"tslib": "^1.10.0",
"typedoc": "^0.14.2",
"typedoc": "^0.15.0",
"typescript": "^3.5.3",
"url-loader": "^2.0.0",
"url-loader": "^2.1.0",
"val-loader": "1.1.1",
"webpack": "^4.35.2",
"webpack": "^4.39.1",
"webpack-cli": "^3.3.6",
"yaml-loader": "0.5.0"
},
@@ -98,6 +98,7 @@
"artifactName": "terminus-${version}-macos.${ext}",
"hardenedRuntime": true,
"entitlements": "./build/mac/entitlements.plist",
"entitlementsInherit": "./build/mac/entitlements.plist",
"extendInfo": {
"NSRequiresAquaSystemAppearance": false
}
@@ -141,6 +142,6 @@
},
"repository": "eugeny/terminus",
"dependencies": {
"eslint-plugin-import": "^2.18.0"
"eslint-plugin-import": "^2.18.2"
}
}

View File

@@ -1,10 +1,10 @@
const path = require('path')
const webpack = require('webpack')
module.exports = {
target: 'node',
entry: 'src/index.ts',
context: __dirname,
devtool: 'cheap-module-eval-source-map',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index.js',
@@ -48,11 +48,4 @@ module.exports = {
/^@ng-bootstrap/,
/^terminus-/,
],
plugins: [
new webpack.optimize.ModuleConcatenationPlugin(),
new webpack.SourceMapDevToolPlugin({
exclude: [/node_modules/, /vendor/],
filename: '[file].map',
}),
],
}

View File

@@ -6,9 +6,7 @@ title-bar(
.content(
[class.tabs-on-top]='config.store.appearance.tabsLocation == "top"'
)
.tab-bar(
*ngIf='!hostApp.isFullScreen',
)
.tab-bar
.inset.background(*ngIf='hostApp.platform == Platform.macOS && config.store.appearance.frame == "thin" && config.store.appearance.tabsLocation == "top"')
.tabs(
dnd-sortable-container,
@@ -77,7 +75,7 @@ title-bar(
button.btn.btn-secondary.btn-tab-bar.btn-update(
*ngIf='updatesAvailable',
title='Update available',
title='Update available - Click to install',
(click)='updateApp()',
[innerHTML]='sanitizeIcon(updateIcon)'
)

View File

@@ -128,8 +128,7 @@ export class AppRootComponent {
})
this.hostApp.windowCloseRequest$.subscribe(async () => {
await this.app.closeAllTabs()
this.hostApp.closeWindow()
await this.app.closeAllTabs() && this.hostApp.closeWindow()
})
if (window['safeModeReason']) {

View File

@@ -147,13 +147,15 @@ export abstract class BaseTabComponent {
/**
* Called before the tab is closed
*/
destroy (): void {
destroy (skipDestroyedEvent = false): void {
this.focused.complete()
this.blurred.complete()
this.titleChange.complete()
this.progress.complete()
this.recoveryStateChangedHint.complete()
this.destroyed.next()
if (!skipDestroyedEvent) {
this.destroyed.next()
}
this.destroyed.complete()
}
}

View File

@@ -10,7 +10,7 @@ import { AppService } from '../services/app.service'
import { HostAppService, Platform } from '../services/hostApp.service'
/** @hidden */
export interface ISortableComponent {
export interface SortableComponentProxy {
setDragHandle (_: HTMLElement)
}
@@ -34,7 +34,7 @@ export class TabHeaderComponent {
private hostApp: HostAppService,
private ngbModal: NgbModal,
private hotkeys: HotkeysService,
@Inject(SortableComponent) private parentDraggable: ISortableComponent,
@Inject(SortableComponent) private parentDraggable: SortableComponentProxy,
@Optional() @Inject(TabContextMenuItemProvider) protected contextMenuProviders: TabContextMenuItemProvider[],
) {
this.hotkeys.matchedHotkey.subscribe((hotkey) => {

View File

@@ -12,7 +12,6 @@ export class WindowControlsComponent {
constructor (public hostApp: HostAppService, public app: AppService) { }
async closeWindow () {
await this.app.closeAllTabs()
this.hostApp.closeWindow()
await this.app.closeAllTabs() && this.hostApp.closeWindow()
}
}

View File

@@ -14,3 +14,4 @@ enableAnalytics: true
enableWelcomeTab: true
electronFlags:
- ['force_discrete_gpu', '0']
enableAutomaticUpdates: true

View File

@@ -1,8 +1,11 @@
import { Observable, Subject, AsyncSubject } from 'rxjs'
import { takeUntil } from 'rxjs/operators'
import { Injectable } from '@angular/core'
import { BaseTabComponent } from '../components/baseTab.component'
import { SplitTabComponent } from '../components/splitTab.component'
import { ConfigService } from './config.service'
import { HostAppService } from './hostApp.service'
import { TabRecoveryService } from './tabRecovery.service'
@@ -67,18 +70,19 @@ export class AppService {
private tabRecovery: TabRecoveryService,
private tabsService: TabsService,
) {
this.tabRecovery.recoverTabs().then(tabs => {
for (const tab of tabs) {
this.openNewTabRaw(tab.type, tab.options)
}
this.tabsChanged$.subscribe(() => {
tabRecovery.saveTabs(this.tabs)
if (hostApp.getWindow().id === 1) {
this.tabRecovery.recoverTabs().then(tabs => {
for (const tab of tabs) {
this.openNewTabRaw(tab.type, tab.options)
}
this.tabsChanged$.subscribe(() => {
tabRecovery.saveTabs(this.tabs)
})
setInterval(() => {
tabRecovery.saveTabs(this.tabs)
}, 30000)
})
setInterval(() => {
tabRecovery.saveTabs(this.tabs)
}, 30000)
})
}
}
addTabRaw (tab: BaseTabComponent) {
@@ -87,9 +91,11 @@ export class AppService {
this.tabsChanged.next()
this.tabOpened.next(tab)
tab.recoveryStateChangedHint$.subscribe(() => {
this.tabRecovery.saveTabs(this.tabs)
})
if (this.hostApp.getWindow().id === 1) {
tab.recoveryStateChangedHint$.subscribe(() => {
this.tabRecovery.saveTabs(this.tabs)
})
}
tab.titleChange$.subscribe(title => {
if (tab === this._activeTab) {
@@ -206,15 +212,19 @@ export class AppService {
}
}
async closeAllTabs () {
/**
* Attempts to close all tabs, returns false if one of the tabs blocked closure
*/
async closeAllTabs (): Promise<boolean> {
for (const tab of this.tabs) {
if (!await tab.canClose()) {
return
return false
}
}
for (const tab of this.tabs) {
tab.destroy()
tab.destroy(true)
}
return true
}
/** @hidden */

View File

@@ -71,8 +71,8 @@ export class ConfigProxy {
}
}
getValue (_key: string): any { }
setValue (_key: string, _value: any) { }
getValue (_key: string): any { } // eslint-disable-line @typescript-eslint/no-empty-function
setValue (_key: string, _value: any) { } // eslint-disable-line @typescript-eslint/no-empty-function
}
@Injectable({ providedIn: 'root' })

View File

@@ -30,8 +30,8 @@ export class DockingService {
}
const newBounds: Bounds = { x: 0, y: 0, width: 0, height: 0 }
const fill = this.config.store.appearance.dockFill <= 1 ? this.config.store.appearance.dockFill : 1;
const fill = this.config.store.appearance.dockFill <= 1 ? this.config.store.appearance.dockFill : 1
const [minWidth, minHeight] = this.hostApp.getWindow().getMinimumSize()
if (dockSide === 'left' || dockSide === 'right') {
@@ -64,15 +64,15 @@ export class DockingService {
}
getScreens () {
const primaryDisplayID = this.electron.screen.getPrimaryDisplay().id;
return this.electron.screen.getAllDisplays().sort((a,b) => (
const primaryDisplayID = this.electron.screen.getPrimaryDisplay().id
return this.electron.screen.getAllDisplays().sort((a, b) =>
a.bounds.x === b.bounds.x ? a.bounds.y - b.bounds.y : a.bounds.x - b.bounds.x
)).map((display,index) => {
).map((display,index) => {
return {
id: display.id,
name: display.id === primaryDisplayID ? 'Primary Display' : `Display ${index +1}`,
}
});
})
}
private repositionWindow () {

View File

@@ -147,6 +147,8 @@ export class HostAppService {
this.cliPaste.next(text)
} else if (op === 'profile') {
this.cliOpenProfile.next(argv.profileName)
} else if (op === undefined) {
this.newWindow()
} else {
this.secondInstance.next()
}

View File

@@ -1,8 +1,13 @@
import axios from 'axios'
import * as fs from 'fs'
import os from 'os'
import { spawn } from 'mz/child_process'
import { Injectable } from '@angular/core'
import { Logger, LogService } from './log.service'
import { ElectronService } from './electron.service'
import { ConfigService } from './config.service'
const UPDATES_URL = 'https://api.github.com/repos/eugeny/terminus/releases/latest'
@@ -18,11 +23,14 @@ export class UpdaterService {
constructor (
log: LogService,
private electron: ElectronService,
config: ConfigService,
) {
this.logger = log.create('updater')
this.autoUpdater = electron.remote.require('electron-updater').autoUpdater
this.autoUpdater.autoInstallOnAppQuit = !!config.store.enableAutomaticUpdates
this.autoUpdater.on('update-available', () => {
this.logger.info('Update available')
})
@@ -48,7 +56,7 @@ export class UpdaterService {
async check (): Promise<boolean> {
if (!this.electronUpdaterAvailable) {
this.logger.debug('Checking for updates')
this.logger.debug('Checking for updates through fallback method.')
const response = await axios.get(UPDATES_URL)
const data = response.data
const version = data.tag_name.substring(1)
@@ -67,8 +75,21 @@ export class UpdaterService {
if (!this.electronUpdaterAvailable) {
this.electron.shell.openExternal(this.updateURL)
} else {
await this.downloaded
this.autoUpdater.quitAndInstall()
if (process.platform === 'win32') {
let downloadpath = await this.autoUpdater.downloadUpdate()
fs.exists(downloadpath[0], (exists) => {
if (exists) {
fs.copyFile(downloadpath[0], os.tmpdir() + 'terminus-installer-temp.exe', (err) => {
if (!err) {
spawn(os.tmpdir() + 'terminus-installer-temp.exe', ['--force-run'], { detached: true, stdio: 'ignore' })
}
})
}
})
} else {
await this.downloaded
this.autoUpdater.quitAndInstall(false, true)
}
}
}
}

View File

@@ -1,11 +1,10 @@
const path = require('path')
const webpack = require('webpack')
module.exports = {
target: 'node',
entry: 'src/index.ts',
context: __dirname,
mode: 'development',
devtool: 'cheap-module-eval-source-map',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index.js',
@@ -58,11 +57,4 @@ module.exports = {
/^@angular/,
/^@ng-bootstrap/,
],
plugins: [
new webpack.optimize.ModuleConcatenationPlugin(),
new webpack.SourceMapDevToolPlugin({
exclude: [/node_modules/, /vendor/],
filename: '[file].map',
}),
],
}

View File

@@ -132,9 +132,9 @@ colorspace@1.1.x:
text-hex "1.0.x"
core-js@^3.1.2:
version "3.1.4"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07"
integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==
version "3.2.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.2.0.tgz#0a835fdf6aa677fff83a823a7b5276c9e7cebb76"
integrity sha512-gybgLzmr7SQRSF6UzGYXducx4eE10ONQlyEnQoqiGPbmbn7zLkb73tPfc4YbZN0lvcTQwoLNPjq4RuCaCumGyQ==
core-util-is@~1.0.0:
version "1.0.2"

View File

@@ -1,10 +1,10 @@
const path = require('path')
const webpack = require('webpack')
module.exports = {
target: 'node',
entry: 'src/index.ts',
context: __dirname,
devtool: 'cheap-module-eval-source-map',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index.js',
@@ -53,11 +53,4 @@ module.exports = {
/^@ng-bootstrap/,
/^terminus-/,
],
plugins: [
new webpack.optimize.ModuleConcatenationPlugin(),
new webpack.SourceMapDevToolPlugin({
exclude: [/node_modules/, /vendor/],
filename: '[file].map',
}),
],
}

View File

@@ -236,6 +236,12 @@ ngb-tabset.vertical(type='pills', [activeId]='activeTab')
(ngModelChange)='config.save(); config.requestRestart()',
)
.form-line
.header
.title Automatic Updates
.description Enable automatic installation of updates when they become available.
toggle([(ngModel)]='config.store.enableAutomaticUpdates', (ngModelChange)='config.save()')
.form-line
.header
.title Custom CSS

View File

@@ -70,12 +70,12 @@ export class SettingsTabComponent extends BaseTabComponent {
onConfigChange()
const onScreenChange = () => {
this.zone.run(() => this.screens = this.docking.getScreens());
this.zone.run(() => this.screens = this.docking.getScreens())
}
electron.screen.on('display-added', onScreenChange);
electron.screen.on('display-removed', onScreenChange);
electron.screen.on('display-metrics-changed', onScreenChange);
electron.screen.on('display-added', onScreenChange)
electron.screen.on('display-removed', onScreenChange)
electron.screen.on('display-metrics-changed', onScreenChange)
hotkeys.getHotkeyDescriptions().then(descriptions => {
this.hotkeyDescriptions = descriptions
@@ -100,7 +100,7 @@ export class SettingsTabComponent extends BaseTabComponent {
}
async getRecoveryToken (): Promise<any> {
return { type: 'app:settings' }
return null
}
ngOnDestroy () {

View File

@@ -1,11 +1,10 @@
const path = require('path')
const webpack = require('webpack')
module.exports = {
target: 'node',
entry: 'src/index.ts',
context: __dirname,
mode: 'development',
devtool: 'cheap-module-eval-source-map',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index.js',
@@ -55,11 +54,4 @@ module.exports = {
/^@ng-bootstrap/,
/^terminus-/,
],
plugins: [
new webpack.optimize.ModuleConcatenationPlugin(),
new webpack.SourceMapDevToolPlugin({
exclude: [/node_modules/, /vendor/],
filename: '[file].map',
}),
],
}

View File

@@ -32,6 +32,6 @@
"terminus-terminal": "*"
},
"optionalDependencies": {
"@terminus-term/windows-process-tree": "^0.2.4"
"windows-process-tree": "^0.2.4"
}
}

View File

@@ -12,7 +12,7 @@ import { PasswordStorageService } from './passwordStorage.service'
import { SSH2Stream } from 'ssh2-streams'
try {
var windowsProcessTreeNative = require('@terminus-term/windows-process-tree/build/Release/windows_process_tree.node') // eslint-disable-line @typescript-eslint/no-var-requires
var windowsProcessTreeNative = require('windows-process-tree/build/Release/windows_process_tree.node') // eslint-disable-line @typescript-eslint/no-var-requires
} catch { }
@Injectable({ providedIn: 'root' })
@@ -132,13 +132,13 @@ export class SSHService {
})
ssh.on('banner', banner => {
log('Banner: ' + banner)
log('Banner: \n' + banner)
})
let agent: string = null
if (this.hostApp.platform === Platform.Windows) {
const pageantRunning = new Promise<boolean>(resolve => {
windowsProcessTreeNative.getProcessList(list => {
windowsProcessTreeNative.getProcessList(list => { // eslint-disable-line block-scoped-var
resolve(list.some(x => x.name === 'pageant.exe'))
}, 0)
})

View File

@@ -1,10 +1,10 @@
const path = require('path')
const webpack = require('webpack')
module.exports = {
target: 'node',
entry: 'src/index.ts',
context: __dirname,
devtool: 'cheap-module-eval-source-map',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index.js',
@@ -49,17 +49,10 @@ module.exports = {
'keytar',
'path',
'ngx-toastr',
'@terminus-term/windows-process-tree/build/Release/windows_process_tree.node',
'windows-process-tree/build/Release/windows_process_tree.node',
/^rxjs/,
/^@angular/,
/^@ng-bootstrap/,
/^terminus-/,
],
plugins: [
new webpack.optimize.ModuleConcatenationPlugin(),
new webpack.SourceMapDevToolPlugin({
exclude: [/node_modules/, /vendor/],
filename: '[file].map',
}),
],
}

View File

@@ -2,13 +2,6 @@
# yarn lockfile v1
"@terminus-term/windows-process-tree@^0.2.4":
version "0.2.4"
resolved "https://registry.yarnpkg.com/@terminus-term/windows-process-tree/-/windows-process-tree-0.2.4.tgz#558f33d5afd934b070aec78da2529fc4042cf90d"
integrity sha512-FbquNhrFoe9EBwVITV9bqd/wukJLJSVI2pAzvM8dBvPP3/ErTiavZWU0W/J5av61SavJFDMkSiYVYL5NJe30zg==
dependencies:
nan "^2.13.2"
"@types/node@*":
version "9.3.0"
resolved "https://registry.yarnpkg.com/@types/node/-/node-9.3.0.tgz#3a129cda7c4e5df2409702626892cb4b96546dd5"
@@ -78,3 +71,10 @@ tweetnacl@^0.14.3:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
windows-process-tree@^0.2.4:
version "0.2.4"
resolved "https://registry.yarnpkg.com/windows-process-tree/-/windows-process-tree-0.2.4.tgz#747af587b54cc6c996f2be0836cc8a8fd0dc038f"
integrity sha512-9gag9AHm3Iin/4YC1EwoIfZlqW/rG2eV7rJZ4Fy5NnAMGdewmnwsie5Rz+CJo2vSolqzzfw7hPeu3oOdniNejg==
dependencies:
nan "^2.13.2"

View File

@@ -28,7 +28,7 @@
"runes": "^0.4.2",
"slug": "^1.1.0",
"uuid": "^3.3.2",
"xterm": "3.15.0-beta81",
"xterm": "3.15.0-beta98",
"xterm-addon-fit": "^0.1.0-beta3",
"xterm-addon-ligatures": "^0.1.0-beta-2",
"xterm-addon-search": "^0.2.0-beta1",

View File

@@ -15,7 +15,7 @@ import { TerminalContextMenuItemProvider } from './contextMenuProvider'
/** @hidden */
export interface IToastrService {
export interface ToastrServiceProxy {
info (_: string)
}
/**
@@ -80,7 +80,7 @@ export class BaseTerminalTabComponent extends BaseTabComponent implements OnInit
protected sessions: SessionsService,
protected electron: ElectronService,
protected terminalContainersService: TerminalFrontendService,
@Inject(ToastrService) protected toastr: IToastrService,
@Inject(ToastrService) protected toastr: ToastrServiceProxy,
protected log: LogService,
@Optional() @Inject(TerminalDecorator) protected decorators: TerminalDecorator[],
@Optional() @Inject(TerminalContextMenuItemProvider) protected contextMenuProviders: TerminalContextMenuItemProvider[],

View File

@@ -55,6 +55,16 @@ h3.mb-3 Shell
button.btn.btn-secondary((click)='pickWorkingDirectory()')
i.fas.fa-folder-open
.form-line
.header
.title Always Use Working Directory
.description By default, new terminals will open where the previous terminal was working. Enabling this option will always launch new terminals in the working directory specified above.
toggle(
[(ngModel)]='config.store.terminal.alwaysUseWorkingDirectory',
(ngModelChange)='config.save()'
)
.form-line.align-items-start
.header
.title Environment

View File

@@ -97,5 +97,6 @@ export class TerminalTabComponent extends BaseTerminalTabComponent {
ngOnDestroy () {
this.homeEndSubscription.unsubscribe()
super.ngOnDestroy()
this.session.destroy()
}
}

View File

@@ -27,6 +27,7 @@ export class TerminalConfigProvider extends ConfigProvider {
copyOnSelect: false,
scrollOnInput: true,
workingDirectory: '',
alwaysUseWorkingDirectory: false,
altIsMeta: false,
colorScheme: {
__nonStructural: true,

View File

@@ -35,7 +35,9 @@ export class NewTabContextMenu extends TerminalContextMenuItemProvider {
submenu: profiles.map(profile => ({
label: profile.name,
click: () => this.zone.run(async () => {
this.terminalService.openTab(profile, await tab.session.getWorkingDirectory())
const workingDirectory = this.config.store.terminal.alwaysUseWorkingDirectory === true ?
this.config.store.terminal.workingDirectory : await tab.session.getWorkingDirectory()
await this.terminalService.openTab(profile, workingDirectory)
}),
})),
},

View File

@@ -48,7 +48,7 @@ export class XTermFrontend extends Frontend {
this.title.next(title)
})
this.xterm.onSelectionChange(() => {
if (this.copyOnSelect) {
if (this.copyOnSelect && this.getSelection()) {
this.copySelection()
}
})
@@ -86,7 +86,18 @@ export class XTermFrontend extends Frontend {
this.resizeHandler = () => {
try {
if (this.xtermCore.element && getComputedStyle(this.xtermCore.element).getPropertyValue('height') !== 'auto') {
this.fitAddon.fit()
let t = window.getComputedStyle(this.xtermCore.element.parentElement)
let r = parseInt(t.getPropertyValue("height"))
let n = Math.max(0, parseInt(t.getPropertyValue("width")))
let o = window.getComputedStyle(this.xtermCore.element)
let i = r - (parseInt(o.getPropertyValue("padding-top")) + parseInt(o.getPropertyValue("padding-bottom")))
let l = n - (parseInt(o.getPropertyValue("padding-right")) + parseInt(o.getPropertyValue("padding-left"))) - this.xtermCore.viewport.scrollBarWidth
let actualCellWidth = this.xtermCore._renderService.dimensions.actualCellWidth || 9
let actualCellHeight = this.xtermCore._renderService.dimensions.actualCellHeight || 17
let cols = Math.floor(l / actualCellWidth)
let rows = Math.floor(i / actualCellHeight)
this.xterm.resize(cols, rows)
}
} catch (e) {
// tends to throw when element wasn't shown yet

View File

@@ -156,9 +156,17 @@ export default class TerminalModule { // eslint-disable-line @typescript-eslint/
}
})
if (config.store.terminal.autoOpen) {
app.ready$.subscribe(() => {
terminal.openTab()
})
let argv = require('electron').remote.process.argv
if (argv[0].includes('node')) {
argv = argv.slice(1)
}
if(require('yargs').parse(argv.slice(1))._[0] !== "open"){
app.ready$.subscribe(() => {
terminal.openTab()
})
}
}
hotkeys.matchedHotkey.subscribe(async (hotkey) => {

View File

@@ -18,7 +18,7 @@ try {
} catch { }
try {
var windowsProcessTree = require('@terminus-term/windows-process-tree') // eslint-disable-line @typescript-eslint/no-var-requires
var windowsProcessTree = require('windows-process-tree') // eslint-disable-line @typescript-eslint/no-var-requires
} catch { }
@@ -284,7 +284,7 @@ export class Session extends BaseSession {
} catch (e) {
return null
}
let cwd = lines[(lines[1] === 'fcwd') ? 2 : 1].substring(1)
let cwd = lines[lines[1] === 'fcwd' ? 2 : 1].substring(1)
if (cwd.startsWith(catalinaDataVolumePrefix)) {
cwd = cwd.substring(catalinaDataVolumePrefix.length)
}

View File

@@ -65,14 +65,16 @@ export class TerminalService {
}
if (!cwd) {
if (this.app.activeTab instanceof TerminalTabComponent && this.app.activeTab.session) {
cwd = await this.app.activeTab.session.getWorkingDirectory()
}
if (this.app.activeTab instanceof SplitTabComponent) {
const focusedTab = this.app.activeTab.getFocusedTab()
if (!this.config.store.terminal.alwaysUseWorkingDirectory) {
if (this.app.activeTab instanceof TerminalTabComponent && this.app.activeTab.session) {
cwd = await this.app.activeTab.session.getWorkingDirectory()
}
if (this.app.activeTab instanceof SplitTabComponent) {
const focusedTab = this.app.activeTab.getFocusedTab()
if (focusedTab instanceof TerminalTabComponent && focusedTab.session) {
cwd = await focusedTab.session.getWorkingDirectory()
if (focusedTab instanceof TerminalTabComponent && focusedTab.session) {
cwd = await focusedTab.session.getWorkingDirectory()
}
}
}
cwd = cwd || this.config.store.terminal.workingDirectory

View File

@@ -1,10 +1,10 @@
const path = require('path')
const webpack = require('webpack')
module.exports = {
target: 'node',
entry: 'src/index.ts',
context: __dirname,
devtool: 'cheap-module-eval-source-map',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index.js',
@@ -66,7 +66,7 @@ module.exports = {
'macos-native-processlist',
'windows-native-registry',
'node-pty',
'@terminus-term/windows-process-tree',
'windows-process-tree',
'os',
/^rxjs/,
/^@angular/,
@@ -74,11 +74,4 @@ module.exports = {
'ngx-toastr',
/^terminus-/,
],
plugins: [
new webpack.optimize.ModuleConcatenationPlugin(),
new webpack.SourceMapDevToolPlugin({
exclude: [/node_modules/, /vendor/],
filename: '[file].map',
}),
],
}

View File

@@ -179,19 +179,19 @@ xterm-addon-ligatures@^0.1.0-beta-2:
font-ligatures "^1.3.1"
xterm-addon-search@^0.2.0-beta1:
version "0.2.0-beta2"
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.2.0-beta2.tgz#c3173f0a6f207ee9f1848849174ee5d6b6ce8262"
integrity sha512-XEcwi2TeFGk2MuIFjiI/OpVXSNO5dGQBvHH3o+9KzqG3ooVqhhDqzwxs092QGNcNCGh8hGn/PWZiczaBBnKm/g==
version "0.2.0-beta4"
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.2.0-beta4.tgz#4b34c4783eba398c256a5bc4cbe76dd0be5356ae"
integrity sha512-Qwf2FLQ37rQ3DIFOWvODeUZhW8OBHc2Wmp2ABsFwxZ4/3IpqlAd+VdHz63QdCJbqWpSMDuNeIy0qTjvaGbTcZQ==
xterm-addon-webgl@^0.2.0-beta1:
version "0.2.0-beta5"
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.2.0-beta5.tgz#79d97c21bb09c34c6aca6f4e72afe8085f8a77dc"
integrity sha512-TR6071ZWQ2l0E/P7KedDfsGCW21BWCfemiV/swBF+X/BiRzzsZlJXpZP62jR/XV0/J7r1SMVPSIP5j8TMCoDmw==
version "0.2.0-beta6"
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.2.0-beta6.tgz#308464aebc6002f04514673e5233fe237df76d7f"
integrity sha512-KPGv5VPzeZWmqHIuR73UOD/eMSLG2mi57qQCrjYUMOQK9PPFfm5KQtYmCfK+DhNUWqrs5dpGbFFLv3lfwVghcg==
xterm@3.15.0-beta81:
version "3.15.0-beta81"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-3.15.0-beta81.tgz#1a4c01467776753d1cebee8bfafb6c4ee7f9d543"
integrity sha512-tyADfzVm55CAxCIXWJzHWMCRPYcJQp8hO/85KLxRuVjCdeuVgRn/9U9VKypNd9DJkZGsf1rONkQMnG6IDZ1DEQ==
xterm@3.15.0-beta98:
version "3.15.0-beta98"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-3.15.0-beta98.tgz#37f37c35577422880e7ef673cc37f9d2a45dd40c"
integrity sha512-vZbg2LcRvoiJOgr1MyeLFM9mF4uib3BWUWDHyFc+vZ58CTuK0iczOvFXgk/ySo23ZLqwmHQSigLgmWvZ8J5G0Q==
yallist@^2.1.2:
version "2.1.2"

673
yarn.lock

File diff suppressed because it is too large Load Diff