Compare commits

..

84 Commits

Author SHA1 Message Date
Eugene Pankov
c64654991b fixed serial opening ports 2022-02-11 11:02:29 +01:00
Eugene Pankov
1fc531ecf4 locale update 2022-02-10 22:54:37 +01:00
Eugene Pankov
4c7e7f5fae new translation extractor 2022-02-10 22:33:14 +01:00
Eugene Pankov
7b07a67947 sorted messages, cleaned up translateParams attributes 2022-02-10 19:10:38 +01:00
Eugene Pankov
fe5193d9f1 use languages' native names 2022-02-10 18:03:26 +01:00
Eugene Pankov
b6a3af80fa lint 2022-02-10 16:31:03 +01:00
Eugene Pankov
46a9b655fc locale updates, added Italian 2022-02-10 16:24:24 +01:00
Eugene Pankov
762ee85773 lint 2022-02-10 09:48:31 +01:00
Eugene Pankov
650e362c42 lint 2022-02-09 22:27:19 +01:00
Eugene Pankov
136ec1035b fixed #5702 - added hotkeys to jump to settings tabs 2022-02-09 21:56:44 +01:00
Eugene Pankov
f27e1ec62d fixed tab rearranging conditions 2022-02-09 20:30:40 +01:00
Eugene Pankov
c736a84835 avoid duplicate title in split tab's title 2022-02-09 20:21:20 +01:00
Eugene Pankov
b3a07e5f99 fixed #5712 - SSH import from a separate config file 2022-02-09 20:19:07 +01:00
Eugene Pankov
c408154137 Merge branch 'master' of github.com:Eugeny/tabby 2022-02-09 20:18:55 +01:00
Eugene Pankov
c0988e58b4 Revert "prevent dropping a tab on itself - fixes #5580"
This reverts commit ceb1b59409.
2022-02-09 19:20:45 +01:00
Eugeny
d6e906c107 Merge pull request #5654 from Eugeny/dependabot/npm_and_yarn/node-abi-3.8.0 2022-02-08 09:01:37 +01:00
Eugeny
d77a91b3e1 Merge pull request #5693 from Eugeny/dependabot/npm_and_yarn/fortawesome/fontawesome-free-6.0.0 2022-02-08 09:01:14 +01:00
dependabot[bot]
80f82296a0 Bump @fortawesome/fontawesome-free from 6.0.0-beta3 to 6.0.0
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 6.0.0-beta3 to 6.0.0.
- [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/commits/6.0.0)

---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-free"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-08 04:03:22 +00:00
Eugene Pankov
6e9f497d22 lint 2022-02-07 17:54:44 +01:00
Eugene Pankov
50f01b6794 bumped serialport 2022-02-07 16:56:06 +01:00
dependabot[bot]
b068070825 Bump node-abi from 3.7.0 to 3.8.0
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/lgeiger/node-abi/releases)
- [Changelog](https://github.com/electron/node-abi/blob/main/.releaserc.json)
- [Commits](https://github.com/lgeiger/node-abi/compare/v3.7.0...v3.8.0)

---
updated-dependencies:
- dependency-name: node-abi
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 15:38:25 +00:00
Eugene Pankov
194342d6fa bumped plugins, added serialport mocks 2022-02-07 16:36:20 +01:00
Eugene Pankov
d7eeac6af7 patch rename 2022-02-07 16:36:09 +01:00
Eugene Pankov
98a08b92a2 Merge branch 'master' of github.com:Eugeny/tabby 2022-02-07 16:35:11 +01:00
Eugeny
fef8638ade Merge pull request #5679 from Eugeny/dependabot/npm_and_yarn/electron-builder-22.14.13 2022-02-07 16:35:03 +01:00
Eugeny
34ff0c45cb Merge pull request #5653 from Eugeny/dependabot/npm_and_yarn/app/keytar-7.8.0 2022-02-07 16:34:35 +01:00
Eugeny
1896155ad9 Merge pull request #5676 from Eugeny/dependabot/npm_and_yarn/app/electron-updater-4.6.5 2022-02-07 16:32:46 +01:00
Eugeny
bbcbad0e77 Merge pull request #5684 from Eugeny/all-contributors/add-mwz 2022-02-07 16:32:05 +01:00
Eugeny
ce435056a2 Merge pull request #5670 from mwz/quit-app-cmd-q-mac 2022-02-07 16:31:35 +01:00
allcontributors[bot]
fe9b14ad9c docs: update .all-contributorsrc [skip ci] 2022-02-07 15:31:08 +00:00
allcontributors[bot]
fc72e5005c docs: update README.ko-KR.md [skip ci] 2022-02-07 15:31:07 +00:00
allcontributors[bot]
f5c428d73b docs: update README.ru-RU.md [skip ci] 2022-02-07 15:31:06 +00:00
allcontributors[bot]
b396060965 docs: update README.zh-CN.md [skip ci] 2022-02-07 15:31:05 +00:00
allcontributors[bot]
c752a18f3c docs: update README.md [skip ci] 2022-02-07 15:31:04 +00:00
Eugene Pankov
805ee0af09 v1.0.171-nightly.2 2022-02-07 15:59:48 +01:00
Eugene Pankov
ad9ad4d418 v1.0.171-nightly.2 2022-02-07 15:58:55 +01:00
Eugene Pankov
d5c4088cc1 v1.0.171-nightly.2 2022-02-07 15:57:59 +01:00
Eugene Pankov
483a0472b9 v1.0.171-nightly.2 2022-02-07 15:57:47 +01:00
Eugene Pankov
1bbf9d4294 bumped plugins 2022-02-07 15:33:34 +01:00
Eugene Pankov
10c8502fbd locale updates, added Danish 2022-02-07 15:30:05 +01:00
dependabot[bot]
8f3f6f591d Bump electron-builder from 22.14.5 to 22.14.13
Bumps [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder) from 22.14.5 to 22.14.13.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-builder/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/v22.14.13/packages/electron-builder)

---
updated-dependencies:
- dependency-name: electron-builder
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 04:06:53 +00:00
dependabot[bot]
656d275801 Bump electron-updater from 4.6.1 to 4.6.5 in /app
Bumps [electron-updater](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-updater) from 4.6.1 to 4.6.5.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-updater/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/electron-updater@4.6.5/packages/electron-updater)

---
updated-dependencies:
- dependency-name: electron-updater
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-07 04:01:59 +00:00
Michael Wizner
9c53503c0f Fix app not quitting completely on Cmd+Q (Mac) 2022-02-05 23:07:53 +00:00
Eugene Pankov
9ea99f1ace locale update 2022-02-05 17:21:41 +01:00
Eugene Pankov
126d14dfb7 added Japanese translation 2022-02-05 17:20:23 +01:00
Eugene Pankov
68803b5f14 locale update 2022-02-05 17:20:10 +01:00
Eugene Pankov
e0273126de bumped xterm-addon-webgl 2022-02-03 18:33:09 +01:00
Eugene Pankov
0ced498b6e fixed screen not clearing properly - fixes #28, fixes #5401 2022-02-03 17:54:26 +01:00
Eugene Pankov
510682438e bumped xterm 2022-02-03 17:12:52 +01:00
dependabot[bot]
762874c400 Bump keytar from 7.7.0 to 7.8.0 in /app
Bumps [keytar](https://github.com/atom/node-keytar) from 7.7.0 to 7.8.0.
- [Release notes](https://github.com/atom/node-keytar/releases)
- [Commits](https://github.com/atom/node-keytar/compare/v7.7.0...v7.8.0)

---
updated-dependencies:
- dependency-name: keytar
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-03 04:02:03 +00:00
Eugene Pankov
b7e2e0875e electron 17 fixes 2022-02-01 22:47:07 +01:00
Eugene Pankov
9cfd02bff6 Update appRoot.component.ts 2022-02-01 22:11:39 +01:00
Eugeny
9082fe5c06 Merge pull request #5638 from Eugeny/dependabot/npm_and_yarn/electron-17.0.0 2022-02-01 12:12:04 +01:00
dependabot[bot]
43786fda83 Bump electron from 16.0.8 to 17.0.0
Bumps [electron](https://github.com/electron/electron) from 16.0.8 to 17.0.0.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v16.0.8...v17.0.0)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 10:33:18 +00:00
Eugene Pankov
1677285ea9 patch rename 2022-02-01 11:24:12 +01:00
Eugeny
aaa0a0f69a Merge pull request #5639 from Eugeny/dependabot/npm_and_yarn/ssh2-1.6.0 2022-02-01 11:23:35 +01:00
Eugeny
cb8832fbad Merge pull request #5637 from Eugeny/dependabot/npm_and_yarn/node-abi-3.7.0 2022-02-01 11:22:09 +01:00
Eugeny
e39321c8cb Merge pull request #5640 from Eugeny/dependabot/npm_and_yarn/webpack-5.68.0 2022-02-01 11:21:52 +01:00
Eugeny
3ef7697be8 Merge pull request #5642 from Eugeny/dependabot/npm_and_yarn/tabby-settings/marked-4.0.12 2022-02-01 11:21:37 +01:00
dependabot[bot]
8927717654 Bump marked from 4.0.10 to 4.0.12 in /tabby-settings
Bumps [marked](https://github.com/markedjs/marked) from 4.0.10 to 4.0.12.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v4.0.10...v4.0.12)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 04:16:28 +00:00
dependabot[bot]
3a8168917a Bump webpack from 5.67.0 to 5.68.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.67.0 to 5.68.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.67.0...v5.68.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 04:08:23 +00:00
dependabot[bot]
9249c48ecc Bump ssh2 from 1.5.0 to 1.6.0
Bumps [ssh2](https://github.com/mscdex/ssh2) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/mscdex/ssh2/releases)
- [Commits](https://github.com/mscdex/ssh2/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: ssh2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 04:05:50 +00:00
dependabot[bot]
6d1150d08a Bump node-abi from 3.5.0 to 3.7.0
Bumps [node-abi](https://github.com/lgeiger/node-abi) from 3.5.0 to 3.7.0.
- [Release notes](https://github.com/lgeiger/node-abi/releases)
- [Changelog](https://github.com/electron/node-abi/blob/main/.releaserc.json)
- [Commits](https://github.com/lgeiger/node-abi/compare/v3.5.0...v3.7.0)

---
updated-dependencies:
- dependency-name: node-abi
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 04:04:21 +00:00
Eugene Pankov
b234300bd8 gpg4win support maybe? 2022-01-31 22:19:39 +01:00
Eugene Pankov
be3bae3a6f fixed #4457 2022-01-31 22:16:05 +01:00
Eugene Pankov
767f9f3215 support Solus Linux - fixes #4881 2022-01-31 22:03:12 +01:00
Eugene Pankov
d6e69f5bf5 fixed UI for oversized profile names - fixes #5506 2022-01-31 21:54:33 +01:00
Eugene Pankov
5c644e5e23 Merge branch 'master' of github.com:Eugeny/tabby 2022-01-31 21:50:19 +01:00
Eugene Pankov
5b905af5d3 auto-fix excessive font sizes - fixes #5542 2022-01-31 21:50:16 +01:00
Eugeny
28f4a052d7 Merge pull request #5626 from Eugeny/dependabot/npm_and_yarn/tabby-electron/winston-3.5.0 2022-01-31 17:20:28 +01:00
Eugeny
948251e326 Merge pull request #5607 from Eugeny/dependabot/npm_and_yarn/tabby-settings/marked-4.0.12 2022-01-31 17:17:53 +01:00
dependabot[bot]
2203661f19 Bump marked from 4.0.8 to 4.0.12 in /tabby-settings
Bumps [marked](https://github.com/markedjs/marked) from 4.0.8 to 4.0.12.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v4.0.8...v4.0.12)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 15:38:34 +00:00
Eugene Pankov
8f4e28fba4 bumped plugins 2022-01-31 16:37:43 +01:00
Eugeny
a413bbaf07 Merge pull request #4632 from Eugeny/dependabot/npm_and_yarn/types/fs-extra-9.0.13 2022-01-31 12:44:29 +01:00
Eugeny
4e05adeb66 Merge pull request #5595 from Eugeny/dependabot/npm_and_yarn/sentry/cli-1.72.1 2022-01-31 12:43:51 +01:00
Eugeny
59ac4a858e Merge pull request #5539 from Eugeny/dependabot/npm_and_yarn/axios-0.25.0 2022-01-31 12:32:23 +01:00
Eugeny
55ae5b27b9 Merge pull request #5500 from Eugeny/dependabot/npm_and_yarn/core-js-3.20.3 2022-01-31 12:32:11 +01:00
Eugeny
b0aa20b387 Merge pull request #5521 from Eugeny/dependabot/npm_and_yarn/typedoc-0.22.11 2022-01-31 12:31:32 +01:00
dependabot[bot]
bb00f2f033 Bump @sentry/cli from 1.71.0 to 1.72.1
Bumps [@sentry/cli](https://github.com/getsentry/sentry-cli) from 1.71.0 to 1.72.1.
- [Release notes](https://github.com/getsentry/sentry-cli/releases)
- [Changelog](https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-cli/compare/1.71.0...1.72.1)

---
updated-dependencies:
- dependency-name: "@sentry/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-30 19:34:00 +00:00
dependabot[bot]
e80c3ce693 Bump core-js from 3.18.2 to 3.20.3
Bumps [core-js](https://github.com/zloirock/core-js) from 3.18.2 to 3.20.3.
- [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/v3.18.2...v3.20.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-30 10:02:30 +00:00
dependabot[bot]
b9b6c63d57 Bump axios from 0.21.2 to 0.25.0
Bumps [axios](https://github.com/axios/axios) from 0.21.2 to 0.25.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.2...v0.25.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-30 10:02:01 +00:00
dependabot[bot]
bee62f3001 Bump winston from 3.3.3 to 3.5.0 in /tabby-electron
Bumps [winston](https://github.com/winstonjs/winston) from 3.3.3 to 3.5.0.
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.3.3...v3.5.0)

---
updated-dependencies:
- dependency-name: winston
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-28 04:18:34 +00:00
dependabot[bot]
2f35ae203d Bump typedoc from 0.22.10 to 0.22.11
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.10 to 0.22.11.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.22.10...v0.22.11)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-18 04:09:10 +00:00
dependabot[bot]
604e5e37a8 Bump @types/fs-extra from 9.0.12 to 9.0.13
Bumps [@types/fs-extra](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/fs-extra) from 9.0.12 to 9.0.13.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/fs-extra)

---
updated-dependencies:
- dependency-name: "@types/fs-extra"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-30 19:26:33 +00:00
88 changed files with 24664 additions and 12538 deletions

View File

@@ -599,6 +599,15 @@
"contributions": [
"infra"
]
},
{
"login": "mwz",
"name": "Michael Wizner",
"avatar_url": "https://avatars.githubusercontent.com/u/1190768?v=4",
"profile": "https://github.com/mwz",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,

View File

@@ -227,6 +227,7 @@ Pull requests and plugins are welcome!
<tr>
<td align="center"><a href="https://github.com/JasonCubic"><img src="https://avatars.githubusercontent.com/u/8921015?v=4?s=100" width="100px;" alt=""/><br /><sub><b>JasonCubic</b></sub></a><br /><a href="#design-JasonCubic" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/MaxWaldorf"><img src="https://avatars.githubusercontent.com/u/15877853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MaxWaldorf</b></sub></a><br /><a href="#infra-MaxWaldorf" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center"><a href="https://github.com/mwz"><img src="https://avatars.githubusercontent.com/u/1190768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Wizner</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mwz" title="Code">💻</a></td>
</tr>
</table>

View File

@@ -232,6 +232,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<tr>
<td align="center"><a href="https://github.com/JasonCubic"><img src="https://avatars.githubusercontent.com/u/8921015?v=4?s=100" width="100px;" alt=""/><br /><sub><b>JasonCubic</b></sub></a><br /><a href="#design-JasonCubic" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/MaxWaldorf"><img src="https://avatars.githubusercontent.com/u/15877853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MaxWaldorf</b></sub></a><br /><a href="#infra-MaxWaldorf" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center"><a href="https://github.com/mwz"><img src="https://avatars.githubusercontent.com/u/1190768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Wizner</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mwz" title="Code">💻</a></td>
</tr>
</table>

View File

@@ -233,6 +233,7 @@ Pull-запросы и плагины приветствуются!
<tr>
<td align="center"><a href="https://github.com/JasonCubic"><img src="https://avatars.githubusercontent.com/u/8921015?v=4?s=100" width="100px;" alt=""/><br /><sub><b>JasonCubic</b></sub></a><br /><a href="#design-JasonCubic" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/MaxWaldorf"><img src="https://avatars.githubusercontent.com/u/15877853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MaxWaldorf</b></sub></a><br /><a href="#infra-MaxWaldorf" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center"><a href="https://github.com/mwz"><img src="https://avatars.githubusercontent.com/u/1190768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Wizner</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mwz" title="Code">💻</a></td>
</tr>
</table>

View File

@@ -232,6 +232,7 @@
<tr>
<td align="center"><a href="https://github.com/JasonCubic"><img src="https://avatars.githubusercontent.com/u/8921015?v=4?s=100" width="100px;" alt=""/><br /><sub><b>JasonCubic</b></sub></a><br /><a href="#design-JasonCubic" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/MaxWaldorf"><img src="https://avatars.githubusercontent.com/u/15877853?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MaxWaldorf</b></sub></a><br /><a href="#infra-MaxWaldorf" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center"><a href="https://github.com/mwz"><img src="https://avatars.githubusercontent.com/u/1190768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Wizner</b></sub></a><br /><a href="https://github.com/Eugeny/tabby/commits?author=mwz" title="Code">💻</a></td>
</tr>
</table>

View File

@@ -94,7 +94,7 @@ export class Application {
}
app.on('window-all-closed', () => {
if (this.quitRequested || process.platform !== 'darwin') {
if (this.quitRequested) {
app.quit()
}
})

View File

@@ -135,6 +135,8 @@ export class Window {
this.window.webContents.setVisualZoomLevelLimits(1, 1)
this.window.webContents.setZoomFactor(1)
this.window.webContents.session.setPermissionCheckHandler(() => true)
this.window.webContents.session.setDevicePermissionHandler(() => true)
if (process.platform === 'darwin') {
this.touchBarControl = new TouchBar.TouchBarSegmentedControl({

View File

@@ -15,18 +15,17 @@
"watch": "webpack --progress --color --watch"
},
"dependencies": {
"@angular/cdk": "^12.2.9",
"@electron/remote": "2.0.1",
"@tabby-gang/node-pty": "^0.11.0-beta.200",
"any-promise": "^1.3.0",
"electron-config": "2.0.0",
"electron-debug": "^3.2.0",
"electron-promise-ipc": "^2.2.4",
"electron-updater": "^4.6.1",
"electron-updater": "^4.6.5",
"fontmanager-redux": "1.1.0",
"glasstron": "0.0.7",
"js-yaml": "4.1.0",
"keytar": "^7.7.0",
"keytar": "^7.8.0",
"mz": "^2.7.0",
"native-process-working-directory": "^1.0.2",
"npm": "6",
@@ -38,7 +37,8 @@
"optionalDependencies": {
"@tabby-gang/windows-blurbehind": "^3.0.0",
"macos-native-processlist": "^2.0.0",
"serialport": "^10.0.2",
"serialport": "10.2.2",
"serialport-binding-webserialapi": "^1.0.3",
"windows-native-registry": "^3.1.0",
"windows-process-tree": "^0.3.2"
},

View File

@@ -21,6 +21,8 @@ const builtinPluginsPath = process.env.TABBY_DEV ? path.dirname(remote.app.getAp
const cachedBuiltinModules = {
'@angular/animations': require('@angular/animations'),
'@angular/cdk/drag-drop': require('@angular/cdk/drag-drop'),
'@angular/cdk/clipboard': require('@angular/cdk/clipboard'),
'@angular/common': require('@angular/common'),
'@angular/compiler': require('@angular/compiler'),
'@angular/core': require('@angular/core'),
@@ -64,18 +66,23 @@ export type ProgressCallback = (current: number, total: number) => void
export function initModuleLookup (userPluginsPath: string): void {
global['module'].paths.map((x: string) => nodeModule.globalPaths.push(normalizePath(x)))
nodeModule.globalPaths.unshift(path.join(userPluginsPath, 'node_modules'))
const paths = []
paths.unshift(path.join(userPluginsPath, 'node_modules'))
paths.unshift(path.join(remote.app.getAppPath(), 'node_modules'))
if (process.env.TABBY_DEV) {
nodeModule.globalPaths.unshift(path.dirname(remote.app.getAppPath()))
paths.unshift(path.dirname(remote.app.getAppPath()))
}
nodeModule.globalPaths.unshift(builtinPluginsPath)
// nodeModule.globalPaths.unshift(path.join((process as any).resourcesPath, 'app.asar', 'node_modules'))
paths.unshift(builtinPluginsPath)
// paths.unshift(path.join((process as any).resourcesPath, 'app.asar', 'node_modules'))
if (process.env.TABBY_PLUGINS) {
process.env.TABBY_PLUGINS.split(':').map(x => nodeModule.globalPaths.push(normalizePath(x)))
process.env.TABBY_PLUGINS.split(':').map(x => paths.push(normalizePath(x)))
}
process.env.NODE_PATH += path.delimiter + paths.join(path.delimiter)
nodeModule._initPaths()
builtinModules.forEach(m => {
if (!cachedBuiltinModules[m]) {
cachedBuiltinModules[m] = nodeRequire(m)

View File

@@ -2,15 +2,6 @@
# yarn lockfile v1
"@angular/cdk@^12.2.9":
version "12.2.9"
resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-12.2.9.tgz#f39e4d7cdb3568ad8e1d412e3500772e2d4c605c"
integrity sha512-9Wgj69iGAZ4teQqW/zPbVg2RGna+m9i3v0zkWGx/+Uo95rikJCUZBQM4bfeOe+bSJrS77jV5EisBWG7ayNUSzQ==
dependencies:
tslib "^2.2.0"
optionalDependencies:
parse5 "^5.0.0"
"@electron/remote@2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.1.tgz#810cbc595a21f0f94641eb2d7e8264063a3f84de"
@@ -25,73 +16,101 @@
update-notifier "^2.2.0"
yargs "^8.0.2"
"@serialport/binding-abstract@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/binding-abstract/-/binding-abstract-10.0.1.tgz#fc5a69b05d364fa7db872b3fe64ae85aaa3030a5"
integrity sha512-FWD/uNrz8V3kaTILQTK05Z1LB/LZin8XZelmX/wd1NNlRFAj6V64MIESWhwUy3iPnL1QriFR1k7URHHx3RRgfg==
"@serialport/binding-abstract@^9.0.2":
version "9.2.3"
resolved "https://registry.yarnpkg.com/@serialport/binding-abstract/-/binding-abstract-9.2.3.tgz#e7dd273357b6a698af7ad58db6f57f62443a0acb"
integrity sha512-cQs9tbIlG3P0IrOWyVirqlhWuJ7Ms2Zh9m2108z6Y5UW/iVj6wEOiW8EmK9QX9jmJXYllE7wgGgvVozP5oCj3w==
dependencies:
debug "^4.3.2"
"@serialport/binding-mock@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/binding-mock/-/binding-mock-10.0.1.tgz#b70747c897b861fe7d090f0350f0dc5a37f36b70"
integrity sha512-cU+UtCaQI1ZOWzIa4uT7Z0ymgAyQMSwEBF/BM87LtQ9QFjLwCgmuouy3vcsryWNEN3Lg0GwhQzl9ZuDw4bs/qw==
"@serialport/binding-mock@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/binding-mock/-/binding-mock-10.2.2.tgz#d322a8116a97806addda13c62f50e73d16125874"
integrity sha512-HAFzGhk9OuFMpuor7aT5G1ChPgn5qSsklTFOTUX72Rl6p0xwcSVsRtG/xaGp6bxpN7fI9D/S8THLBWbBgS6ldw==
dependencies:
"@serialport/binding-abstract" "10.0.1"
debug "^4.3.2"
"@serialport/bindings-interface" "^1.2.1"
debug "^4.3.3"
"@serialport/bindings-cpp@^10.2.1":
version "10.2.1"
resolved "https://registry.yarnpkg.com/@serialport/bindings-cpp/-/bindings-cpp-10.2.1.tgz#e44a246142c11c83f0e4fd0cd16491702e6c3202"
integrity sha512-PCnMBdy53/DLYx8dJg4e8Na1hMVGxE0d60IU6i03+k5SEmtPblixvIyytcllFhMRGQmH2zHHjP/2Big2Rjddwg==
"@serialport/bindings-cpp@10.6.2":
version "10.6.2"
resolved "https://registry.yarnpkg.com/@serialport/bindings-cpp/-/bindings-cpp-10.6.2.tgz#2ecb0a958d69d9d9e72cbf46481472937954adb5"
integrity sha512-vhId2K4Y4WOgy/UJE8NOHX6GZpozORCCMh6GM5UQeIzXihoYLxt4eomgl1eXasFipcRs06n71lAToqixb7NPpA==
dependencies:
"@serialport/binding-abstract" "10.0.1"
"@serialport/parser-readline" "10.0.1"
"@serialport/bindings-interface" "1.2.1"
"@serialport/parser-readline" "^10.2.1"
debug "^4.3.2"
node-addon-api "4.2.0"
node-addon-api "^4.3.0"
node-gyp-build "^4.3.0"
"@serialport/parser-byte-length@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-byte-length/-/parser-byte-length-10.0.1.tgz#c9038449e82e2f36093e7d3efe3ca16c6e357f3d"
integrity sha512-uOQa0KEGT7IIGSWCN53NE5ZYaWoeeGLDCSX+ssDadyQxy47hMHuP/JotdWqHg7lDwxUHe0tDl4SOEeEnDx1l6A==
"@serialport/bindings-interface@1.2.1", "@serialport/bindings-interface@^1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@serialport/bindings-interface/-/bindings-interface-1.2.1.tgz#1ee80b0951ef4e4fd8a5a186621feff046aa2faf"
integrity sha512-63Dyqz2gtryRDDckFusOYqLYhR3Hq/M4sEdbF9i/VsvDb6T+tNVgoAKUZ+FMrXXKnCSu+hYbk+MTc0XQANszxw==
"@serialport/parser-cctalk@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-cctalk/-/parser-cctalk-10.0.1.tgz#df3c26886e920a45e17aba563b44324f5c1906b8"
integrity sha512-boVr8akjX/7iCtMHeFT16ek4m0/oV9YA6A2mstVCpKle2op42qByx3jY5RzQ52c13oQvq1E6tG0lWJrzdTK+Yw==
"@serialport/parser-byte-length@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/parser-byte-length/-/parser-byte-length-10.2.2.tgz#10129fb83fb0bd5e4c673d866534ea714022708e"
integrity sha512-3xqaRbNiqDo8Gf1jPgrZr2nObKfAjhFihINZLJfPG7skWXfDKuF0zXuStzixre26N8GYWnkn4j/oEnI0RZjVDA==
"@serialport/parser-delimiter@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-10.0.1.tgz#bb0a04e140bf428d5b49e7838b9f136c40b4a091"
integrity sha512-B0c6dm9UCpRU/LhkvRFL3OSbs69VqWU7mjW7tM109JDNS+vw8uJPumXz8Giub6D0xl90J7euH6tBTqERk7048Q==
"@serialport/parser-cctalk@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/parser-cctalk/-/parser-cctalk-10.2.2.tgz#7009b245cf7f6d9fa0e1a8039fcf2ed4292199da"
integrity sha512-WK+82D10y+vL2Rv1Hs2MRNKeY18uVC0+eH9QCfD9e2o+4+jPHfN2boJQFxVGtrlss8j5DmQ5Sc5Qe6Ep+f20/Q==
"@serialport/parser-inter-byte-timeout@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-10.0.1.tgz#bbae1835a0ad0ea6e79dcb27f159231b7051a73a"
integrity sha512-awX0bekMZkjb+kjBHsnizAXNfc/grxIqEKdy9Etc6KhgSmratRnjGa7J0rPFP4bTzYWp5sOqlI0ALwBnWCXedA==
"@serialport/parser-delimiter@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/parser-delimiter/-/parser-delimiter-10.2.2.tgz#e305ad321ebc6dd2739cc919b66602c6c5bc4f8c"
integrity sha512-VsepMDIjbHbANMxH4IkXIJY0Tds8XsDo0mgtWK3DrV+IJGXp+2b0pHOuQlSLSfEUmdw7F5drI17fkxc9mxn+pg==
"@serialport/parser-readline@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-10.0.1.tgz#c4f7f047d4779c908cfb66d14c0ca0abd7e11f25"
integrity sha512-jdKPNka/Nn17k89T5UIyis39EaZHQCmq+83s0icBt2iPBlX8+BrJAUBe8myFpuT22qskTVNzFoTMPOp8pjK/yw==
"@serialport/parser-inter-byte-timeout@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-10.2.2.tgz#22293882c9bd7ae9b18be9a30ca2fcd7a0617dc9"
integrity sha512-J9895aJ+3cHp2Q9qMH3UulfaifHDbDHjLPbO2H0vqjI8gZemL0DGql5ooFI6zsgJStXYT1MjqIhIb8dBIE0nxA==
"@serialport/parser-packet-length@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/parser-packet-length/-/parser-packet-length-10.2.2.tgz#24790ba057090b8c7f5067a229b98d273fa6b71f"
integrity sha512-AEh/4pOoolUgCwg7ZW5M81isPjOhSf+Fq7OdyaR0GEHHrRgaY7ma2xkyp+sgjcYoeBzlxe3pPdi7LGtBJEFDnw==
"@serialport/parser-readline@10.2.2", "@serialport/parser-readline@^10.2.1":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/parser-readline/-/parser-readline-10.2.2.tgz#94bfbf4a76760141ce8c7efddbc76d00dfe6dd55"
integrity sha512-OcWoTsUJeLKWw+rdTuqXFZhii2liE6LeoFK2rtS6L00pB0cd2FGt2Rsx76oTCTyrub6AAUqaS9PRrAI+AUJJpg==
dependencies:
"@serialport/parser-delimiter" "10.0.1"
"@serialport/parser-delimiter" "10.2.2"
"@serialport/parser-ready@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-ready/-/parser-ready-10.0.1.tgz#497c4ae0bcc1866b488d8c4f9d6b4e98c4f08aa3"
integrity sha512-4hVDrKNJBd0wcCfa1qQAk+MM6mVWc9oIbUPEKJkWdBrrWOqYacx2UpvQWd+3YGJ04hFqEv1feOSaH3/1hUifEg==
"@serialport/parser-ready@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/parser-ready/-/parser-ready-10.2.2.tgz#5d057f7d65fece8ea3c7f2cacf4026768a34e53d"
integrity sha512-Y5NA/kMb27afeFvSHhQ0Ov7PUt6vPSUqm7y+u6gajMpYOhKMjbLyQHuYMkgtGgk/PsryaOerd4OCVaYCEj0C+Q==
"@serialport/parser-regex@10.0.1":
version "10.0.1"
resolved "https://registry.yarnpkg.com/@serialport/parser-regex/-/parser-regex-10.0.1.tgz#bcb302dda0a9d07ce9b3e554e3d2a41abf3fb5c5"
integrity sha512-l8ECuUsan33x5pirQZodlmw0q70Jcxy+oHnXJaqchBTRCbtXlE7+PMFJnmNoIHGqDwt0XALbwpvKcnNBrgvT1g==
"@serialport/parser-regex@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/parser-regex/-/parser-regex-10.2.2.tgz#0275c207485f7cbd4787ef54e835eab6a7126b15"
integrity sha512-+fAchSfl65Ix1BbyNPBu0SreZg2Tc2JJkvXsKsWFpoaOEsuxbCthrNmyvjt3AZ228pay6kKvF2PkRd/z+BFSfw==
"@serialport/stream@10.0.2":
version "10.0.2"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-10.0.2.tgz#3a242ea8a42356af9e4fb0924ca4a4a0efd36e37"
integrity sha512-ZlC1M8/+hIO4JYI+cwJMAL2gkdf6Ahcen5gHJhM1Ibj40fRPOtxIWR1vgGFY1a/TKADDUZorE4RVYxmbheeZYw==
"@serialport/parser-slip-encoder@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/parser-slip-encoder/-/parser-slip-encoder-10.2.2.tgz#ba3b4d3d6f172b0a22b82b86db5e1cd00e3ef22f"
integrity sha512-cDJvco/exmQ7xgISVNbNb73r8l0j7eQDTVXxa8whUt8tdkf/J5y8jZLZgboh/iXbEcrNtohwUhIfb633NotNxg==
"@serialport/parser-spacepacket@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/parser-spacepacket/-/parser-spacepacket-10.2.2.tgz#e0b9186d6239f97a615cb8990db153e1bb564bf7"
integrity sha512-TdfDYfIg41lXXuFsbdTZ2IHKhb3MgLJMMRhutoc/q6wX7LFhFD7FhdlkX3w85x15p1Et+iekGW5I/b48s47gXQ==
"@serialport/stream@10.2.2":
version "10.2.2"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-10.2.2.tgz#80e3acd7a54c5da16659b3c34d419ca7302eff14"
integrity sha512-xKO5f73KbqZYadKYbtlDHE5RUwqSK8dF2brQRA6dikeyHWbVNhjwNtjWglwgzPl4SLB1A1uT97hMxrBrSCs6/w==
dependencies:
"@serialport/bindings-interface" "1.2.1"
debug "^4.3.2"
"@serialport/stream@^9.0.2":
version "9.2.4"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-9.2.4.tgz#9fce093d0b46ed4599953b4fae81718e050d2b33"
integrity sha512-bLye8Ub4vUFQGmkh8qEqehr7SE7EJs2yDs0h9jzuL5oKi+F34CFmWkEErO8GAOQ8YNn7p6b3GxUgs+0BrHHDZQ==
dependencies:
debug "^4.3.2"
@@ -385,10 +404,10 @@ buffer@^5.5.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
builder-util-runtime@8.9.1:
version "8.9.1"
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz#25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a"
integrity sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg==
builder-util-runtime@8.9.2:
version "8.9.2"
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz#a9669ae5b5dcabfe411ded26678e7ae997246c28"
integrity sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A==
dependencies:
debug "^4.3.2"
sax "^1.2.4"
@@ -738,6 +757,13 @@ debug@^4.0.1, debug@^4.3.2:
dependencies:
ms "2.1.2"
debug@^4.3.3:
version "4.3.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
dependencies:
ms "2.1.2"
debuglog@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz"
@@ -753,12 +779,12 @@ decode-uri-component@^0.2.0:
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
decompress-response@^4.2.0:
version "4.2.1"
resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz"
integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==
decompress-response@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
dependencies:
mimic-response "^2.0.0"
mimic-response "^3.1.0"
deep-extend@^0.6.0:
version "0.6.0"
@@ -794,10 +820,10 @@ detect-indent@~5.0.0:
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50=
detect-libc@^1.0.3:
version "1.0.3"
resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
detect-libc@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.0.tgz#c528bc09bc6d1aa30149228240917c225448f204"
integrity sha512-S55LzUl8HUav8l9E2PBTlC5PAJrHK7tkM+XXFGD+fbsbkTzhCpG6K05LxJcUOEWzMa4v6ptcMZ9s3fOdJDu0Zw==
detect-newline@^2.1.0:
version "2.1.0"
@@ -897,13 +923,13 @@ electron-promise-ipc@^2.2.4:
serialize-error "^5.0.0"
uuid "^3.0.1"
electron-updater@^4.6.1:
version "4.6.1"
resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.6.1.tgz#80ca805c4f51b2e682aac29d18fed75d6a533d32"
integrity sha512-YsU1mHqXLrXXmBMsxhxy24PrbaB8rnpZDPmFa2gOkTYk/Ch13+R0fjsRSpPYvqtskVVY0ux8fu+HnUkVkqc7og==
electron-updater@^4.6.5:
version "4.6.5"
resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.6.5.tgz#e9a75458bbfd6bb41a58a829839e150ad2eb2d3d"
integrity sha512-kdTly8O9mSZfm9fslc1mnCY+mYOeaYRy7ERa2Fed240u01BKll3aiupzkd07qKw69KvhBSzuHroIW3mF0D8DWA==
dependencies:
"@types/semver" "^7.3.6"
builder-util-runtime "8.9.1"
builder-util-runtime "8.9.2"
fs-extra "^10.0.0"
js-yaml "^4.1.0"
lazy-val "^1.0.5"
@@ -1743,13 +1769,13 @@ keyboardevents-areequal@^0.2.1:
resolved "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz"
integrity sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==
keytar@^7.7.0:
version "7.7.0"
resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.7.0.tgz#3002b106c01631aa79b1aa9ee0493b94179bbbd2"
integrity sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==
keytar@^7.8.0:
version "7.8.0"
resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.8.0.tgz#28cf5ceeb1275350888870022869b8b4fe6a87f9"
integrity sha512-mR+BqtAOIW8j+T5FtLVyckCbvROWQD+4FzPeFMuk5njEZkXLpVPCGF26Y3mTyxMAAL1XCfswR7S6kIf+THSRFA==
dependencies:
node-addon-api "^3.0.0"
prebuild-install "^6.0.0"
node-addon-api "^4.3.0"
prebuild-install "^7.0.1"
klaw-sync@^6.0.0:
version "6.0.0"
@@ -2101,10 +2127,10 @@ mimic-fn@^1.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
mimic-response@^2.0.0:
version "2.1.0"
resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz"
integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
mimic-response@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
minimatch@^3.0.4:
version "3.0.4"
@@ -2232,28 +2258,35 @@ nice-try@^1.0.4:
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
node-abi@^2.20.0, node-abi@^2.7.0:
node-abi@^2.20.0:
version "2.30.1"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf"
integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==
dependencies:
semver "^5.4.1"
node-abi@^3.3.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.8.0.tgz#679957dc8e7aa47b0a02589dbfde4f77b29ccb32"
integrity sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==
dependencies:
semver "^7.3.5"
node-addon-api@3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.0.tgz"
integrity sha512-sSHCgWfJ+Lui/u+0msF3oyCgvdkhxDbkCS6Q8uiJquzOimkJBvX6hl5aSSA7DR1XbMpdM8r7phjcF63sF4rkKg==
node-addon-api@4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.2.0.tgz#117cbb5a959dff0992e1c586ae0393573e4d2a87"
integrity sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==
node-addon-api@^3.0.0, node-addon-api@^3.0.2, node-addon-api@^3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz"
integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==
node-addon-api@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
node-fetch-npm@^2.0.2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4"
@@ -2285,11 +2318,6 @@ node-gyp@^5.0.2, node-gyp@^5.1.0:
tar "^4.4.12"
which "^1.3.1"
noop-logger@^0.1.1:
version "0.1.1"
resolved "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz"
integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=
nopt@^4.0.1, nopt@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
@@ -2758,11 +2786,6 @@ parse-json@^2.2.0:
dependencies:
error-ex "^1.2.0"
parse5@^5.0.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
patch-package@^6.4.7:
version "6.4.7"
resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.4.7.tgz#2282d53c397909a0d9ef92dae3fdeb558382b148"
@@ -2841,26 +2864,24 @@ pkg-up@^2.0.0:
dependencies:
find-up "^2.1.0"
prebuild-install@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.1.tgz#5902172f7a40eb67305b96c2a695db32636ee26d"
integrity sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ==
prebuild-install@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.0.1.tgz#c10075727c318efe72412f333e0ef625beaf3870"
integrity sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==
dependencies:
detect-libc "^1.0.3"
detect-libc "^2.0.0"
expand-template "^2.0.3"
github-from-package "0.0.0"
minimist "^1.2.3"
mkdirp-classic "^0.5.3"
napi-build-utils "^1.0.1"
node-abi "^2.7.0"
noop-logger "^0.1.1"
node-abi "^3.3.0"
npmlog "^4.0.1"
pump "^3.0.0"
rc "^1.2.7"
simple-get "^3.0.3"
simple-get "^4.0.0"
tar-fs "^2.0.0"
tunnel-agent "^0.6.0"
which-pm-runs "^1.0.0"
prepend-http@^1.0.1:
version "1.0.4"
@@ -3235,21 +3256,32 @@ serialize-error@^5.0.0:
dependencies:
type-fest "^0.8.0"
serialport@^10.0.2:
version "10.0.2"
resolved "https://registry.yarnpkg.com/serialport/-/serialport-10.0.2.tgz#64150fd2cd4cec35a88e0b8af66614a42b06e577"
integrity sha512-hFQ6V/LFh0G4FmQsPjQCLqofalpHRWznXVA3lKlA19kUkdQrOmsz3CHQ72mPglbY+1PGGHZwXHPdTROtWP4qsA==
serialport-binding-webserialapi@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/serialport-binding-webserialapi/-/serialport-binding-webserialapi-1.0.3.tgz#cf4348c075da2de8f6cf9936c0b95645f3ae657b"
integrity sha512-TS7dsvetVoTeiWlzpsT/akjtljiYPO56FoJWSFyJSoO/E8icYJ2neQ7CW5NW/sHZDnMqAxULyAny47UFhWz9oQ==
dependencies:
"@serialport/binding-mock" "10.0.1"
"@serialport/bindings-cpp" "^10.2.1"
"@serialport/parser-byte-length" "10.0.1"
"@serialport/parser-cctalk" "10.0.1"
"@serialport/parser-delimiter" "10.0.1"
"@serialport/parser-inter-byte-timeout" "10.0.1"
"@serialport/parser-readline" "10.0.1"
"@serialport/parser-ready" "10.0.1"
"@serialport/parser-regex" "10.0.1"
"@serialport/stream" "10.0.2"
"@serialport/binding-abstract" "^9.0.2"
"@serialport/stream" "^9.0.2"
serialport@10.2.2:
version "10.2.2"
resolved "https://registry.yarnpkg.com/serialport/-/serialport-10.2.2.tgz#ab12a423046df6b64cb3144fdb2d00fb3062ab75"
integrity sha512-yYp8UM915g8C3+lYZ7GU1Em1BnMeaH9c2bN2/A8ptQH5ttD7E+k9PuDEVOuyxONuyiBOp+vHfIPnje1evnslEw==
dependencies:
"@serialport/binding-mock" "10.2.2"
"@serialport/bindings-cpp" "10.6.2"
"@serialport/parser-byte-length" "10.2.2"
"@serialport/parser-cctalk" "10.2.2"
"@serialport/parser-delimiter" "10.2.2"
"@serialport/parser-inter-byte-timeout" "10.2.2"
"@serialport/parser-packet-length" "10.2.2"
"@serialport/parser-readline" "10.2.2"
"@serialport/parser-ready" "10.2.2"
"@serialport/parser-regex" "10.2.2"
"@serialport/parser-slip-encoder" "10.2.2"
"@serialport/parser-spacepacket" "10.2.2"
"@serialport/stream" "10.2.2"
debug "^4.3.2"
set-blocking@^2.0.0, set-blocking@~2.0.0:
@@ -3286,12 +3318,12 @@ simple-concat@^1.0.0:
resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz"
integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
simple-get@^3.0.3:
version "3.1.0"
resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz"
integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==
simple-get@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543"
integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==
dependencies:
decompress-response "^4.2.0"
decompress-response "^6.0.0"
once "^1.3.1"
simple-concat "^1.0.0"
@@ -3661,7 +3693,7 @@ tough-cookie@~2.5.0:
psl "^1.1.28"
punycode "^2.1.1"
tslib@^2.0.0, tslib@^2.1.0, tslib@^2.2.0:
tslib@^2.0.0, tslib@^2.1.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
@@ -3832,11 +3864,6 @@ which-module@^2.0.0:
resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
which-pm-runs@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz"
integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
which@^1.2.9, which@^1.3.0, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"

File diff suppressed because it is too large Load Diff

2111
locale/da-DK.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

5
locale/en-US.po Normal file
View File

@@ -0,0 +1,5 @@
msgid "id.port-forwarding.dynamic"
msgstr "Dynamic"
msgid "id.tab-width.dynamic"
msgstr "Dynamic"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2111
locale/it-IT.po Normal file

File diff suppressed because it is too large Load Diff

2111
locale/ja-JP.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,23 +1,23 @@
{
"devDependencies": {
"@angular/animations": "^12.0.0",
"@angular/cdk": "^12.2.9",
"@angular/common": "^12.0.0",
"@angular/compiler": "^12.0.0",
"@angular/core": "^12.0.0",
"@angular/forms": "^12.0.0",
"@angular/platform-browser": "^12.0.0",
"@angular/platform-browser-dynamic": "^12.0.0",
"@biesbjerg/ngx-translate-extract": "^7.0.4",
"@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
"@fortawesome/fontawesome-free": "^6.0.0-beta3",
"@fortawesome/fontawesome-free": "^6.0.0",
"@ng-bootstrap/ng-bootstrap": "^10.0.0",
"@sentry/cli": "^1.71.0",
"@sentry/cli": "^1.72.1",
"@sentry/electron": "^2.5.4",
"@tabby-gang/to-string-loader": "^1.1.7-beta.2",
"@types/deep-equal": "1.0.1",
"@types/electron-config": "^3.2.2",
"@types/electron-debug": "^2.1.0",
"@types/fs-extra": "^9.0.12",
"@types/fs-extra": "^9.0.13",
"@types/js-yaml": "^4.0.5",
"@types/node": "16.0.1",
"@types/sortablejs": "^1.10.7",
@@ -25,22 +25,23 @@
"@typescript-eslint/eslint-plugin": "^4.33.0",
"@typescript-eslint/parser": "^4.33.0",
"apply-loader": "2.0.0",
"axios": "^0.21.2",
"axios": "^0.25.0",
"browserify-sign": "^4.2.1",
"clone-deep": "^4.0.1",
"compare-versions": "^4",
"core-js": "^3.18.2",
"core-js": "^3.20.3",
"cross-env": "7.0.3",
"css-loader": "^6.5.1",
"deep-equal": "2.0.5",
"electron": "16.0.8",
"electron-builder": "^22.14.5",
"electron": "17.0.0",
"electron-builder": "^22.14.13",
"electron-download": "^4.1.1",
"electron-installer-snap": "^5.1.0",
"electron-notarize": "^1.1.1",
"electron-rebuild": "^3.2.7",
"eslint": "^7.32.0",
"file-loader": "^6.2.0",
"gettext-extractor": "^3.5.3",
"graceful-fs": "^4.2.9",
"html-loader": "2.1.2",
"json-loader": "^0.5.7",
@@ -48,7 +49,7 @@
"macos-release": "^3.0.1",
"ngx-sortablejs": "^11.1.0",
"ngx-toastr": "^14.0.0",
"node-abi": "^3.2.0",
"node-abi": "^3.8.0",
"node-sass": "^7.0.1",
"npmlog": "6.0.0",
"npx": "^10.2.2",
@@ -69,16 +70,16 @@
"source-code-pro": "^2.38.0",
"source-map-loader": "^3.0.1",
"source-sans-pro": "3.6.0",
"ssh2": "^1.5.0",
"ssh2": "^1.6.0",
"style-loader": "^3.2.1",
"svg-inline-loader": "^0.8.2",
"ts-loader": "^9.2.3",
"tslib": "^2.3.1",
"typedoc": "^0.22.10",
"typedoc": "^0.22.11",
"typescript": "^4.3.5",
"utils-decorators": "^1.10.4",
"val-loader": "4.0.0",
"webpack": "^5.67.0",
"webpack": "^5.68.0",
"webpack-bundle-analyzer": "^4.5.0",
"webpack-cli": "^4.9.2",
"yaml-loader": "0.6.0",

View File

@@ -0,0 +1,13 @@
diff --git a/node_modules/gettext-extractor/dist/html/selector.js b/node_modules/gettext-extractor/dist/html/selector.js
index e290d12..cdb1d0b 100644
--- a/node_modules/gettext-extractor/dist/html/selector.js
+++ b/node_modules/gettext-extractor/dist/html/selector.js
@@ -120,7 +120,7 @@ class ElementSelector {
if (elementAttributeValue === null) {
return false;
}
- if (attribute.value) {
+ if (attribute.value !== undefined) {
switch (attribute.operator) {
case '^=':
if (elementAttributeValue.slice(0, attribute.value.length) !== attribute.value) {

View File

@@ -3,6 +3,9 @@ const sh = require('shelljs')
const fs = require('fs/promises')
const vars = require('./vars')
const log = require('npmlog')
const { GettextExtractor, JsExtractors, HtmlExtractors } = require('gettext-extractor')
let extractor = new GettextExtractor()
const tempOutput = 'locale/app.new.pot'
const pot = 'locale/app.pot'
@@ -11,17 +14,40 @@ const tempHtml = 'locale/tmp-html'
;(async () => {
sh.mkdir('-p', tempHtml)
for (const plugin of vars.builtinPlugins) {
log.info('extract-pug', plugin)
log.info('compile-pug', plugin)
sh.exec(`yarn pug --doctype html -s --pretty -O '{require: function(){}}' -o ${tempHtml}/${plugin} ${plugin}`, { fatal: true })
log.info('extract-ts', plugin)
sh.exec(`node node_modules/.bin/ngx-translate-extract -i ${plugin}/src -m -s -f pot -o ${tempOutput}`, { fatal: true })
}
log.info('extract-ts')
extractor.createJsParser([
JsExtractors.callExpression('this.translate.instant', {
arguments: { text: 0 },
}),
JsExtractors.callExpression('translate.instant', {
arguments: { text: 0 },
}),
JsExtractors.callExpression('_', {
arguments: { text: 0 },
}),
]).parseFilesGlob('./tabby-*/src/**/*.ts')
log.info('extract-pug')
sh.exec(`node node_modules/.bin/ngx-translate-extract -i ${tempHtml} -f pot -s -o ${tempOutput}`, { fatal: true })
const options = {
attributes: {
context: 'translatecontext',
},
}
extractor.createHtmlParser([
HtmlExtractors.elementContent('translate, [translate=""]', options),
HtmlExtractors.elementAttribute('[translate*=" "]', 'translate', options),
]).parseFilesGlob(`${tempHtml}/**/*.html`)
extractor.savePotFile(tempOutput)
extractor.printStats()
sh.rm('-r', tempHtml)
sh.exec(`msgcat -s ${tempOutput} > ${pot}`, { fatal: true })
await fs.rename(tempOutput, pot)
})()

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-community-color-schemes",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Community color schemes for Tabby",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-core",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Tabby core",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -215,7 +215,7 @@ export class AppRootComponent {
}
@HostBinding('class.vibrant') get isVibrant () {
return this.config.store.appearance.vibrancy
return this.config.store?.appearance.vibrancy
}
private getToolbarButtons (aboveZero: boolean): ToolbarButton[] {

View File

@@ -158,7 +158,6 @@ export type SplitDropZoneInfo = {
></split-tab-spanner>
<split-tab-drop-zone
*ngFor='let dropZone of _dropZones'
[enabled]='dropZonesEnabled'
[parent]='this'
[dropZone]='dropZone'
(tabDropped)='onTabDropped($event, dropZone)'
@@ -604,10 +603,6 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
this.tabAdopted.next(tab)
}
get dropZonesEnabled (): boolean {
return this.getAllTabs().length > 1
}
destroy (): void {
super.destroy()
for (const x of this.getAllTabs()) {
@@ -640,7 +635,7 @@ export class SplitTabComponent extends BaseTabComponent implements AfterViewInit
}
private updateTitle (): void {
this.setTitle(this.getAllTabs().map(x => x.title).join(' | '))
this.setTitle([...new Set(this.getAllTabs().map(x => x.title))].join(' | '))
}
private attachTabView (tab: BaseTabComponent) {

View File

@@ -3,7 +3,7 @@ import { Component, Input, HostBinding, ElementRef, Output, EventEmitter } from
import { AppService } from '../services/app.service'
import { BaseTabComponent } from './baseTab.component'
import { SelfPositioningComponent } from './selfPositioning.component'
import { SplitDropZoneInfo } from './splitTab.component'
import { SplitDropZoneInfo, SplitTabComponent } from './splitTab.component'
/** @hidden */
@Component({
@@ -22,31 +22,31 @@ import { SplitDropZoneInfo } from './splitTab.component'
})
export class SplitTabDropZoneComponent extends SelfPositioningComponent {
@Input() dropZone: SplitDropZoneInfo
@Input() parent: BaseTabComponent
@Input() enabled = false
@Input() parent: SplitTabComponent
@Output() tabDropped = new EventEmitter<BaseTabComponent>()
@HostBinding('class.active') isActive = false
@HostBinding('class.highlighted') isHighlighted = false
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
constructor (
element: ElementRef,
app: AppService,
) {
super(element)
this.subscribeUntilDestroyed(app.tabDragActive$, tab => {
this.isActive = !!(tab && this.canActivateFor(tab))
this.isActive = !!tab && this.canActivateFor(tab)
this.layout()
})
}
canActivateFor (tab: BaseTabComponent) {
if (tab === this.parent || !this.enabled) {
return false
}
if (this.dropZone.type === 'absolute' && tab === this.dropZone.container.children[this.dropZone.position]) {
return false
}
return true
canActivateFor (tab: BaseTabComponent): boolean {
const allTabs = this.parent.getAllTabs()
return !(
tab === this.parent ||
allTabs.length === 1 && allTabs.includes(tab) ||
this.dropZone.type === 'relative' && tab === this.dropZone.relativeTo ||
this.dropZone.type === 'absolute' && tab === this.dropZone.container.children[this.dropZone.position]
)
}
ngOnChanges () {

View File

@@ -20,4 +20,7 @@ footer.d-flex.align-items-center
i.fas.fa-bug
span(translate) Report a problem
.form-control-static.selectable.no-drag {{ 'Version: {version}'|translate:{ version: this.homeBase.appVersion } }}
.form-control-static.selectable.no-drag(
translate='Version: {version}',
[translateParams]='{ version: this.homeBase.appVersion }'
)

View File

@@ -4,8 +4,10 @@
.ml-auto(ngbDropdown, placement='bottom-right')
button.btn.btn-link(ngbDropdownToggle, (click)='$event.stopPropagation()')
span(
*ngIf='rememberFor'
) {{ 'Remember for {time}'|translate:{time: getRememberForDisplay(rememberFor)} }}
*ngIf='rememberFor',
translate='Remember for {time}',
[translateParams]='{time: getRememberForDisplay(rememberFor)}'
)
span(*ngIf='!rememberFor', translate) Do not remember
div(ngbDropdownMenu)
button.dropdown-item(

View File

@@ -13,8 +13,8 @@
option([ngValue]='null', translate) Automatic
option(
[value]='lang.code',
*ngFor='let lang of locale.allLanguages'
) {{lang.name|translate}}
*ngFor='let lang of allLanguages'
) {{lang.name}}
.form-line
.header

View File

@@ -13,6 +13,7 @@ import { LocaleService } from '../services/locale.service'
})
export class WelcomeTabComponent extends BaseTabComponent {
enableGlobalHotkey = true
allLanguages = LocaleService.allLanguages
constructor (
public config: ConfigService,

View File

@@ -82,7 +82,7 @@ const PROVIDERS = [
},
{
provide: MESSAGE_FORMAT_CONFIG,
useValue: LocaleService.allLocales,
useValue: LocaleService.allLanguages.map(x => x.code),
},
{
provide: TranslateService,

View File

@@ -3,10 +3,13 @@ import { registerLocaleData } from '@angular/common'
import { TranslateService } from '@ngx-translate/core'
import localeEN from '@angular/common/locales/en'
import localeDA from '@angular/common/locales/da'
import localeDE from '@angular/common/locales/de'
import localeES from '@angular/common/locales/es'
import localeFR from '@angular/common/locales/fr'
import localeHR from '@angular/common/locales/hr'
import localeIT from '@angular/common/locales/it'
import localeJA from '@angular/common/locales/ja'
import localePL from '@angular/common/locales/pl'
import localeRU from '@angular/common/locales/ru'
import localeZH from '@angular/common/locales/zh'
@@ -16,20 +19,41 @@ import { ConfigService } from './config.service'
import { LogService, Logger } from './log.service'
registerLocaleData(localeEN)
registerLocaleData(localeDA)
registerLocaleData(localeDE)
registerLocaleData(localeES)
registerLocaleData(localeFR)
registerLocaleData(localeHR)
registerLocaleData(localeIT)
registerLocaleData(localeJA)
registerLocaleData(localePL)
registerLocaleData(localeRU)
registerLocaleData(localeZH)
function flattenMessageFormatTranslation (po: any) {
const translation = {}
po = po.translations['']
for (const k of Object.keys(po)) {
translation[k] = po[k].msgstr[0] || k
}
return translation
}
@Injectable({ providedIn: 'root' })
export class TranslateServiceWrapper extends TranslateService {
private _defaultTranslation: Record<string, string>|null
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
getParsedResult (translations: any, key: any, interpolateParams?: any): any {
this.translations[this.defaultLang][key] ??= this.compiler.compile(key, this.defaultLang)
return super.getParsedResult(translations, key, interpolateParams)
if (!this._defaultTranslation) {
const po = require(`../../../locale/en-US.po`)
this._defaultTranslation = flattenMessageFormatTranslation(po)
}
this.translations[this.defaultLang][key] ??= this.compiler.compile(
this._defaultTranslation[key] || key,
this.defaultLang
)
return super.getParsedResult(translations, key, interpolateParams ?? {})
}
}
@@ -37,20 +61,57 @@ export class TranslateServiceWrapper extends TranslateService {
export class LocaleService {
private logger: Logger
static readonly allLocales = [
'en-US',
'de-DE',
'es-ES',
'fr-FR',
'hr-HR',
'pl-PL',
'ru-RU',
'zh-CN',
'zh-TW',
static allLanguages = [
{
code: 'da-DK',
name: 'Dansk',
},
{
code: 'de-DE',
name: 'Deutsch',
},
{
code: 'en-US',
name: 'English',
},
{
code: 'es-ES',
name: 'Español',
},
{
code: 'fr-FR',
name: 'Français',
},
{
code: 'hr-HR',
name: 'Hrvatski',
},
{
code: 'it-IT',
name: 'Italiano',
},
{
code: 'pl-PL',
name: 'Polski',
},
{
code: 'ru-RU',
name: 'Русский',
},
{
code: 'ja-JP',
name: '日本語',
},
{
code: 'zh-CN',
name: '中文(简体)',
},
{
code: 'zh-TW',
name: '中文 (繁體)',
},
]
readonly allLanguages: { code: string, name: string }[]
get localeChanged$ (): Observable<string> {
return this.localeChanged.pipe(distinctUntilChanged())
}
@@ -70,54 +131,13 @@ export class LocaleService {
config.ready$.subscribe(() => {
this.refresh()
})
this.allLanguages = [
{
code: 'en-US',
name: translate.instant('English'),
},
{
code: 'zh-CN',
name: translate.instant('Chinese (simplified)'),
},
{
code: 'zh-TW',
name: translate.instant('Chinese (traditional)'),
},
{
code: 'hr-HR',
name: translate.instant('Croatian'),
},
{
code: 'de-DE',
name: translate.instant('German'),
},
{
code: 'fr-FR',
name: translate.instant('French'),
},
{
code: 'pl-PL',
name: translate.instant('Polish'),
},
{
code: 'ru-RU',
name: translate.instant('Russian'),
},
{
code: 'es-ES',
name: translate.instant('Spanish'),
},
]
this.translate.setTranslation('en-US', {})
}
refresh (): void {
let lang = this.config.store.language
if (!lang) {
for (const systemLanguage of navigator.languages) {
if (!lang && this.allLanguages.some(x => x.code === systemLanguage)) {
if (!lang && LocaleService.allLanguages.some(x => x.code === systemLanguage)) {
lang = systemLanguage
}
}
@@ -127,15 +147,11 @@ export class LocaleService {
}
async setLocale (lang: string): Promise<void> {
if (!this.translate.langs.includes(lang) && lang !== 'en-US') {
if (!this.translate.langs.includes(lang)) {
this.translate.addLangs([lang])
const po = require(`../../../locale/${lang}.po`).translations['']
const translation = {}
for (const k of Object.keys(po)) {
translation[k] = po[k].msgstr[0] || k
}
const po = require(`../../../locale/${lang}.po`)
const translation = flattenMessageFormatTranslation(po)
this.translate.setTranslation(lang, translation)
}

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-electron",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Electron-specific bindings",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -17,7 +17,7 @@ import { ElectronService } from './services/electron.service'
import { ElectronHotkeyProvider } from './hotkeys'
import { ElectronConfigProvider } from './config'
import { EditSFTPContextMenu } from './sftpContextMenu'
import { OpenSSHImporter } from './openSSHImport'
import { OpenSSHImporter, StaticFileImporter } from './sshImporters'
@NgModule({
providers: [
@@ -32,7 +32,8 @@ import { OpenSSHImporter } from './openSSHImport'
{ provide: ConfigProvider, useClass: ElectronConfigProvider, multi: true },
{ provide: FileProvider, useClass: ElectronFileProvider, multi: true },
{ provide: SFTPContextMenuItemProvider, useClass: EditSFTPContextMenu, multi: true },
{ provide: SSHProfileImporter, useClass: OpenSSHImporter, multi: true },
{ provide: SSHProfileImporter, useExisting: OpenSSHImporter, multi: true },
{ provide: SSHProfileImporter, useExisting: StaticFileImporter, multi: true },
],
})
export default class ElectronModule {

View File

@@ -1,15 +1,20 @@
import * as fs from 'fs/promises'
import * as fsSync from 'fs'
import * as path from 'path'
import slugify from 'slugify'
import * as yaml from 'js-yaml'
import { Injectable } from '@angular/core'
import { PartialProfile } from 'tabby-core'
import { SSHProfileImporter, PortForwardType, SSHProfile, SSHProfileOptions } from 'tabby-ssh'
function deriveID (name: string): string {
return 'openssh-config:' + slugify(name)
}
import { ElectronService } from './services/electron.service'
@Injectable({ providedIn: 'root' })
export class OpenSSHImporter extends SSHProfileImporter {
async getProfiles (): Promise<PartialProfile<SSHProfile>[]> {
const deriveID = name => 'openssh-config:' + slugify(name)
const results: PartialProfile<SSHProfile>[] = []
const configPath = path.join(process.env.HOME ?? '~', '.ssh', 'config')
try {
@@ -127,3 +132,34 @@ export class OpenSSHImporter extends SSHProfileImporter {
}
}
}
@Injectable({ providedIn: 'root' })
export class StaticFileImporter extends SSHProfileImporter {
private configPath: string
constructor (
electron: ElectronService,
) {
super()
this.configPath = path.join(electron.app.getPath('userData'), 'ssh-profiles.yaml')
}
async getProfiles (): Promise<PartialProfile<SSHProfile>[]> {
const deriveID = name => 'file-config:' + slugify(name)
if (!fsSync.existsSync(this.configPath)) {
return []
}
const content = await fs.readFile(this.configPath, 'utf8')
if (!content) {
return []
}
return (yaml.load(content) as PartialProfile<SSHProfile>[]).map(item => ({
...item,
id: deriveID(item.name),
type: 'ssh',
}))
}
}

View File

@@ -11,10 +11,10 @@
enabled "2.0.x"
kuler "^2.0.0"
async@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720"
integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
async@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
balanced-match@^1.0.0:
version "1.0.2"
@@ -70,7 +70,7 @@ color@3.0.x:
color-convert "^1.9.1"
color-string "^1.5.2"
colors@^1.2.1:
colors@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
@@ -88,11 +88,6 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
@@ -146,11 +141,6 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
fast-safe-stringify@^2.0.4:
version "2.0.7"
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
fecha@^4.2.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce"
@@ -217,7 +207,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@^2.0.3, inherits@~2.0.3:
inherits@2, inherits@^2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -289,25 +279,20 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
dependencies:
has-symbols "^1.0.2"
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
kuler@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
logform@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz#40f036d19161fc76b68ab50fdc7fe495544492f2"
integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==
logform@^2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/logform/-/logform-2.3.2.tgz#68babe6a74ab09a1fd15a9b1e6cbc7713d41cb5b"
integrity sha512-V6JiPThZzTsbVRspNO6TmHkR99oqYTs8fivMBYQkjZj6rxW92KxtDCPE6IkAk1DNBnYKNkjm4jYBm6JDUcyhOA==
dependencies:
colors "^1.2.1"
fast-safe-stringify "^2.0.4"
colors "1.4.0"
fecha "^4.2.0"
ms "^2.1.1"
safe-stable-stringify "^1.1.0"
triple-beam "^1.3.0"
minimatch@^3.0.4:
@@ -371,24 +356,6 @@ path-is-absolute@^1.0.0:
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
readable-stream@^2.3.7:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@^3.4.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
@@ -405,16 +372,21 @@ rimraf@^3.0.0:
dependencies:
glob "^7.1.3"
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-stable-stringify@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz#c8a220ab525cd94e60ebf47ddc404d610dc5d84a"
integrity sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==
safe-stable-stringify@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73"
integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==
serialize-error@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-5.0.0.tgz#a7ebbcdb03a5d71a6ed8461ffe0fc1a1afed62ac"
@@ -457,13 +429,6 @@ string_decoder@^1.1.1:
dependencies:
safe-buffer "~5.2.0"
string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
text-hex@1.0.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
@@ -503,7 +468,7 @@ unbox-primitive@^1.0.0:
has-symbols "^1.0.2"
which-boxed-primitive "^1.0.2"
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
util-deprecate@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
@@ -524,28 +489,30 @@ which-boxed-primitive@^1.0.2:
is-string "^1.0.5"
is-symbol "^1.0.3"
winston-transport@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59"
integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==
winston-transport@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.2.tgz#554efe3fce229d046df006e0e3c411d240652e51"
integrity sha512-9jmhltAr5ygt5usgUTQbEiw/7RYXpyUbEAFRCSicIacpUzPkrnQsQZSPGEI12aLK9Jth4zNcYJx3Cvznwrl8pw==
dependencies:
readable-stream "^2.3.7"
logform "^2.3.2"
readable-stream "^3.4.0"
triple-beam "^1.2.0"
winston@^3.3.3:
version "3.3.3"
resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170"
integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==
version "3.5.0"
resolved "https://registry.yarnpkg.com/winston/-/winston-3.5.0.tgz#b1ef4dbc6d1a7c1b462650070f171abc7ce9eac0"
integrity sha512-OQMbmLsIdVHvm2hSurrYZs+iZNIImXneYJ6pX7LseSMEq20HdTETXiNnNX3FDwN4LB/xDRZLF6JYOY+AI112Kw==
dependencies:
"@dabh/diagnostics" "^2.0.2"
async "^3.1.0"
async "^3.2.3"
is-stream "^2.0.0"
logform "^2.2.0"
logform "^2.3.2"
one-time "^1.0.0"
readable-stream "^3.4.0"
safe-stable-stringify "^2.3.1"
stack-trace "0.0.x"
triple-beam "^1.3.0"
winston-transport "^4.4.0"
winston-transport "^4.4.2"
wrappy@1:
version "1.0.2"

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-linkifier",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Makes URLs, IPs and file paths clickable in Tabby",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-local",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Tabby's local shell plugin",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -1,3 +1,4 @@
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
import { Component, Input, Injector } from '@angular/core'
import { BaseTabProcess, WIN_BUILD_CONPTY_SUPPORTED, isWindowsBuild, GetRecoveryTokenOptions } from 'tabby-core'
import { BaseTerminalTabComponent } from 'tabby-terminal'
@@ -109,12 +110,12 @@ export class TerminalTabComponent extends BaseTerminalTabComponent {
{
type: 'warning',
message: this.translate.instant(
'"{command}" is still running. Close?',
_('"{command}" is still running. Close?'),
children[0],
),
buttons: [
this.translate.instant('Kill'),
this.translate.instant('Cancel'),
this.translate.instant(_('Kill')),
this.translate.instant(_('Cancel')),
],
defaultId: 0,
cancelId: 1,

View File

@@ -18,7 +18,14 @@ export class POSIXShellsProvider extends ShellProvider {
if (this.hostApp.platform === Platform.Windows) {
return []
}
return (await fs.readFile('/etc/shells', { encoding: 'utf-8' }))
let shellListPath = '/etc/shells'
try {
await fs.stat(shellListPath)
} catch {
// Solus Linux
shellListPath = '/usr/share/defaults/etc/shells'
}
return (await fs.readFile(shellListPath, { encoding: 'utf-8' }))
.split('\n')
.map(x => x.trim())
.filter(x => x && !x.startsWith('#'))

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-plugin-manager",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Tabby's plugin manager",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -5,7 +5,10 @@
span(translate) Plugins folder
.alert.alert-danger(*ngIf='errorMessage')
strong {{ 'Error in {plugin}:'|translate:{plugin: erroredPlugin} }}
strong(
translate='Error in {plugin}:',
[translateParams]='{plugin: erroredPlugin}'
)
pre {{errorMessage}}
ul.nav-tabs.mb-2(ngbNav, #nav='ngbNav')
@@ -75,7 +78,10 @@ ul.nav-tabs.mb-2(ngbNav, #nav='ngbNav')
)
i.fas.fa-fw.fa-arrow-up(*ngIf='busy.get(plugin.name) != BusyState.Installing')
i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy.get(plugin.name) == BusyState.Installing')
span {{ 'Upgrade to {version}'|translate:{version: knownUpgrades[plugin.name].version} }}
span(
translate='Upgrade to {version}',
[translateParams]='{version: knownUpgrades[plugin.name].version}'
)
ng-template(ngbPanelContent)
.row

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-serial",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Serial connections for Tabby",
"keywords": [
"tabby-builtin-plugin"
@@ -18,8 +18,7 @@
"license": "MIT",
"devDependencies": {
"@types/node": "14.14.14",
"ansi-colors": "^4.1.1",
"serialport-binding-webserialapi": "^1.0.3"
"ansi-colors": "^4.1.1"
},
"peerDependencies": {
"@angular/animations": "^9.1.9",

View File

@@ -1,5 +1,5 @@
import stripAnsi from 'strip-ansi'
import SerialPort from 'serialport'
import { SerialPortStream } from '@serialport/stream'
import { LogService, NotificationsService, Profile } from 'tabby-core'
import { Subject, Observable } from 'rxjs'
import { Injector, NgZone } from '@angular/core'
@@ -41,7 +41,7 @@ class SlowFeedMiddleware extends SessionMiddleware {
}
export class SerialSession extends BaseSession {
serial: SerialPort
serial: SerialPortStream|null
get serviceMessage$ (): Observable<string> { return this.serviceMessage }
private serviceMessage = new Subject<string>()
@@ -72,11 +72,13 @@ export class SerialSession extends BaseSession {
this.profile.options.port = (await this.serialService.listPorts())[0].name
}
this.serial = new SerialPort(this.profile.options.port, {
const serial = this.serial = new SerialPortStream({
binding: this.serialService.detectBinding(),
path: this.profile.options.port,
autoOpen: false,
baudRate: parseInt(this.profile.options.baudrate as any),
dataBits: this.profile.options.databits ?? 8,
stopBits: this.profile.options.stopbits ?? 1,
dataBits: this.profile.options.databits ?? 8 as any,
stopBits: this.profile.options.stopbits ?? 1 as any,
parity: this.profile.options.parity ?? 'none',
rtscts: this.profile.options.rtscts ?? false,
xon: this.profile.options.xon ?? false,
@@ -85,27 +87,27 @@ export class SerialSession extends BaseSession {
})
let connected = false
await new Promise(async (resolve, reject) => {
this.serial.on('open', () => {
serial.on('open', () => {
connected = true
this.zone.run(resolve)
})
this.serial.on('error', error => {
serial.on('error', error => {
this.zone.run(() => {
if (connected) {
this.notifications.error(error.toString())
this.notifications.error(error.message)
} else {
reject(error)
}
this.destroy()
})
})
this.serial.on('close', () => {
serial.on('close', () => {
this.emitServiceMessage('Port closed')
this.destroy()
})
try {
this.serial.open()
serial.open()
} catch (e) {
this.notifications.error(e.message)
reject(e)
@@ -115,11 +117,11 @@ export class SerialSession extends BaseSession {
this.open = true
setTimeout(() => this.streamProcessor.start())
this.serial.on('readable', () => {
this.emitOutput(this.serial.read())
serial.on('readable', () => {
this.emitOutput(serial.read())
})
this.serial.on('end', () => {
serial.on('end', () => {
this.logger.info('Shell session ended')
if (this.open) {
this.destroy()
@@ -144,7 +146,7 @@ export class SerialSession extends BaseSession {
}
kill (_?: string): void {
this.serial.close()
this.serial?.close()
}
emitServiceMessage (msg: string): void {

View File

@@ -1,4 +1,5 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
import colors from 'ansi-colors'
import { Component, Injector } from '@angular/core'
import { first } from 'rxjs'
@@ -68,12 +69,12 @@ export class SerialTabComponent extends BaseTerminalTabComponent {
const session = new SerialSession(this.injector, this.profile)
this.setSession(session)
this.startSpinner(this.translate.instant('Connecting'))
this.startSpinner(this.translate.instant(_('Connecting')))
try {
await this.session!.start()
this.stopSpinner()
session.emitServiceMessage(this.translate.instant('Port opened'))
session.emitServiceMessage(this.translate.instant(_('Port opened')))
} catch (e) {
this.stopSpinner()
this.write(colors.black.bgRed(' X ') + ' ' + colors.red(e.message) + '\r\n')
@@ -88,7 +89,7 @@ export class SerialTabComponent extends BaseTerminalTabComponent {
this.session?.resize(this.size.columns, this.size.rows)
})
this.attachSessionHandler(this.session!.destroyed$, () => {
this.write(this.translate.instant('Press any key to reconnect') + '\r\n')
this.write(this.translate.instant(_('Press any key to reconnect')) + '\r\n')
this.input$.pipe(first()).subscribe(() => {
if (!this.session?.open) {
this.reconnect()
@@ -114,7 +115,7 @@ export class SerialTabComponent extends BaseTerminalTabComponent {
async changeBaudRate () {
const rate = await this.selector.show(
this.translate.instant('Baud rate'),
this.translate.instant(_('Baud rate')),
BAUD_RATES.map(x => ({
name: x.toString(), result: x,
})),

View File

@@ -1,6 +1,4 @@
import slugify from 'slugify'
import SerialPort from 'serialport'
import WSABinding from 'serialport-binding-webserialapi'
import deepClone from 'clone-deep'
import { Injectable } from '@angular/core'
import { ProfileProvider, NewTabParameters, SelectorService, HostAppService, Platform, TranslateService } from 'tabby-core'
@@ -41,9 +39,6 @@ export class SerialProfilesService extends ProfileProvider<SerialProfile> {
private translate: TranslateService,
) {
super()
if (hostApp.platform === Platform.Web) {
SerialPort.Binding = WSABinding
}
}
async getBuiltinProfiles (): Promise<SerialProfile[]> {

View File

@@ -1,6 +1,8 @@
import { Injectable } from '@angular/core'
import SerialPort from 'serialport'
import { PartialProfile, ProfilesService } from 'tabby-core'
import WSABinding from 'serialport-binding-webserialapi'
import AbstractBinding from '@serialport/binding-abstract'
import { autoDetect } from '@serialport/bindings-cpp'
import { HostAppService, PartialProfile, Platform, ProfilesService } from 'tabby-core'
import { SerialPortInfo, SerialProfile } from '../api'
import { SerialTabComponent } from '../components/serialTab.component'
@@ -8,13 +10,23 @@ import { SerialTabComponent } from '../components/serialTab.component'
export class SerialService {
private constructor (
private profilesService: ProfilesService,
private hostApp: HostAppService,
) { }
detectBinding (): typeof AbstractBinding {
return this.hostApp.platform === Platform.Web ? WSABinding : autoDetect()
}
async listPorts (): Promise<SerialPortInfo[]> {
return (await SerialPort.list()).map(x => ({
name: x.path,
description: x.manufacturer || x.serialNumber ? `${x.manufacturer || ''} ${x.serialNumber || ''}` : undefined,
}))
try {
return (await this.detectBinding().list()).map(x => ({
name: x.path,
description: `${x.manufacturer ?? ''} ${x.serialNumber ?? ''}`.trim() || undefined,
}))
} catch (err) {
console.error('Failed to list serial ports', err)
return []
}
}
quickConnect (query: string): Promise<SerialTabComponent|null> {

View File

@@ -2,20 +2,6 @@
# yarn lockfile v1
"@serialport/binding-abstract@^9.0.2":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/binding-abstract/-/binding-abstract-9.0.7.tgz#d2c7ecea0f100bdf20187bfc0d34ba90f5504e1e"
integrity sha512-g1ncCMIG9rMsxo/28ObYmXZcHThlvtZygsCANmyMUuFS7SwXY4+PhcEnt2+ZcMkEDNRiOklT+ngtIVx5GGpt/A==
dependencies:
debug "^4.3.1"
"@serialport/stream@^9.0.2":
version "9.0.7"
resolved "https://registry.yarnpkg.com/@serialport/stream/-/stream-9.0.7.tgz#0bf023eb0233a714fcc5a86de09e381e466d9882"
integrity sha512-c/h7HPAeFiryD9iTGlaSvPqHFHSZ0NMQHxC4rcmKS2Vu3qJuEtkBdTLABwsMp7iWEiSnI4KC3s7bHapaXP06FQ==
dependencies:
debug "^4.3.1"
"@types/node@14.14.14":
version "14.14.14"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.14.tgz#f7fd5f3cc8521301119f63910f0fb965c7d761ae"
@@ -25,23 +11,3 @@ ansi-colors@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
debug@^4.3.1:
version "4.3.2"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
dependencies:
ms "2.1.2"
ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
serialport-binding-webserialapi@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/serialport-binding-webserialapi/-/serialport-binding-webserialapi-1.0.3.tgz#cf4348c075da2de8f6cf9936c0b95645f3ae657b"
integrity sha512-TS7dsvetVoTeiWlzpsT/akjtljiYPO56FoJWSFyJSoO/E8icYJ2neQ7CW5NW/sHZDnMqAxULyAny47UFhWz9oQ==
dependencies:
"@serialport/binding-abstract" "^9.0.2"
"@serialport/stream" "^9.0.2"

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-settings",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Tabby terminal settings page",
"keywords": [
"tabby-builtin-plugin"
@@ -17,6 +17,7 @@
"author": "Eugene Pankov",
"license": "MIT",
"devDependencies": {
"@types/marked": "^4.0.2",
"marked": "^4.0.8",
"ngx-infinite-scroll": "^10.0.1"
},

View File

@@ -59,7 +59,10 @@ ul.nav-tabs(ngbNav, #nav='ngbNav')
i.fas.fa-fw.fa-file
.ml-2.d-flex.flex-column.align-items-start
div {{cfg.name}}
small.text-muted {{ 'Modified on {date}'|translate:{date: cfg.modified_at|date:"medium"} }}
small.text-muted(
translate='Modified on {date}',
[translateParams]='{date: cfg.modified_at|date:"medium"}'
)
.mr-auto
button.btn.btn-link.ml-1(
(click)='uploadAndSync(cfg)',

View File

@@ -2,7 +2,10 @@
h3.m-0 {{profile.name}}
.modal-header(*ngIf='defaultsMode')
h3.m-0 {{ 'Defaults for {type}'|translate:{type: profileProvider.name} }}
h3.m-0(
translate='Defaults for {type}',
[translateParams]='{type: profileProvider.name}'
)
.modal-body
.row

View File

@@ -68,8 +68,8 @@ ul.nav-tabs(ngbNav, #nav='ngbNav')
*ngIf='iconIsSVG(profile.icon)'
)
div {{profile.name}}
.text-muted.ml-2 {{getDescription(profile)}}
.no-wrap {{profile.name}}
.text-muted.no-wrap.ml-2 {{getDescription(profile)}}
.mr-auto

View File

@@ -1,3 +1,4 @@
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
import { v4 as uuidv4 } from 'uuid'
import slugify from 'slugify'
import deepClone from 'clone-deep'
@@ -13,6 +14,8 @@ interface ProfileGroup {
collapsed: boolean
}
_('Ungrouped')
/** @hidden */
@Component({
template: require('./profilesSettingsTab.component.pug'),
@@ -197,7 +200,7 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
if ((await this.platform.showMessageBox(
{
type: 'warning',
message: this.translate.instant(`Delete the group's profiles?`),
message: this.translate.instant('Delete the group\'s profiles?'),
buttons: [
this.translate.instant('Move to "Ungrouped"'),
this.translate.instant('Delete'),

View File

@@ -1,4 +1,5 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
import axios from 'axios'
import { marked } from 'marked'
import { Component } from '@angular/core'
@@ -23,7 +24,7 @@ export class ReleaseNotesComponent extends BaseTabComponent {
constructor (translate: TranslateService) {
super()
this.setTitle(translate.instant('Release notes'))
this.setTitle(translate.instant(_('Release notes')))
this.loadReleases(1)
}

View File

@@ -73,8 +73,8 @@
option([ngValue]='null', translate) Automatic
option(
[value]='lang.code',
*ngFor='let lang of locale.allLanguages'
) {{lang.name|translate}}
*ngFor='let lang of allLanguages'
) {{lang.name}}
.form-line(*ngIf='platform.isShellIntegrationSupported()')
.header
@@ -109,7 +109,7 @@
li(*ngIf='provider.prioritized', [ngbNavItem]='provider.id')
a(ngbNavLink)
i(class='fas fa-fw mr-2 fa-{{provider.icon}}')
span(translate) {{provider.title}}
span {{provider.title|translate}}
ng-template(ngbNavContent)
settings-tab-body([provider]='provider')
@@ -119,7 +119,7 @@
li(*ngIf='!provider.prioritized', [ngbNavItem]='provider.id')
a(ngbNavLink)
i(class='fas fa-fw mr-2 fa-{{provider.icon || "puzzle-piece"}}')
span(translate) {{provider.title}}
span {{provider.title|translate}}
ng-template(ngbNavContent)
settings-tab-body([provider]='provider')

View File

@@ -1,4 +1,5 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
import * as yaml from 'js-yaml'
import { debounce } from 'utils-decorators/dist/esm/debounce/debounce'
import { Component, Inject, Input, HostBinding, NgZone } from '@angular/core'
@@ -36,6 +37,7 @@ export class SettingsTabComponent extends BaseTabComponent {
checkingForUpdate = false
updateAvailable = false
showConfigDefaults = false
allLanguages = LocaleService.allLanguages
@HostBinding('class.pad-window-controls') padWindowControls = false
constructor (
@@ -52,7 +54,7 @@ export class SettingsTabComponent extends BaseTabComponent {
translate: TranslateService,
) {
super()
this.setTitle(translate.instant('Settings'))
this.setTitle(translate.instant(_('Settings')))
this.settingsProviders = config.enabledServices(this.settingsProviders)
this.settingsProviders = this.settingsProviders.filter(x => !!x.getComponentType())
this.settingsProviders.sort((a, b) => a.weight - b.weight + a.title.localeCompare(b.title))
@@ -112,7 +114,7 @@ export class SettingsTabComponent extends BaseTabComponent {
try {
yaml.load(this.configFile)
return true
} catch (_) {
} catch {
return false
}
}

View File

@@ -268,7 +268,7 @@ h3.mt-4(translate) Tabs
ngbButton,
[value]='true'
)
span(translate) Dynamic
span(translate, translateComment='[Dynamic] tab width') id.tab-width.dynamic
label.btn.btn-secondary(ngbButtonLabel)
input(
type='radio',

View File

@@ -14,6 +14,11 @@ export class SettingsConfigProvider extends ConfigProvider {
vault: true,
},
},
hotkeys: {
'settings-tab': {
__nonStructural: true,
},
},
}
platformDefaults = {
[Platform.macOS]: {

View File

@@ -1,5 +1,6 @@
import { Injectable } from '@angular/core'
import { Inject, Injectable } from '@angular/core'
import { HotkeyDescription, HotkeyProvider, TranslateService } from 'tabby-core'
import { SettingsTabProvider } from './api'
/** @hidden */
@Injectable()
@@ -11,9 +12,18 @@ export class SettingsHotkeyProvider extends HotkeyProvider {
},
]
constructor (private translate: TranslateService) { super() }
constructor (
private translate: TranslateService,
@Inject(SettingsTabProvider) private settingsProviders: SettingsTabProvider[],
) { super() }
async provide (): Promise<HotkeyDescription[]> {
return this.hotkeys
return [
...this.hotkeys,
...this.settingsProviders.map(provider => ({
id: `settings-tab.${provider.id}`,
name: this.translate.instant('Open settings tab: {tab}', { tab: provider.title }),
})),
]
}
}

View File

@@ -4,7 +4,7 @@ import { FormsModule } from '@angular/forms'
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
import { InfiniteScrollModule } from 'ngx-infinite-scroll'
import TabbyCorePlugin, { ToolbarButtonProvider, HotkeyProvider, ConfigProvider } from 'tabby-core'
import TabbyCorePlugin, { ToolbarButtonProvider, HotkeyProvider, ConfigProvider, HotkeysService, AppService } from 'tabby-core'
import { EditProfileModalComponent } from './components/editProfileModal.component'
import { HotkeyInputModalComponent } from './components/hotkeyInputModal.component'
@@ -74,7 +74,21 @@ import { HotkeySettingsTabProvider, WindowSettingsTabProvider, VaultSettingsTabP
],
})
export default class SettingsModule {
constructor (public configSync: ConfigSyncService) { }
constructor (
public configSync: ConfigSyncService,
app: AppService,
hotkeys: HotkeysService,
) {
hotkeys.hotkey$.subscribe(async hotkey => {
if (hotkey.startsWith('settings-tab.')) {
const id = hotkey.substring(hotkey.indexOf('.') + 1)
app.openNewTabRaw({
type: SettingsTabComponent,
inputs: { activeTab: id },
})
}
})
}
}
export * from './api'

View File

@@ -7,10 +7,15 @@
resolved "https://registry.yarnpkg.com/@scarf/scarf/-/scarf-1.1.1.tgz#d8b9f20037b3a37dbf8dcdc4b3b72f9285bfce35"
integrity sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==
"@types/marked@^4.0.2":
version "4.0.2"
resolved "https://registry.yarnpkg.com/@types/marked/-/marked-4.0.2.tgz#cb2dbf10da2f41cf20bd91fb5f89b67540c282f7"
integrity sha512-auNrZ/c0w6wsM9DccwVxWHssrMDezHUAXNesdp2RQrCVCyrQbOiSq7yqdJKrUQQpw9VTm7CGYJH2A/YG7jjrjQ==
marked@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.8.tgz#ef127626ac65786460f9420d57cc8d5ffdcacbed"
integrity sha512-dkpJMIlJpc833hbjjg8jraw1t51e/eKDoG8TFOgc5O0Z77zaYKigYekTDop5AplRoKFGIaoazhYEhGkMtU3IeA==
version "4.0.12"
resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.12.tgz#2262a4e6fd1afd2f13557726238b69a48b982f7d"
integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==
ngx-infinite-scroll@^10.0.1:
version "10.0.1"

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-ssh",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "SSH connections for Tabby",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -4,7 +4,7 @@
.ms-2.d-flex.align-items-center
strong(*ngIf='fw.type === PortForwardType.Local', translate) Local
strong(*ngIf='fw.type === PortForwardType.Remote', translate) Remote
strong(*ngIf='fw.type === PortForwardType.Dynamic', translate) Dynamic
strong(*ngIf='fw.type === PortForwardType.Dynamic', translate, translateContext='[Dynamic] port forwarding') id.port-forwarding.dynamic
.ml-3 {{fw.host}}:{{fw.port}}
.ml-2 &rarr;
.ml-2(*ngIf='fw.type !== PortForwardType.Dynamic') {{fw.targetAddress}}:{{fw.targetPort}}
@@ -64,7 +64,7 @@ h5(translate) Add a port forward
ngbButton,
[value]='PortForwardType.Dynamic'
)
span(translate) Dynamic
span(translate, translateContext='[Dynamic] port forwarding') id.port-forwarding.dynamic
button.btn.btn-primary((click)='addForward()')
i.fas.fa-check.mr-2

View File

@@ -1,3 +1,4 @@
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
import colors from 'ansi-colors'
import { Component, Injector, HostListener } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
@@ -140,7 +141,7 @@ export class SSHTabComponent extends BaseTerminalTabComponent {
if (!session.open) {
this.write('\r\n' + colors.black.bgWhite(' SSH ') + ` Connecting to ${session.profile.options.host}\r\n`)
this.startSpinner(this.translate.instant('Connecting'))
this.startSpinner(this.translate.instant(_('Connecting')))
try {
await session.start()
@@ -172,7 +173,7 @@ export class SSHTabComponent extends BaseTerminalTabComponent {
this.write('\r\n' + colors.black.bgWhite(' SSH ') + ` ${this.sshSession?.profile.options.host}: session closed\r\n`)
if (!this.reconnectOffered) {
this.reconnectOffered = true
this.write(this.translate.instant('Press any key to reconnect') + '\r\n')
this.write(this.translate.instant(_('Press any key to reconnect')) + '\r\n')
this.input$.pipe(first()).subscribe(() => {
if (!this.session?.open && this.reconnectOffered) {
this.reconnect()
@@ -239,10 +240,10 @@ export class SSHTabComponent extends BaseTerminalTabComponent {
return (await this.platform.showMessageBox(
{
type: 'warning',
message: this.translate.instant('Disconnect from {host}?', this.profile?.options),
message: this.translate.instant(_('Disconnect from {host}?'), this.profile?.options),
buttons: [
this.translate.instant('Disconnect'),
this.translate.instant('Do not close'),
this.translate.instant(_('Disconnect')),
this.translate.instant(_('Do not close')),
],
defaultId: 0,
cancelId: 1,

View File

@@ -125,7 +125,10 @@ export class SSHSession {
if (await fs.exists(WINDOWS_OPENSSH_AGENT_PIPE)) {
this.agentPath = WINDOWS_OPENSSH_AGENT_PIPE
} else {
if (await this.platform.isProcessRunning('pageant.exe')) {
if (
await this.platform.isProcessRunning('pageant.exe') ||
await this.platform.isProcessRunning('gpg-agent.exe')
) {
this.agentPath = 'pageant'
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-telnet",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Telnet/socket connections for Tabby",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -1,3 +1,4 @@
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'
import colors from 'ansi-colors'
import { Component, Injector } from '@angular/core'
import { first } from 'rxjs'
@@ -54,7 +55,7 @@ export class TelnetTabComponent extends BaseTerminalTabComponent {
// Session was closed abruptly
if (!this.reconnectOffered) {
this.reconnectOffered = true
this.write(this.translate.instant('Press any key to reconnect') + '\r\n')
this.write(this.translate.instant(_('Press any key to reconnect')) + '\r\n')
this.input$.pipe(first()).subscribe(() => {
if (!this.session?.open && this.reconnectOffered) {
this.reconnect()
@@ -77,7 +78,7 @@ export class TelnetTabComponent extends BaseTerminalTabComponent {
this.setSession(session)
try {
this.startSpinner(this.translate.instant('Connecting'))
this.startSpinner(this.translate.instant(_('Connecting')))
this.attachSessionHandler(session.serviceMessage$, msg => {
this.write(`\r${colors.black.bgWhite(' Telnet ')} ${msg}\r\n`)
@@ -118,10 +119,10 @@ export class TelnetTabComponent extends BaseTerminalTabComponent {
return (await this.platform.showMessageBox(
{
type: 'warning',
message: this.translate.instant('Disconnect from {host}?', this.profile?.options),
message: this.translate.instant(_('Disconnect from {host}?'), this.profile?.options),
buttons: [
this.translate.instant('Disconnect'),
this.translate.instant('Do not close'),
this.translate.instant(_('Disconnect')),
this.translate.instant(_('Do not close')),
],
defaultId: 0,
cancelId: 1,

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-terminal",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Tabby's terminal emulation core",
"keywords": [
"tabby-builtin-plugin"
@@ -25,19 +25,15 @@
"hexer": "^1.5.0",
"ps-node": "^0.1.6",
"runes": "^0.4.2",
"xterm": "npm:@tabby-gang/xterm@^4.16.0",
"xterm": "npm:@tabby-gang/xterm@^4.17.1-beta.1",
"xterm-addon-fit": "^0.5.0",
"xterm-addon-ligatures": "^0.5.0",
"xterm-addon-search": "^0.8.2",
"xterm-addon-serialize": "^0.6.1",
"xterm-addon-unicode11": "^0.3.0",
"xterm-addon-webgl": "^0.11.4",
"xterm-addon-webgl": "^0.12.0-beta.24",
"zmodem.js": "^0.1.9"
},
"resolutions": {
"**/font-ligatures": "^1.4.1",
"**/opentype.js": "^1.3.1"
},
"peerDependencies": {
"@angular/animations": "^9.1.9",
"@angular/common": "^9.1.11",

View File

@@ -451,7 +451,7 @@ export class BaseTerminalTabComponent extends BaseTabComponent implements OnInit
{
type: 'warning',
detail: data,
message: this.translate.instant(`Paste multiple lines?`),
message: this.translate.instant('Paste multiple lines?'),
buttons,
defaultId: 0,
cancelId: 1,

View File

@@ -17,7 +17,7 @@ h3.mb-3(translate) Appearance
type='number',
max='48',
[(ngModel)]='config.store.terminal.fontSize',
(ngModelChange)='config.save()',
(ngModelChange)='fixFontSize(); config.save()',
)
.form-line

View File

@@ -42,4 +42,14 @@ export class AppearanceSettingsTabComponent {
this.config.requestRestart()
}
}
fixFontSize () {
this.config.store.terminal.fontSize = Math.min(
50,
Math.max(
5,
this.config.store.terminal.fontSize,
),
)
}
}

View File

@@ -28,7 +28,10 @@ div.mt-4
.form-line
.header
.title {{ "Use {altKeyName} as the Meta key"|translate:{altKeyName: altKeyName} }}
.title(
translate="Use {altKeyName} as the Meta key",
[translateParams]='{altKeyName: altKeyName}'
)
.description(translate) Lets the shell handle Meta key instead of OS
toggle(
[(ngModel)]='config.store.terminal.altIsMeta',

View File

@@ -58,7 +58,7 @@ font-finder@^1.0.3, font-finder@^1.1.0:
get-system-fonts "^2.0.0"
promise-stream-reader "^1.0.1"
font-ligatures@^1.4.0, font-ligatures@^1.4.1:
font-ligatures@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/font-ligatures/-/font-ligatures-1.4.1.tgz#e8c9df7cf6bee80c0cca4a9a578618c7b1f5d8de"
integrity sha512-7W6zlfyhvCqShZ5ReUWqmSd9vBaUudW0Hxis+tqUjtHhsPU+L3Grf8mcZAtCiXHTzorhwdRTId2WeH/88gdFkw==
@@ -94,13 +94,12 @@ minimist@^1.1.0:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
opentype.js@^0.8.0, opentype.js@^1.3.1:
version "1.3.4"
resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.4.tgz#1c0e72e46288473cc4a4c6a2dc60fd7fe6020d77"
integrity sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==
opentype.js@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-0.8.0.tgz#acabcfa1642fbe894a3e4d759e43ba694e02bd35"
integrity sha1-rKvPoWQvvolKPk11nkO6aU4CvTU=
dependencies:
string.prototype.codepointat "^0.2.1"
tiny-inflate "^1.0.3"
tiny-inflate "^1.0.2"
printj@~1.1.0:
version "1.1.2"
@@ -129,11 +128,6 @@ runes@^0.4.2:
resolved "https://registry.yarnpkg.com/runes/-/runes-0.4.3.tgz#32f7738844bc767b65cc68171528e3373c7bb355"
integrity sha512-K6p9y4ZyL9wPzA+PMDloNQPfoDGTiFYDvdlXznyGKgD10BJpcAosvATKrExRKOrNLgD8E7Um7WGW0lxsnOuNLg==
string.prototype.codepointat@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc"
integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==
table-parser@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/table-parser/-/table-parser-0.1.3.tgz#0441cfce16a59481684c27d1b5a67ff15a43c7b0"
@@ -141,7 +135,7 @@ table-parser@^0.1.3:
dependencies:
connected-domain "^1.0.0"
tiny-inflate@^1.0.3:
tiny-inflate@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4"
integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==
@@ -157,12 +151,12 @@ xterm-addon-fit@^0.5.0:
integrity sha512-DsS9fqhXHacEmsPxBJZvfj2la30Iz9xk+UKjhQgnYNkrUIN5CYLbw7WEfz117c7+S86S/tpHPfvNxJsF5/G8wQ==
xterm-addon-ligatures@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/xterm-addon-ligatures/-/xterm-addon-ligatures-0.5.1.tgz#40ff69c43b6406aaf130fdfe9a43ca4eac49f892"
integrity sha512-L70vyVAapDvBBti1bqFTUQOd6R6LH5qKzqZ76sERKkf75+u++sylqflCdwT8zmorK6zxcc3vq4+I4GDYawgYrQ==
version "0.5.2"
resolved "https://registry.yarnpkg.com/xterm-addon-ligatures/-/xterm-addon-ligatures-0.5.2.tgz#b822487a59f73b734d95aecd24167a83adff5828"
integrity sha512-VhBc6fa7Tnl9w5bQpYscgjKgy87v9Aysm4jRcPxWTHwVa9YUpEYjSmg9V7LvCUkCTRH9zvFiw3qZMZYsdeeg6Q==
dependencies:
font-finder "^1.1.0"
font-ligatures "^1.4.0"
font-ligatures "^1.4.1"
xterm-addon-search@^0.8.2:
version "0.8.2"
@@ -179,15 +173,15 @@ xterm-addon-unicode11@^0.3.0:
resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.3.0.tgz#e4435c3c91a5294a7eb8b79c380acbb28a659463"
integrity sha512-x5fHDZT2j9tlTlHnzPHt++9uKZ2kJ/lYQOj3L6xJA22xoJsS8UQRw/5YIFg2FUHqEAbV77Z1fZij/9NycMSH/A==
xterm-addon-webgl@^0.11.4:
version "0.11.4"
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.11.4.tgz#e22f3ec0cafca3d4adcabb89bb7c16efaaf3c8db"
integrity sha512-/a/VFeftc+etGXQYWaaks977j1P7/wickBXn15zDxZzXYYMT9RN17ztqyIDVLXg9krtg28+icKK6lvgIYghJ0w==
xterm-addon-webgl@^0.12.0-beta.24:
version "0.12.0-beta.24"
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0-beta.24.tgz#5c17256933991856554c95c9bd1eaab42e9727a0"
integrity sha512-+wZxKReEOlfN9JRHyikoffA6Do61/THR7QY35ajkQo0lLutKr6hTd/TLTuZh0PhFVelgTgudpXqlP++Lc0WFIA==
"xterm@npm:@tabby-gang/xterm@^4.16.0":
version "4.16.0"
resolved "https://registry.yarnpkg.com/@tabby-gang/xterm/-/xterm-4.16.0.tgz#5706adc800aa515d3ae214cba9ceec670500735d"
integrity sha512-TeEhVmMtbkLyUIELHhWO39oxvD/KG7ZTLlx/OyDRXAeU6FoZFRATBKa8S70teJkyZ0yDgy8QZlRyx0HdRIIoyA==
"xterm@npm:@tabby-gang/xterm@^4.17.1-beta.1":
version "4.17.1-beta.1"
resolved "https://registry.yarnpkg.com/@tabby-gang/xterm/-/xterm-4.17.1-beta.1.tgz#c24d507362c052491ca7ef1cb26445b9b1417942"
integrity sha512-nQNMhU7rBZTDv/0V+9UHxCjCCuEZNGftg+2/FiWrZxa1Tl5cWYFvlpMAB+O4drBJPTpkKJUKmDDdKKnbqlxnRg==
yallist@^4.0.0:
version "4.0.0"

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-web-demo",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"scripts": {

View File

@@ -1,6 +1,6 @@
{
"name": "tabby-web",
"version": "1.0.170-nightly.0",
"version": "1.0.171-nightly.3",
"description": "Web-specific bindings",
"keywords": [
"tabby-builtin-plugin"

View File

@@ -30,7 +30,8 @@
"paths": {
"*": [
"../node_modules/*",
"../../app/node_modules/*"
"../../app/node_modules/*",
"./app/node_modules/*"
],
"common*": [
"../../tabby-terminal/node_modules/xterm/src/common*"

View File

@@ -27,6 +27,9 @@ window['bootstrapTabby'] = async function bootstrap (options: BootstrapOptions):
const pluginModules = []
for (const packageModule of options.packageModules) {
if (!packageModule.default) {
continue
}
const pluginModule = packageModule.default.forRoot ? packageModule.default.forRoot() : packageModule.default
pluginModule.pluginName = packageModule.pluginName
pluginModule.bootstrap = packageModule.bootstrap

View File

@@ -20,5 +20,5 @@
"scripts": {
"postinstall": "patch-package"
},
"version": "1.0.170-nightly.0"
"version": "1.0.171-nightly.3"
}

View File

@@ -68,6 +68,7 @@ Tabby.registerMock('tty', { isatty: () => false })
Tabby.registerMock('child_process', {})
Tabby.registerMock('readable-stream', {})
Tabby.registerMock('os', {
arch: () => 'web',
platform: () => 'web',
homedir: () => '/home',
})
@@ -90,6 +91,7 @@ Tabby.registerMock('keytar', {
getPassword: () => null,
})
Tabby.registerMock('@serialport/bindings', {})
Tabby.registerMock('@serialport/bindings-cpp', {})
Tabby.registerModule('net', {
Socket: SocketProxy,
@@ -135,6 +137,7 @@ Tabby.registerModule('ngx-toastr', require('ngx-toastr'))
Tabby.registerModule('deepmerge', require('deepmerge'))
Tabby.registerModule('rxjs', require('rxjs'))
Tabby.registerModule('rxjs/operators', require('rxjs'))
Tabby.registerModule('string_decoder', require('string_decoder'))
Tabby.registerModule('js-yaml', require('js-yaml'))
Tabby.registerModule('zone.js/dist/zone.js', require('zone.js/dist/zone.js'))

View File

@@ -102,6 +102,7 @@ module.exports = options => {
externals: [
'@electron/remote',
'@serialport/bindings',
'@serialport/bindings-cpp',
'any-promise',
'child_process',
'electron-promise-ipc',

402
yarn.lock
View File

@@ -14,6 +14,15 @@
dependencies:
tslib "^2.2.0"
"@angular/cdk@^12.2.9":
version "12.2.13"
resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-12.2.13.tgz#1fdbe814adfd6b4ff906c6d9c4c6df07b83f09d8"
integrity sha512-zSKRhECyFqhingIeyRInIyTvYErt4gWo+x5DQr0b7YLUbU8DZSwWnG4w76Ke2s4U8T7ry1jpJBHoX/e8YBpGMg==
dependencies:
tslib "^2.2.0"
optionalDependencies:
parse5 "^5.0.0"
"@angular/common@^12.0.0":
version "12.1.1"
resolved "https://registry.yarnpkg.com/@angular/common/-/common-12.1.1.tgz#34f63b339570699e1ba6968fd0afdee0cbd66fe3"
@@ -123,22 +132,6 @@
dependencies:
tslib "^1.9.0"
"@biesbjerg/ngx-translate-extract@^7.0.4":
version "7.0.4"
resolved "https://registry.yarnpkg.com/@biesbjerg/ngx-translate-extract/-/ngx-translate-extract-7.0.4.tgz#98190aa798dfe78a9f33904256891e76634fd52c"
integrity sha512-33hR94Fu26LK7Z+ImW2IdZiHfOcAzyIs1CdkUXg/536z2MqxBYqPoI9Ghsk6RTEfnsGa65wMgOcDXn7Ilhp8ew==
dependencies:
"@phenomnomnominal/tsquery" "^4.1.1"
boxen "^5.0.1"
colorette "^1.2.2"
flat "^5.0.2"
gettext-parser "^4.0.4"
glob "^7.1.6"
mkdirp "^1.0.4"
path "^0.12.7"
terminal-link "^2.1.1"
yargs "^16.2.0"
"@develar/schema-utils@~2.6.5":
version "2.6.5"
resolved "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz"
@@ -194,10 +187,10 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
"@fortawesome/fontawesome-free@^6.0.0-beta3":
version "6.0.0-beta3"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.0.0-beta3.tgz#120e4a158a0de983924ce151bc35f27de46398b7"
integrity sha512-4SqOuhC8tSLeQvbW1nDmq6T7+8vdSgHy/w7PRwCFzMQCbKuYFIir/3UuWsV1QblX1lt7SGlSgwbaCv9XhRt8HA==
"@fortawesome/fontawesome-free@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.0.0.tgz#6f3bd8e42997c7d536a1246877ed8bcd4f005a54"
integrity sha512-6LB4PYBST1Rx40klypw1SmSDArjFOcfBf2LeX9Zg5EKJT2eXiyiJq+CyBYKeXyK0sXS2FsCJWSPr/luyhuvh0Q==
"@gar/promisify@^1.0.1":
version "1.1.2"
@@ -286,13 +279,6 @@
mkdirp "^1.0.4"
rimraf "^3.0.2"
"@phenomnomnominal/tsquery@^4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz#42971b83590e9d853d024ddb04a18085a36518df"
integrity sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==
dependencies:
esquery "^1.0.1"
"@polka/url@^1.0.0-next.9":
version "1.0.0-next.12"
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28"
@@ -308,14 +294,14 @@
"@sentry/utils" "6.7.1"
tslib "^1.9.3"
"@sentry/cli@^1.71.0":
version "1.71.0"
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.71.0.tgz#1e33e05d7651b68f501764ab24dce3d5932b195d"
integrity sha512-Z8TzH7PkiRfjWSzjXOfPWWp6wxjr+n39Jdrt26OcInVQZM1sx/gZULrDiQZ1L2dy9Fe9AR4SF4nt2/7h2GmLQQ==
"@sentry/cli@^1.72.1":
version "1.72.1"
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.72.1.tgz#3e83e6ffad0a95bf5a6568dc9a4432c8b71c4ca5"
integrity sha512-SCh32bMYnkCZd4Old/GjArnjtyt3PuQXC6fOmBqKWPpvi56H3rYYjrT0FVxRRu8ovU2Qws1AhPdUbLPOEEj8lQ==
dependencies:
https-proxy-agent "^5.0.0"
mkdirp "^0.5.5"
node-fetch "^2.6.0"
node-fetch "^2.6.7"
npmlog "^4.1.2"
progress "^2.0.3"
proxy-from-env "^1.1.0"
@@ -437,6 +423,11 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
"@tootallnate/once@2":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
"@types/babel-types@*", "@types/babel-types@^7.0.0":
version "7.0.9"
resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.9.tgz#01d7b86949f455402a94c788883fe4ba574cad41"
@@ -506,20 +497,21 @@
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
"@types/fs-extra@^9.0.1", "@types/fs-extra@^9.0.12":
version "9.0.12"
resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.12.tgz#9b8f27973df8a7a3920e8461517ebf8a7d4fdfaf"
integrity sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==
dependencies:
"@types/node" "*"
"@types/fs-extra@^9.0.11":
"@types/fs-extra@^9.0.1", "@types/fs-extra@^9.0.11", "@types/fs-extra@^9.0.13":
version "9.0.13"
resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45"
integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==
dependencies:
"@types/node" "*"
"@types/glob@5 - 7":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
dependencies:
"@types/minimatch" "*"
"@types/node" "*"
"@types/glob@^7.1.1":
version "7.1.3"
resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz"
@@ -585,6 +577,11 @@
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
"@types/parse5@^5":
version "5.0.3"
resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109"
integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==
"@types/plist@^3.0.1":
version "3.0.2"
resolved "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz"
@@ -993,13 +990,6 @@ ansi-colors@^4.1.1:
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
ansi-escapes@^4.2.1:
version "4.3.2"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
dependencies:
type-fest "^0.21.3"
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -1059,10 +1049,10 @@ app-builder-bin@3.7.1:
resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.7.1.tgz#cb0825c5e12efc85b196ac3ed9c89f076c61040e"
integrity sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==
app-builder-lib@22.14.5:
version "22.14.5"
resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.5.tgz#a61a50b132b858e98fdc70b6b88994ae99b4f96d"
integrity sha512-k3VwKP4kpsnUaXoUkm1s4zaSHPHIMFnN4kPMU9yXaKmE1LfHHqBaEah5bXeTAX5V/BC41wFdg8CF5vOjvgy8Rg==
app-builder-lib@22.14.13:
version "22.14.13"
resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.13.tgz#c1f5b6afc86596357598bb90b69eef06c7c2eeb3"
integrity sha512-SufmrtxU+D0Tn948fjEwAOlCN9757UXLkzzTWXMwZKR/5hisvgqeeBepWfphMIE6OkDGz0fbzEhL1P2Pty4XMg==
dependencies:
"7zip-bin" "~5.1.1"
"@develar/schema-utils" "~2.6.5"
@@ -1070,13 +1060,13 @@ app-builder-lib@22.14.5:
"@malept/flatpak-bundler" "^0.4.0"
async-exit-hook "^2.0.1"
bluebird-lst "^1.0.9"
builder-util "22.14.5"
builder-util-runtime "8.9.1"
builder-util "22.14.13"
builder-util-runtime "8.9.2"
chromium-pickle-js "^0.2.0"
debug "^4.3.2"
ejs "^3.1.6"
electron-osx-sign "^0.5.0"
electron-publish "22.14.5"
electron-publish "22.14.13"
form-data "^4.0.0"
fs-extra "^10.0.0"
hosted-git-info "^4.0.2"
@@ -1269,12 +1259,12 @@ aws4@^1.2.1, aws4@^1.8.0:
resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz"
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
axios@^0.21.2:
version "0.21.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.2.tgz#21297d5084b2aeeb422f5d38e7be4fbb82239017"
integrity sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==
axios@^0.25.0:
version "0.25.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.25.0.tgz#349cfbb31331a9b4453190791760a8d35b093e0a"
integrity sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==
dependencies:
follow-redirects "^1.14.0"
follow-redirects "^1.14.7"
babel-runtime@^6.26.0:
version "6.26.0"
@@ -1427,20 +1417,6 @@ boxen@^5.0.0:
widest-line "^3.1.0"
wrap-ansi "^7.0.0"
boxen@^5.0.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50"
integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==
dependencies:
ansi-align "^3.0.0"
camelcase "^6.2.0"
chalk "^4.1.0"
cli-boxes "^2.2.1"
string-width "^4.2.2"
type-fest "^0.20.2"
widest-line "^3.1.0"
wrap-ansi "^7.0.0"
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -1553,29 +1529,31 @@ buffer@^5.1.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
builder-util-runtime@8.9.1:
version "8.9.1"
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz#25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a"
integrity sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg==
builder-util-runtime@8.9.2:
version "8.9.2"
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz#a9669ae5b5dcabfe411ded26678e7ae997246c28"
integrity sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A==
dependencies:
debug "^4.3.2"
sax "^1.2.4"
builder-util@22.14.5:
version "22.14.5"
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.5.tgz#42a18608d2a566c0846e91266464776c8bfb0cc9"
integrity sha512-zqIHDFJwmA7jV7SC9aI+33MWwT2mWoijH+Ol9IntNAwuuRXoS+7XeJwnhLBXOhcDBzXT4kDzHnRk4JKeaygEYA==
builder-util@22.14.13:
version "22.14.13"
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.13.tgz#41b5b7b4ee53aff4e09cc007fb144522598f3ce6"
integrity sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA==
dependencies:
"7zip-bin" "~5.1.1"
"@types/debug" "^4.1.6"
"@types/fs-extra" "^9.0.11"
app-builder-bin "3.7.1"
bluebird-lst "^1.0.9"
builder-util-runtime "8.9.1"
builder-util-runtime "8.9.2"
chalk "^4.1.1"
cross-spawn "^7.0.3"
debug "^4.3.2"
fs-extra "^10.0.0"
http-proxy-agent "^5.0.0"
https-proxy-agent "^5.0.0"
is-ci "^3.0.0"
js-yaml "^4.1.0"
source-map-support "^0.5.19"
@@ -2158,10 +2136,10 @@ core-js@^2.4.0:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-js@^3.18.2:
version "3.18.2"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.2.tgz#63a551e8a29f305cd4123754846e65896619ba5b"
integrity sha512-zNhPOUoSgoizoSQFdX1MeZO16ORRb9FFQLts8gSYbZU5FcgXhp24iMWMxnOQo5uIaIG7/6FA/IqJPwev1o9ZXQ==
core-js@^3.20.3:
version "3.20.3"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.3.tgz#c710d0a676e684522f3db4ee84e5e18a9d11d69a"
integrity sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
@@ -2287,7 +2265,7 @@ css-loader@^6.5.1:
postcss-value-parser "^4.1.0"
semver "^7.3.5"
css-selector-parser@^1.1.0:
css-selector-parser@^1.1.0, css-selector-parser@^1.3:
version "1.4.1"
resolved "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz"
integrity sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==
@@ -2486,14 +2464,14 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
dmg-builder@22.14.5:
version "22.14.5"
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.5.tgz#137c0b55e639badcc0b119eb060e6fa4ed61d948"
integrity sha512-1GvFGQE332bvPamcMwZDqWqfWfJTyyDLOsHMcGi0zs+Jh7JOn6/zuBkHJIWHdsj2QJbhzLVyd2/ZqttOKv7I8w==
dmg-builder@22.14.13:
version "22.14.13"
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.13.tgz#cc613f3c18e889b8777d525991fd52f50a564f8c"
integrity sha512-xNOugB6AbIRETeU2uID15sUfjdZZcKdxK8xkFnwIggsM00PJ12JxpLNPTjcRoUnfwj3WrPjilrO64vRMwNItQg==
dependencies:
app-builder-lib "22.14.5"
builder-util "22.14.5"
builder-util-runtime "8.9.1"
app-builder-lib "22.14.13"
builder-util "22.14.13"
builder-util-runtime "8.9.2"
fs-extra "^10.0.0"
iconv-lite "^0.6.2"
js-yaml "^4.1.0"
@@ -2604,17 +2582,17 @@ ejs@^3.1.6:
dependencies:
jake "^10.6.1"
electron-builder@^22.14.5:
version "22.14.5"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.5.tgz#3a25547bd4fe3728d4704da80956a794c5c31496"
integrity sha512-N73hSbXFz6Mz5Z6h6C5ly6CB+dUN6k1LuCDJjI8VF47bMXv/QE0HE+Kkb0GPKqTqM7Hsk/yIYX+kHCfSkR5FGg==
electron-builder@^22.14.13:
version "22.14.13"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.13.tgz#fd40564685cf5422a8f8d667940af3d3776f4fb8"
integrity sha512-3fgLxqF2TXVKiUPeg74O4V3l0l3j7ERLazo8sUbRkApw0+4iVAf2BJkHsHMaXiigsgCoEzK/F4/rB5rne/VAnw==
dependencies:
"@types/yargs" "^17.0.1"
app-builder-lib "22.14.5"
builder-util "22.14.5"
builder-util-runtime "8.9.1"
app-builder-lib "22.14.13"
builder-util "22.14.13"
builder-util-runtime "8.9.2"
chalk "^4.1.1"
dmg-builder "22.14.5"
dmg-builder "22.14.13"
fs-extra "^10.0.0"
is-ci "^3.0.0"
lazy-val "^1.0.5"
@@ -2725,14 +2703,14 @@ electron-osx-sign@^0.5.0:
minimist "^1.2.0"
plist "^3.0.1"
electron-publish@22.14.5:
version "22.14.5"
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.5.tgz#34bcdce671f0e651330db20040d6919c77c94bd6"
integrity sha512-h+NANRdaA0PqGF15GKvorseWPzh1PXa/zx4I37//PIokW8eKIov8ky23foUSb55ZFWUHGpxQJux7y2NCfBtQeg==
electron-publish@22.14.13:
version "22.14.13"
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.13.tgz#8b71e6975af8cc6ac5b21f293ade23f8704047c7"
integrity sha512-0oP3QiNj3e8ewOaEpEJV/o6Zrmy2VarVvZ/bH7kyO/S/aJf9x8vQsKVWpsdmSiZ5DJEHgarFIXrnO0ZQf0P9iQ==
dependencies:
"@types/fs-extra" "^9.0.11"
builder-util "22.14.5"
builder-util-runtime "8.9.1"
builder-util "22.14.13"
builder-util-runtime "8.9.2"
chalk "^4.1.1"
fs-extra "^10.0.0"
lazy-val "^1.0.5"
@@ -2763,10 +2741,10 @@ electron-to-chromium@^1.3.723:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.736.tgz#f632d900a1f788dab22fec9c62ec5c9c8f0c4052"
integrity sha512-DY8dA7gR51MSo66DqitEQoUMQ0Z+A2DSXFi7tK304bdTVqczCAfUuyQw6Wdg8hIoo5zIxkU1L24RQtUce1Ioig==
electron@16.0.8:
version "16.0.8"
resolved "https://registry.yarnpkg.com/electron/-/electron-16.0.8.tgz#7ebd3e23c4883c239f53d8b7af1100f455ac8a02"
integrity sha512-znTVkl8LaGcPNdfc6SRr+6LYg2GtSCKXln/nW/PC+urBfAFnOYIuDock8QyGVFfzr5PuAa+g8YQQAboHV77D7g==
electron@17.0.0:
version "17.0.0"
resolved "https://registry.yarnpkg.com/electron/-/electron-17.0.0.tgz#60f00f3e3c657020e807a519700213943468b4d1"
integrity sha512-3UXcBQMwbMWdPvGHaSdPMluHrd+/bc+K143MyvE5zVZ+S1XCHt4sau7dj6svJHns5llN0YG/c6h/vRfadIp8Zg==
dependencies:
"@electron/get" "^1.13.0"
"@types/node" "^14.6.2"
@@ -3072,7 +3050,7 @@ esprima@^4.0.0:
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
esquery@^1.0.1, esquery@^1.4.0:
esquery@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
@@ -3309,11 +3287,6 @@ flat-cache@^3.0.4:
flatted "^3.1.0"
rimraf "^3.0.2"
flat@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
flatted@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
@@ -3327,7 +3300,7 @@ flush-write-stream@^1.0.0:
inherits "^2.0.1"
readable-stream "^2.0.4"
follow-redirects@^1.14.0:
follow-redirects@^1.14.7:
version "1.14.7"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
@@ -3614,7 +3587,20 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
gettext-parser@^4.0.3, gettext-parser@^4.0.4:
gettext-extractor@^3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/gettext-extractor/-/gettext-extractor-3.5.3.tgz#6ed46931c154a7485a80fa8b91b835ff7b8d0411"
integrity sha512-9EgJ+hmbtAbATdMIvCj4WnrkeDWH6fv1z+IJJ1XCxdcUMGx6JQdVVFTdzJkSyIHh4td53ngoB5EQbavbKJU9Og==
dependencies:
"@types/glob" "5 - 7"
"@types/parse5" "^5"
css-selector-parser "^1.3"
glob "5 - 7"
parse5 "5 - 6"
pofile "1.0.x"
typescript "2 - 4"
gettext-parser@^4.0.3:
version "4.2.0"
resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-4.2.0.tgz#9327140f76b122d44f0e8cb9338fd855667d9434"
integrity sha512-aMgPyjC9W5Mz9tbFU8DcQ7GYMXoFWq633kaWGt4imlcpBWzDIWk7HY7nCSZTCJxyjRaLq9L/NEjMKkZ9gR630Q==
@@ -3636,7 +3622,7 @@ glob-to-regexp@^0.4.1:
resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0:
"glob@5 - 7", glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
@@ -4014,6 +4000,15 @@ http-proxy-agent@^4.0.1:
agent-base "6"
debug "4"
http-proxy-agent@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
dependencies:
"@tootallnate/once" "2"
agent-base "6"
debug "4"
http-signature@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
@@ -4169,11 +4164,6 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0,
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
inherits@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
ini@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
@@ -5075,13 +5065,6 @@ lru-cache@^4.0.1:
pseudomap "^1.0.2"
yallist "^2.1.2"
lru-cache@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
dependencies:
yallist "^3.0.2"
lru-cache@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
@@ -5183,10 +5166,10 @@ map-obj@^4.0.0:
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7"
integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==
marked@^3.0.8:
version "3.0.8"
resolved "https://registry.yarnpkg.com/marked/-/marked-3.0.8.tgz#2785f0dc79cbdc6034be4bb4f0f0a396bd3f8aeb"
integrity sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==
marked@^4.0.10:
version "4.0.10"
resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.10.tgz#423e295385cc0c3a70fa495e0df68b007b879423"
integrity sha512-+QvuFj0nGgO970fySghXGmuw+Fd0gD2x3+MqCWLIPf5oxdv1Ka6b2q+z9RP01P/IaKPMEramy+7cNy/Lw8c3hw==
matcher@^3.0.0:
version "3.0.0"
@@ -5504,10 +5487,10 @@ no-case@^3.0.4:
lower-case "^2.0.2"
tslib "^2.0.3"
node-abi@^3.0.0, node-abi@^3.2.0, node-abi@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.5.0.tgz#26e8b7b251c3260a5ac5ba5aef3b4345a0229248"
integrity sha512-LtHvNIBgOy5mO8mPEUtkCW/YCRWYEKshIvqhe1GHHyXEHEB5mgICyYnAcl4qan3uFeRROErKGzatFHPf6kDxWw==
node-abi@^3.0.0, node-abi@^3.5.0, node-abi@^3.8.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.8.0.tgz#679957dc8e7aa47b0a02589dbfde4f77b29ccb32"
integrity sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==
dependencies:
semver "^7.3.5"
@@ -5537,7 +5520,7 @@ node-fetch-npm@^2.0.1:
json-parse-helpfulerror "^1.0.3"
safe-buffer "^5.0.1"
node-fetch@^2.6.0:
node-fetch@^2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
@@ -5976,13 +5959,6 @@ onetime@^5.1.0, onetime@^5.1.2:
dependencies:
mimic-fn "^2.1.0"
onigasm@^2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.5.tgz#cc4d2a79a0fa0b64caec1f4c7ea367585a676892"
integrity sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==
dependencies:
lru-cache "^5.1.1"
open@^7.4.2:
version "7.4.2"
resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
@@ -6237,11 +6213,16 @@ parse-json@^5.0.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
parse5@^6.0.1:
"parse5@5 - 6", parse5@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
parse5@^5.0.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
pascal-case@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
@@ -6330,14 +6311,6 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
path@^0.12.7:
version "0.12.7"
resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f"
integrity sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=
dependencies:
process "^0.11.1"
util "^0.10.3"
pbkdf2@^3.0.3:
version "3.1.2"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
@@ -6421,6 +6394,11 @@ po-gettext-loader@^1.0.0:
dependencies:
gettext-parser "^4.0.3"
pofile@1.0.x:
version "1.0.11"
resolved "https://registry.yarnpkg.com/pofile/-/pofile-1.0.11.tgz#35aff58c17491d127a07336d5522ebc9df57c954"
integrity sha512-Vy9eH1dRD9wHjYt/QqXcTz+RnX/zg53xK+KljFSX30PvdDMb2z+c6uDUeblUGqqJgz3QFsdlA0IJvHziPmWtQg==
postcss-modules-extract-imports@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
@@ -6499,11 +6477,6 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
process@^0.11.1:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
progress-stream@^1.1.0:
version "1.2.0"
resolved "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz"
@@ -7482,13 +7455,13 @@ shelljs@0.8.5:
interpret "^1.0.0"
rechoir "^0.6.2"
shiki@^0.9.12:
version "0.9.12"
resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.9.12.tgz#70cbc8c1bb78ff7b356f84a7eecdb040efddd247"
integrity sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw==
shiki@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.10.0.tgz#85f21ecfa95b377ff64db6c71442c22c220e9540"
integrity sha512-iczxaIYeBFHTFrQPb9DVy2SKgYxC4Wo7Iucm7C17cCh2Ge/refnvHscUOxM85u57MfLoNOtjoEFUWt9gBexblA==
dependencies:
jsonc-parser "^3.0.0"
onigasm "^2.2.5"
vscode-oniguruma "^1.6.1"
vscode-textmate "5.2.0"
side-channel@^1.0.3, side-channel@^1.0.4:
@@ -7723,10 +7696,10 @@ sprintf-js@~1.0.2:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
ssh2@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.5.0.tgz#4dc559ba98a1cbb420e8d42998dfe35d0eda92bc"
integrity sha512-iUmRkhH9KGeszQwDW7YyyqjsMTf4z+0o48Cp4xOwlY5LjtbIAvyd3fwnsoUZW/hXmTCRA3yt7S/Jb9uVjErVlA==
ssh2@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.6.0.tgz#61aebc3a6910fe488f9c85cd8355bdf8d4724e05"
integrity sha512-lxc+uvXqOxyQ99N2M7k5o4pkYDO5GptOTYduWw7hIM41icxvoBcCNHcj+LTKrjkL0vFcAl+qfZekthoSFRJn2Q==
dependencies:
asn1 "^0.2.4"
bcrypt-pbkdf "^1.0.2"
@@ -7840,7 +7813,7 @@ string-width@^4.2.0:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.0"
string-width@^4.2.2, string-width@^4.2.3:
string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -7996,7 +7969,7 @@ supports-color@^5.3.0:
dependencies:
has-flag "^3.0.0"
supports-color@^7.0.0, supports-color@^7.1.0:
supports-color@^7.1.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
@@ -8010,14 +7983,6 @@ supports-color@^8.0.0:
dependencies:
has-flag "^4.0.0"
supports-hyperlinks@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb"
integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==
dependencies:
has-flag "^4.0.0"
supports-color "^7.0.0"
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
@@ -8115,14 +8080,6 @@ term-size@^1.2.0:
dependencies:
execa "^0.7.0"
terminal-link@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
dependencies:
ansi-escapes "^4.2.1"
supports-hyperlinks "^2.0.0"
terser-webpack-plugin@^5.1.3:
version "5.1.3"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.3.tgz#30033e955ca28b55664f1e4b30a1347e61aa23af"
@@ -8383,11 +8340,6 @@ type-fest@^0.20.2:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
type-fest@^0.21.3:
version "0.21.3"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
type-fest@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
@@ -8410,16 +8362,21 @@ typedarray@^0.0.6:
resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typedoc@^0.22.10:
version "0.22.10"
resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.10.tgz#221e1a2b17bcb71817ef027dc4c4969d572e7620"
integrity sha512-hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==
typedoc@^0.22.11:
version "0.22.11"
resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.11.tgz#a3d7f4577eef9fc82dd2e8f4e2915e69f884c250"
integrity sha512-pVr3hh6dkS3lPPaZz1fNpvcrqLdtEvXmXayN55czlamSgvEjh+57GUqfhAI1Xsuu/hNHUT1KNSx8LH2wBP/7SA==
dependencies:
glob "^7.2.0"
lunr "^2.3.9"
marked "^3.0.8"
marked "^4.0.10"
minimatch "^3.0.4"
shiki "^0.9.12"
shiki "^0.10.0"
"typescript@2 - 4":
version "4.5.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
typescript@^4.3.5:
version "4.3.5"
@@ -8587,13 +8544,6 @@ util-extend@^1.0.1:
resolved "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz"
integrity sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=
util@^0.10.3:
version "0.10.4"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
dependencies:
inherits "2.0.3"
utils-decorators@^1.10.4:
version "1.10.4"
resolved "https://registry.yarnpkg.com/utils-decorators/-/utils-decorators-1.10.4.tgz#df3482fdddf127ca6db7ac58e0d3a19c99678bf1"
@@ -8655,6 +8605,11 @@ void-elements@^3.1.0:
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09"
integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=
vscode-oniguruma@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz#2bf4dfcfe3dd2e56eb549a3068c8ee39e6c30ce5"
integrity sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==
vscode-textmate@5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e"
@@ -8726,10 +8681,10 @@ webpack-sources@^3.2.3:
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
webpack@^5.67.0:
version "5.67.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.67.0.tgz#cb43ca2aad5f7cc81c4cd36b626e6b819805dbfd"
integrity sha512-LjFbfMh89xBDpUMgA1W9Ur6Rn/gnr2Cq1jjHFPo4v6a79/ypznSYbAyPgGhwsxBtMIaEmDD1oJoA7BEYw/Fbrw==
webpack@^5.68.0:
version "5.68.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.68.0.tgz#a653a58ed44280062e47257f260117e4be90d560"
integrity sha512-zUcqaUO0772UuuW2bzaES2Zjlm/y3kRBQDVFVCge+s2Y8mwuUTdperGaAv65/NtRL/1zanpSJOq/MD8u61vo6g==
dependencies:
"@types/eslint-scope" "^3.7.0"
"@types/estree" "^0.0.50"
@@ -9005,11 +8960,6 @@ yallist@^2.1.2:
resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
yallist@^3.0.2:
version "3.1.1"
resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
@@ -9036,11 +8986,6 @@ yargs-parser@^18.1.2:
camelcase "^5.0.0"
decamelize "^1.2.0"
yargs-parser@^20.2.2:
version "20.2.4"
resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz"
integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
yargs-parser@^20.2.3:
version "20.2.9"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
@@ -9093,19 +9038,6 @@ yargs@^15.0.1:
y18n "^4.0.0"
yargs-parser "^18.1.2"
yargs@^16.2.0:
version "16.2.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
dependencies:
cliui "^7.0.2"
escalade "^3.1.1"
get-caller-file "^2.0.5"
require-directory "^2.1.1"
string-width "^4.2.0"
y18n "^5.0.5"
yargs-parser "^20.2.2"
yargs@^17.0.1, yargs@^17.2.1:
version "17.3.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9"