diff --git a/.eslintignore b/.eslintignore index 75811c9f..9168fb86 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,9 +1,10 @@ test/* src/Typings/* src/Lib/**/* -outs/**/* +out/**/* scripts/* src/Components/Functions/log.ts gruntfile.js docs/**/* -packages/**/* \ No newline at end of file +packages/**/* +*.config.js \ No newline at end of file diff --git a/.eslintrc.yml b/.eslintrc.yml index d07b8151..a20cff40 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -10,4 +10,8 @@ parserOptions: sourceType: module plugins: - '@typescript-eslint' -rules: { '@typescript-eslint/no-var-requires': 0 } +rules: + { + '@typescript-eslint/no-var-requires': 0, + '@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_', caughtErrorsIgnorePattern: '^_' }], + } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1c4c1f37..5c956f86 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,70 +1,46 @@ -name: Build - +name: 'publish' on: push: branches: [master] -jobs: - build-win: - runs-on: windows-latest - - strategy: - matrix: - node-version: [14.x] +jobs: + empty-draft: + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - - name: Use Node.js - uses: actions/setup-node@v2 - with: - cache: 'npm' - - - name: Update npm - run: npm install --global npm@latest - - - name: Patch node-gyp to support Visual Studio 2019 - shell: powershell - run: | - npm install --global node-gyp@latest - npm prefix -g | % {npm config set node_gyp "$_\node_modules\node-gyp\bin\node-gyp.js"} - - run: yarn install --frozen-lockfile - - name: Build on Windows + - name: Empty drafts + uses: hugo19941994/delete-draft-releases@v1.0.0 env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} - run: yarn build --publish=always - - build-mac: - runs-on: macos-latest + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + publish-tauri: strategy: + fail-fast: false matrix: - node-version: [14.x] + platform: [macos-latest, ubuntu-latest, windows-latest] + runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + - name: setup node + uses: actions/setup-node@v1 with: - node-version: ${{ matrix.node-version }} - - run: yarn install --frozen-lockfile - - name: Build on macOS - env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} - run: yarn build --publish=always - - build-linux: - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [14.x] - - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + node-version: 12 + - name: install Rust stable + uses: actions-rs/toolchain@v1 with: - node-version: ${{ matrix.node-version }} - - run: yarn install --frozen-lockfile - - name: Build on Linux + toolchain: stable + - name: install webkit2gtk (ubuntu only) + if: matrix.platform == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y webkit2gtk-4.0 + - name: install app dependencies and build it + run: yarn && yarn build + - uses: tauri-apps/tauri-action@v0 env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} - run: yarn build --publish=always + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + with: + tagName: app-v__VERSION__ + releaseName: 'App v__VERSION__' + releaseBody: 'See the assets to download this version and install.' + releaseDraft: true + prerelease: false diff --git a/.github/workflows/jest.yml b/.github/workflows/jest.yml index e21003f3..bf43e1ac 100644 --- a/.github/workflows/jest.yml +++ b/.github/workflows/jest.yml @@ -1,39 +1,35 @@ name: Jest -on: - push: - branches: [master] - pull_request: - branches: [master] +on: [push, pull_request] jobs: - jest-mac: - runs-on: macos-latest + jest-mac: + runs-on: macos-latest - strategy: - matrix: - node-version: [14.x, 15.x] + strategy: + matrix: + node-version: [16.x] - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - - run: yarn install - - run: yarn test - jest-linux: - runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + - run: yarn install + - run: yarn test + jest-linux: + runs-on: ubuntu-latest - strategy: - matrix: - node-version: [14.x, 15.x] + strategy: + matrix: + node-version: [16.x] - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - - run: rm -rf node_modules && yarn install - - run: yarn test + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + - run: rm -rf node_modules && yarn install + - run: yarn test diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 91f1f28b..5499b7d1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,24 +1,20 @@ name: Lint -on: - push: - branches: [master] - pull_request: - branches: [master] +on: [push, pull_request] jobs: - build: - runs-on: ubuntu-latest + build: + runs-on: ubuntu-latest - strategy: - matrix: - node-version: [14.x, 15.x] + strategy: + matrix: + node-version: [16.x] - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - - run: rm -rf node_modules && yarn install - - run: yarn lint + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + - run: rm -rf node_modules && yarn install + - run: yarn lint diff --git a/.github/workflows/typescript.yml b/.github/workflows/typescript.yml index c9347945..1f3c3d1c 100644 --- a/.github/workflows/typescript.yml +++ b/.github/workflows/typescript.yml @@ -1,38 +1,34 @@ name: Compile TypeScript -on: - push: - branches: [master] - pull_request: - branches: [master] +on: [push, pull_request] jobs: - ts-mac: - runs-on: macos-latest + ts-mac: + runs-on: macos-latest - strategy: - matrix: - node-version: [14.x, 15.x] + strategy: + matrix: + node-version: [16.x] - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - - run: yarn install - - run: yarn compile - ts-linux: - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [14.x, 15.x] + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + - run: yarn install + - run: yarn compile + ts-linux: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [16.x] - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - - run: rm -rf node_modules && yarn install - - run: yarn compile + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + - run: rm -rf node_modules && yarn install + - run: yarn compile diff --git a/.gitignore b/.gitignore index 13aa088f..0ee77a75 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ temp yarn-error.log .DS_Store .idea +target +WixTools +fake-files \ No newline at end of file diff --git a/.nvmrc b/.nvmrc index 61fc687a..b08ffc75 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v14.15.0 \ No newline at end of file +v16.0.0 \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index acd746aa..5d4fe03a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,9 +1,6 @@ build dist -outs +out node_modules -src/Components/Theme/theme.ts -src/Components/Files/File Operation/open.ts -src/Components/Favorites/favorites.ts *.min. packages/**/*.ejs \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json index f9148847..4ca9d6a5 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,6 +1,7 @@ { - "trailingComma": "es5", - "tabWidth": 4, - "semi": true, - "singleQuote": true + "trailingComma": "es5", + "tabWidth": 4, + "semi": true, + "singleQuote": true, + "printWidth": 150 } diff --git a/.vscode/settings.json b/.vscode/settings.json index ca76dd8d..61c7f6f1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,11 @@ { - "eslint.format.enable": true, - "editor.codeActionsOnSave": { - "source.fixAll.eslint": true - }, - "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.formatOnSave": true -} \ No newline at end of file + "eslint.format.enable": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + }, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true, + "[rust]": { + "editor.defaultFormatter": "rust-lang.rust" + } +} diff --git a/README.md b/README.md index 5d35bcbd..1f3bc2d5 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@
- +

Xplorer, a customizable, modern and cross-platform File Explorer.

-

SupportsDiscussionsDocumentation

+

SupportsDiscussionsDocumentationDiscord

@@ -32,7 +32,7 @@ View More Screenshots Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern! -Xplorer is a cross-platform application built using [Electron](https://www.electronjs.org/), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. +Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. To summarize, Xplorer's features contain: @@ -40,9 +40,11 @@ To summarize, Xplorer's features contain: - Easy to use - Cross-platform - [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos! +- Customizable +- Supports multiple tab - Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit -Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). +Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). --- @@ -56,6 +58,10 @@ If you want to install Xplorer in your system, you can download the installer fo If you find any bug, please report it by submitting an issue in our [issue page](https://github.com/kimlimjustin/xplorer/issues) with detailed explanation. Giving some screenshots would also be very helpful. +## Feature Request + +You can also submit a feature request in our [issue page](https://github.com/kimlimjustin/xplorer) or [discussions](https://github.com/kimlimjustin/xplorer/discussions) and we will try to implement it as soon as possible. If you want to contribute to this project, please [contribute to this project](https://xplorer.vercel.app/community/Contributing/). + --- ## Common Problems @@ -64,37 +70,29 @@ If you find any bug, please report it by submitting an issue in our [issue page]
-Xplorer keep loading and crashes. +Opening folder like Documents, Desktop, Downloads makes Xplorer crash -Try open cmd by typing Win + R and type cmd. -Enter following command: -``` -wmic -``` - -If the output says the `wmic` is not recognized as internal or internal command, please follow the steps given on [this article](https://superuser.com/questions/1178674/wmic-is-not-recognized-as-an-internal-or-external-command-operable-program-or) or [this article](https://knowledge.informatica.com/s/article/156865?language=en_US). +Try disabling the [`Extract exe file icon and make it as preview`](https://xplorer.vercel.app/docs/guides/setting/#extract-exe-file-icon-and-make-it-a-preview) option on `Preference` page on Settings. Also, please make sure that windows defender isn't blocking Xplorer from accessing your documents.
-Opening folder like Documents, Desktop, Downloads makes Xplorer crash +Xplorer crashes when opening a folder. +Simply close and reopen Xplorer, Xplorer will fix itself, if it doesn't, please address an issue over here -Disable the [`Extract exe file icon and make it as preview`](https://xplorer.vercel.app/docs/guides/setting/#extract-exe-file-icon-and-make-it-a-preview) setting. +
-Also, please make sure that windows defender isn't blocking Xplorer from accessing your documents. +--- - -
- -Xplorer is unstable after installing it. - -Simply restart, Xplorer will fix itself, if it doesn't, please address an issue over here +## Architecture -
+Xplorer is a cross-platform application built using the [Tauri](https://tauri.studio) framework. Tauri is based on Microsoft Edge-similar webview and Rust to work. Read about tauri [here](https://tauri.studio/en/docs/about/intro) + +Xplorer is a polygot application. Xplorer relies on Rust api for file operations and TS, SCSS for the webview. Rust code are under `src-tauri` directory whereas the webview code are under `src` directory. The API that connects webview with the Rust code is under `src/Api` directory. --- @@ -106,23 +104,25 @@ If you want to run this project in your local system, please follow this guide: 2. Clone the project to your local system using this command +3. Follow [this guide](https://tauri.studio/en/docs/getting-started/intro/#setting-up-your-environment) to set up Tauri environment + ```sh $ git clone https://github.com//xplorer.git ``` -3. Change directory to the root directory of this project +4. Change directory to the root directory of this project ```sh $ cd xplorer ``` -4. Install all dependencies using [`yarn`](https://yarnpkg.com/) +5. Install all dependencies using [`yarn`](https://yarnpkg.com/) ```sh $ yarn install ``` -5. Run the project in development mode +6. Run the project in development mode. Please note that it might takes some times for Cargo to install dependencies for the first run. ```sh $ yarn dev diff --git a/binding.gyp b/binding.gyp deleted file mode 100644 index 80183836..00000000 --- a/binding.gyp +++ /dev/null @@ -1,19 +0,0 @@ -{ - "targets": [ - { - "target_name": "module", - "product_extension": "node", - "include_dirs" : [ "src/Lib/extracticon" ], - "conditions": [ - ['OS=="win"', { - 'cflags': [ - '/EHa', - ], - },], - ], - "sources": [ - "src/Lib/extracticon/module.cc" - ] - } - ] -} \ No newline at end of file diff --git a/crowdin.yml b/crowdin.yml index d44c7ce7..6e936357 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -3,28 +3,14 @@ api_token_env: 'CROWDIN_PERSONAL_TOKEN' preserve_hierarchy: true files: [ + { source: '/docs/i18n/en/**/*', translation: '/docs/i18n/%locale%/**/%original_file_name%' }, + { source: '/docs/docs/*', translation: '/docs/i18n/%locale%/docusaurus-plugin-content-docs/current/%original_file_name%' }, + { source: '/docs/docs/guides/*', translation: '/docs/i18n/%locale%/docusaurus-plugin-content-docs/current/guides/%original_file_name%' }, { - source: '/docs/community/**/*', - translation: '/docs/i18n/%locale%/docusaurus-plugin-content-docs-community/current/**/%original_file_name%', - }, - { - source: '/docs/i18n/en/**/*', - translation: '/docs/i18n/%locale%/**/%original_file_name%', - }, - { - source: '/docs/docs/**/*', - translation: '/docs/i18n/%locale%/docusaurus-plugin-content-docs/current/**/%original_file_name%', - }, - { - source: '/docs/blog/**/*', - translation: '/docs/i18n/%locale%/docusaurus-plugin-content-blog/**/%original_file_name%', - }, - { - source: '/src/Locales/base.json', - translation: '/src/Locales/%locale%.json', - }, - { - source: '/docs/src/pages/**/*', - translation: '/docs/i18n/%locale%/docusaurus-plugin-content-pages/**/%original_file_name%', + source: '/docs/docs/Community/Contributing.md', + translation: '/docs/i18n/%locale%/docusaurus-plugin-content-docs/current/Community/Contributing.md', }, + { source: '/docs/docs/Community/support.md', translation: '/docs/i18n/%locale%/docusaurus-plugin-content-docs/current/Community/support.md' }, + { source: '/src/Locales/base.json', translation: '/src/Locales/%locale%.json' }, + { source: '/docs/src/pages/**/*', translation: '/docs/i18n/%locale%/docusaurus-plugin-content-pages/**/%original_file_name%' }, ] diff --git a/docs/blog/2021-08-09-introduction.md b/docs/blog/2021-08-09-introduction.md deleted file mode 100644 index 642bb006..00000000 --- a/docs/blog/2021-08-09-introduction.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -slug: welcome -title: Welcome -author: Justin Maximillian Kimlim -author_title: A High School Student Who Loves Programming -author_url: https://github.com/kimlimjustin -author_image_url: https://avatars.githubusercontent.com/u/61906684?v=4 -tags: [xplorer, introduction, hello, blog] ---- -![Demo](https://camo.githubusercontent.com/7c638a81d598d3ebccdf5d4b213b7b88950fb2d186ef28796826014a671029c7/68747470733a2f2f64726976652e676f6f676c652e636f6d2f75633f6578706f72743d766965772669643d3153427555633042684334396472754a776e6457326d61625339616d546f73705a) - -I am very happy to introduce [Xplorer](https://xplorer.vercel.app) to help you organize your files/folders. - -I created Xplorer for the following reasons: -* Supports Multiple Tabs -* Easy to use -* Highly customizable (just like VSCode) -* Cross-platform -* Supports previewing apps directly inside Xplorer -* Looks modern -* Most importantly, FOSS, Free and Open Source, which means you can change components inside if you see it fit - -Xplorer is an app designed to let users manage files/folders easily by supporting multiple tabs, previewing files and so on. Also, it looks modern! You can customize the application by changing the theme, icon and also plugin a custom function into Xplorer (though by the time I write this documentation, it's not done yet, but it will be soon)! - -## Why did I build this? - -Back then, I was taught Python at my school and I found it interesting when I created the “Hello World” program and I posted some tutorials on making things like Calculator and showoff to my friends XD. Soon after, Covid 19 came and I was bored and got a lot of time, I went to YouTube and learned how to program using PHP, then I switched to JavaScript and found its better. - -One day, I found out the [Files](https://files-community.github.io/) and it’s awesome, I use it as my default file explorer. However, I found it quite laggy and at a certain version, it just doesn’t work on my laptop. I opened an issue but they asked me to reinstall windows 10 and they just closed [that Issue](https://github.com/files-community/Files/issues/4287) Meanwhile, I also tried dual-booting with Linux and found out the file manager of Linux is boring and I was unable to use any available file manager out there. - -So, I asked myself, why don’t I build one that is a cross-platform, customizable and modern file manager. Besides, I would add some awesome features that other file explorers doesn’t support. Aha, Xplorer was born! - -### Why was it built using JavaScript? -- JavaScript has become the most used language. -- JavaScript has a very strong community. -- You can easily write plugin using JavaScript -- JavaScript can be run in various OSes. -- Modern layouts can be built using the HTML and CSS from Electron. -- I'm bad at C/C++ - -## Community -We welcome your [contributions](https://xplorer.vercel.app/community/Contributing/) to Xplorer, whether you want to use it as your file manager, you want to contribute to the Xplorer core or just have questions. Follow me on [GitHub](https://github.com/kimlimjustin). - -## See ya'll soon! -Xplorer is currently on development progress (you can try it by manually [setup however](https://xplorer.vercel.app/community/Contributing/#working-on-xplorer-code)), stay tuned till the beta version released! diff --git a/docs/community/CODE_OF_CONDUCT.md b/docs/docs/Community/CODE_OF_CONDUCT.md similarity index 100% rename from docs/community/CODE_OF_CONDUCT.md rename to docs/docs/Community/CODE_OF_CONDUCT.md diff --git a/docs/community/Contributing.md b/docs/docs/Community/Contributing.md similarity index 86% rename from docs/community/Contributing.md rename to docs/docs/Community/Contributing.md index 9cccb267..acc612d2 100644 --- a/docs/community/Contributing.md +++ b/docs/docs/Community/Contributing.md @@ -6,7 +6,7 @@ sidebar_position: 2 👍🎉 First off, thanks for taking the time to contribute! 🎉👍 -Xplorer is currently under development. We are welcoming contributors to collaborate on Xplorer. +Xplorer is currently under heavy development. We are welcoming contributors to collaborate on Xplorer. ## Get involved @@ -32,7 +32,7 @@ When [opening a new issue](https://github.com/kimlimjustin/xplorer/issues), alwa ### Feature Request {#feat} -We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and [GitHub Issues](https://github.com/kimlimjustin/xplorer) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: - A quick idea summary. @@ -43,19 +43,16 @@ Great Feature Requests tend to have: ### Prerequisite +- [Tauri environment](https://tauri.studio/en/docs/getting-started/intro#setting-up-your-environment) - [Node JS](https://nodejs.org/en/) - [Git](https://git-scm.com/) - [yarn](https://yarnpkg.com/) -- [GCC Compiler](https://gcc.gnu.org/) - Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) ### Installation 1. After cloning the repository, run `yarn` in the root of the repository and run `yarn` in the `docs` folder (if you want to working on Xplorer Docs). -2. To start Xplorer locally: - - - run `yarn start` in the root of the repository if you **don't want** the hot reload feature. - - run `yarn dev` in the root of the repository if you **want** the hot reload feature. +2. To start Xplorer locally, run `yarn dev`. To start a local development server serving the Docusaurus docs, go into the `docs` directory and run `yarn start` @@ -166,9 +163,7 @@ We host our locales on the [crowdin](https://crwd.in/xplorer). To translate it, #### Priority Files to translate on Crowdin 1. `src/Locales` files -2. `docs/docs` files -3. `docs/i18n/en` files -4. `docs/community` files +2. `docs/` files #### Production @@ -176,16 +171,6 @@ Once the files on `src/Locales` have been translated for more than 80%, we will Please comment [here](https://github.com/kimlimjustin/xplorer/discussions/30) if you have any questions! -### Files Icon - -Files icons are available on [`src/Icon`](https://github.com/kimlimjustin/xplorer/tree/master/src/Icon). -You can add an icon by doing these steps: - -- Paste the new icon in `src/icon` -- Edit the value of [`src/Components/Files/File Icon/icon.json`](https://github.com/kimlimjustin/xplorer/tree/master/src/Components/Files/File%20Icon/icon.json) - -### File Type library - -The files type library is available on [`src/Components/Files/File Type/type.json`](https://github.com/kimlimjustin/xplorer/tree/master/src/Components/Files/File%20Type/type.json). +### File Library -You can add the type of file extension by adding value to the file. +The json library of file types and thumbnail are found under `lib` folder and the icons are found under `src/Icons` folder. You may add file types and icons for file extensions you want to use and submit a PR. diff --git a/docs/community/license.md b/docs/docs/Community/license.md similarity index 99% rename from docs/community/license.md rename to docs/docs/Community/license.md index 117fd120..e1441735 100644 --- a/docs/community/license.md +++ b/docs/docs/Community/license.md @@ -1,10 +1,12 @@ --- sidebar_position: 2 --- + # License +``` -``` Apache License + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -205,4 +207,4 @@ sidebar_position: 2 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -``` \ No newline at end of file +``` diff --git a/docs/community/support.md b/docs/docs/Community/support.md similarity index 54% rename from docs/community/support.md rename to docs/docs/Community/support.md index 7ff97faf..417b3959 100644 --- a/docs/community/support.md +++ b/docs/docs/Community/support.md @@ -1,37 +1,45 @@ --- sidebar_position: 1 --- + # Support + Xplorer is an open-source project which you can freely join and seek support 😊. On this page, we've listed some communities/forums you can participate in to seek support or help others. -Before participating in Xplorer's communities, please read our [Code Of Conduct](/community/CODE_OF_CONDUCT/). +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). ## Issues -We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). Please use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) instead to suggest a new feature. + +We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). ## GitHub Discussions + GitHub Discussions is used for multiple purposes, such as: + 1. Asking questions 2. Making feature requests and sharing ideas -3. Xplorer Announcements -4. Chat on Xplorer -5. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! - +3. Chat on Xplorer +4. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! ### Feature Request -We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) and [GitHub Issues](https://github.com/kimlimjustin/xplorer/issues) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: -- A quick idea summary. -- What & why you wanted to add the specific feature. -- Additional context like images, links to resources to implement the feature, etc. + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + ### Help -You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) and others will answer you, just like Stack Overflow! + +You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) or [Discord Channel](https://discord.gg/kK7rwxPt). :::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: ## News -For the latest news about Xplorer, you can see it through the [official Xplorer blog](/blog) on this website. + +For the latest news about Xplorer, you can see it through posts on [Forem](https://dev.to/t/xplorer). diff --git a/docs/docs/common_problems.md b/docs/docs/common_problems.md index 0329306c..d6a89938 100644 --- a/docs/docs/common_problems.md +++ b/docs/docs/common_problems.md @@ -1,3 +1,7 @@ +--- +sidebar_position: 3 +--- + # Common Problems **NB: For common problems during installation, please open [here](/docs/install/#common-problems)** @@ -5,25 +9,6 @@
-### Xplorer keep loading and crashes. - - - -Try opening `cmd` by opening Win + R(Run) and type `cmd`. - -Enter following command: - -``` -wmic -``` - -If the output says the `wmic` is not recognized as internal or internal command, please follow the following steps given on [this](https://superuser.com/questions/1178674/wmic-is-not-recognized-as-an-internal-or-external-command-operable-program-or) or [this](https://knowledge.informatica.com/s/article/156865?language=en_US). Also, please make sure that Windows Defender isn't blocking Xplorer from accessing your documents. - -
- -
- - ### Opening folder like `Documents`, `Desktop`, `Downloads` make Xplorer crashes diff --git a/docs/docs/customization/_category_.json b/docs/docs/customization/_category_.json deleted file mode 100644 index 2e564234..00000000 --- a/docs/docs/customization/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Customization", - "position": 3 -} diff --git a/docs/docs/customization/theme.md b/docs/docs/customization/theme.md deleted file mode 100644 index 3f7223b6..00000000 --- a/docs/docs/customization/theme.md +++ /dev/null @@ -1,84 +0,0 @@ -# Color Theme - -## Prerequiste - -For both developing and using a theme on Xplorer, you should have Xplorer's CLI Installed. - -
- -Install Xplorer CLI on Windows - - -Firstly, you have to register the command into the system path. - -1. Open the `System Properties` on Windows. -2. Click the `Environment Variables` button, it will pop up a window. -3. On the table, search for `Path` variable and click on it. -4. Click the `Edit` button, it will pop up a window. -5. Click the `New` button -6. Add `%USERPROFILE%\AppData\Local\Programs\xplorer` - -
- -## Writing Theme - -Xplorer use [`yeoman`](https://yeoman.io/) as a generator to generate a color theme template, the generator should generates a `package.json` and a JavaScript file containing a color scheme template (It's `light` theme's color scheme as default). - -### Get Started - -To get started, you have to install yeoman globally, you can do this by running the following command: - -```bash -npm i -g yo -``` - -After installing yeoman, you can start generating Xplorer theme by running the following command: - -```bash -yo xplorer-theme -``` - -:::info -`generator-xplorer-theme` is under development, to use it now, you have to clone the Xplorer repository and run `yarn link` inside the `packages/generator-xplorer-theme` directory. -::: - -The command will create `package.json` and a JavaScript file containing your color scheme. - -### File Structure - -The JavaScript file should export a function as `exports.default`, the function should return the object of your theme's color scheme. - -:::tip -Within the function, you can add `document.querySelector` to change something you wish to that cannot be edited via the color scheme. -::: - -### Development - -You can start developing Xplorer theme by running `yarn start` command. Before starting the development process, please change your `App Theme` to the system default (for some reasons it's buggy if you don't set it into system default) - -### Production - -To flash your color theme into Xplorer, you can simply run `yarn build` command. - -## Using Theme - -To use a color scheme developed by others, you have to get the code locally, this can be done by cloning their repository, etc. - -### Flashing color theme into Xplorer - -To flash a color theme into Xplorer, you can simply run `yarn build` in the project root. - -## Examples - -Examples of custom color theme are available [here](https://github.com/kimlimjustin/xplorer/tree/master/packages/generator-xplorer-theme/example). - -## Common Question - -
- -Why don't you just develop a marketplace so user can easily share their theme with others? - - -I can't afford to buy a server for developing marketplace xD, but will consider it in the future, if you want to sponsor/offer it, feel free to contact [me](mailto:kimlimjustin@gmail.com) - -
diff --git a/docs/docs/guides/_category_.json b/docs/docs/guides/_category_.json index a79246b5..b1419d2f 100644 --- a/docs/docs/guides/_category_.json +++ b/docs/docs/guides/_category_.json @@ -1,5 +1,4 @@ { - "label": "Guides", - "position": 3 + "label": "Guides", + "position": 4 } - \ No newline at end of file diff --git a/docs/docs/guides/cli.md b/docs/docs/guides/cli.md index 0db45d8a..e125b4f0 100644 --- a/docs/docs/guides/cli.md +++ b/docs/docs/guides/cli.md @@ -1,9 +1,5 @@ # Launch Xplorer from Terminal -:::info -This feature hasn't been optimized yet. It works but it might be laggy. This will be optimized in the feature release. -::: - ## Commands Xplorer CLI: @@ -16,24 +12,6 @@ Xplorer will open `dir`, `dir2`, `dir3` as tabs on Xplorer. If there's no direct Options: -| Command | Alias | Description | -| ----------- | ----- | ---------------------------------------------- | -| `--help` | `-h` | Show help | -| `--version` | `-v` | Show version number | -| `--reveal` | `-r` | Open the containing folder and select the file | - -
- -xplorer: command not found error on Windows - - -Firstly, you have to register the command into the system path. - -1. Open the `System Properties` on Windows. -2. Click the `Environment Variables` button, it will pop up a window. -3. On the table, search for the `Path` variable and click on it. -4. Click the `Edit` button, it will pop up a window. -5. Click the `New` button. -6. Add `%USERPROFILE%\AppData\Local\Programs\xplorer`. - -
+| Command | Alias | Description | +| ---------- | ----- | ---------------------------------------------- | +| `--reveal` | `-r` | Open the containing folder and select the file | diff --git a/docs/docs/guides/operation.md b/docs/docs/guides/operation.md index 33d28118..3deaaeb4 100644 --- a/docs/docs/guides/operation.md +++ b/docs/docs/guides/operation.md @@ -6,13 +6,9 @@ You can copy files by right-clicking it and click the `Copy` option or select th :::info -On Windows and macOS, Xplorer will copy the file paths into the local clipboard, because of this, you can copy a file from Xplorer and paste it into any folder in another system. However, on Linux, we create a string of Xplorer commands and copy it into the user clipboard, Xplorer will read the user's clipboard when pasting the file (because we haven't found any idea to implement it, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us). The string of the Xplorer command looks like this: +For current implementation, Xplorer write down what to copy locally (not copying to clipboard). -``` -Xplorer command - COPY -~/xplorer -~/test -``` +TODO: implement copy to clipboard ::: @@ -25,30 +21,29 @@ You can copy a file/folder location path into your clipboard by right-clicking i You can cut files by right-clicking it and click the `Cut` option or select the file then press `Ctrl + X` as a shortcut and paste it by clicking the `Paste` option or press `Ctrl + V` on the destination folder. :::info -This is done by creating a string of Xplorer command and copies it into the user clipboard to be used when pasting file (this is not integrated with the platform because we haven't found any idea, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us.). The string of Xplorer command looks like this: -``` -Xplorer command - CUT -E://xplorer -E://test -``` +For current implementation, Xplorer write down what to cut locally (not copying to clipboard). ::: ## Delete files -You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. The trashed file can be accessed at `xplorer://Trash`. +You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. -:::info +### Trashed files -- On Windows, this is done by creating a `Trash` folder on the `C:` drive and moving the file into it. -- On Linux, this feature is fully integrated with the system. -- On macOS, this is done by creating a `.local/Trash` folder on `homedir` and moving the file into it. +The trashed file can be accessed at `xplorer://Trash` or your system trash folder. +:::danger Open Issue -We are still working on Windows on macOS to integrate the `Trash` folder, which will be released before the stable version came out. Feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us. +Please note that Trash folder cannot be accessed on macos via Xplorer since the [trash crate](https://github.com/Byron/trash-rs) Xplorer relies to does not support it (see [this issue](https://github.com/Byron/trash-rs/issues/8) for more details). +Any contributions to either the trash crate or Xplorer itself for this topic are welcome. ::: +### Restore files + +You can restore files by opening the `xplorer://Trash` and right-clicking it and click the `Restore` option + ### Permanently delete :::danger @@ -103,72 +98,12 @@ You can preview a file directly from Xplorer by right-clicking it and click the Files available to preview for now: - -```json -[ - ".pdf", - ".html", - ".docx", - ".htm", - ".xlsx", - ".xls", - ".xlsb", - "xls", - ".ods", - ".fods", - ".csv", - ".txt", - ".py", - ".js", - ".bat", - ".css", - ".c++", - ".cpp", - ".cc", - ".c", - ".diff", - ".patch", - ".go", - ".java", - ".json", - ".php", - ".ts", - ".tsx", - ".jsx", - ".jpg", - ".png", - ".gif", - ".bmp", - ".jpeg", - ".jpe", - ".jif", - ".jfif", - ".jfi", - ".webp", - ".tiff", - ".tif", - ".ico", - ".svg", - ".webp", - ".mp4", - ".webm", - ".mpg", - ".mp2", - ".mpeg", - ".mpe", - ".mpv", - ".ocg", - ".m4p", - ".m4v", - ".avi", - ".wmv", - ".mov", - ".qt", - ".flv", - ".swf", - ".md" -] -``` +* Markdown files +* Image files +* Text files +* Video files +* Pdfs +* Almost all programming language with syntax highlighting
diff --git a/docs/docs/guides/setting.md b/docs/docs/guides/setting.md index 48b26ec0..54a4fa99 100644 --- a/docs/docs/guides/setting.md +++ b/docs/docs/guides/setting.md @@ -13,28 +13,57 @@ You can open settings on Xplorer by clicking the `Settings` button on the left d How to exit from Settings? -You can exit from Settings on Xplorer by clicking the Arrow Up button on the upside left of Xplorer. +You can exit from Settings on Xplorer by clicking on the upside left of Xplorer. ![Settings](/img/docs/exit-settings.png) -## App Theme +## Appearance + +### App Theme You can change Xplorer's app theme on the `Appearance` tab of the Settings. Available default themes are `light`, `light+`, `dark`, and `dark+`. Besides, there is a `System Default` theme that will automatically read your system preference. :::info Xplorer will support a custom app theme soon, stay tuned! ::: -### Acrylic Effect +### Font Family + +You can change Xplorer's font family on the `Appearance` tab of the Settings to one of installed font families installed on your system. + +### Font Size + +You can change Xplorer's font size on the `Appearance` tab of the Settings. Please note that an ideal font size is between 10px to 30px. + +### Window Transparency + +Make Xplorer window transparent on the `Appearance` tab of the Settings by combining following options. Please note that an ideal transparency is between 70% to 100%. You can disable transparency by disable all of the transparency options. + +#### Transparent Sidebar -The Acrylic Effect is the effect that gives the transparency effect on the sidebar. Only works on Windows 10 and higher. +Make the sidebar transparent +![Transparent Sidebar](/img/docs/transparent-sidebar.png) -## File Preview +#### Transparent Topbar -The file preview here means the preview that replaces the default icon of a file. +Make the topbar transparent +![Transparent Topbar](/img/docs/transparent-topbar.png) -### Play video file as a preview +#### Transparent Workspace + +make the workspace transparent +![Transparent Workspace](/img/docs/transparent-workspace.png) + +### Frame Style + +You can choose the frame style on the `Appearance` tab of the Settings. The available options are `Default` and `System Default`. `Default` will use Xplorer's default style which is the same across platforms. `System Default` will use the system default frame style which is difference according to your platform. + +### File Preview + +File Preview here might means the file thumbnail. + +#### Automatically play video file as thumbnail This will automatically play the video file as a preview. :::caution THIS MIGHT CONSUME HIGH AMOUNT OF RAM @@ -42,7 +71,15 @@ This might consume a high amount of RAM because it's built on the HTML video pla You can just enable this setting and ignore this caution if you got a good-spec computer. ::: -### Extract `EXE` file icon and make it a preview +#### Preview image on hover + +This fill automatically show the image when you hovering it for 500ms. + +![Preview on hover](/img/docs/preview-on-hover.png) + +Some people might found it annoying and you can disable it by disabling this setting. + +#### Extract exe file icon and make it as the thumbnail This will parse and cache the icon from a `exe` file and make it a preview. Only on Windows. @@ -56,25 +93,48 @@ The way to fix it is to disable the setting. ::: -## Default file layout +:::info Open issue +The current approach is by calling the powershell program which might pops up cmd windows. + +Any contribution to call it directly from Xplorer is welcome. +::: + +#### Show Image as Thumbnail + +This will show the image as a thumbnail of a file. Please note that this is not recommended for large directory as it reads the image to memory. + +#### Default file layout Default file layout of a directory. Just give it a try :) -## App Language +## Preference + +### App Language Localize Xplorer. Help us translate Xplorer [here](https://github.com/kimlimjustin/xplorer/discussions/30). -## Hide Hidden Files +### Hide Hidden Files Hide hidden files on Xplorer, you can find this setting on the `Preference` tab on Xplorer or by its shortcut, `Ctrl + H`. -## Hide System Files +### Hide System Files Hide Windows' system files on Xplorer. :::tip Learn what is system file [here](https://en.wikipedia.org/wiki/System_file). Just turn it off if you don't understand what it is. ::: -## List and sort directories alongside files +### List and sort directories alongside files If disabled, Xplorer will prioritize directories above files. + +### Detect Drive Change + +Turning this on will detect drive change and update the sidebar and drives section. Please note that this will take high ammount of RAM as this is not stabilized yet. + +### On startup + +Option to do on starting Xplorer. Available options are: + +- New Tab +- Continue previous session diff --git a/docs/docs/guides/shortcut.md b/docs/docs/guides/shortcut.md index 5b2a2254..c6e53684 100644 --- a/docs/docs/guides/shortcut.md +++ b/docs/docs/guides/shortcut.md @@ -4,19 +4,22 @@ | ------------------- | ------------------------ | | `Ctrl + A` | Select All | | `Ctrl + C` | Copy | -| `Ctrl + E` | Close Tab | | `Ctrl + H` | Toggle Hidden Files | -| `Ctrl + O` | Preview file | +| `Ctrl + N` | New window shortcut | +| `Ctrl + O` | Open file in preview | | `Ctrl + P` | Files/Folders Properties | | `Ctrl + R` | Reload | | `Ctrl + T` | New Tab | | `Ctrl + V` | Paste | | `Ctrl + X` | Cut | -| `Ctrl + W` | Exit Xplorer | +| `Ctrl + W` | Exit Tab | +| `Ctrl + Y` | Redo | +| `Ctrl + Z` | Undo | +| `Ctrl + Shift + Z` | Redo | | `Alt + Left Arrow` | Go Back | | `Alt + Right Arrow` | Go Forward | -| `Alt + Up Arrow` | maximize | -| `Alt + Down Arrow` | minimize | +| `Alt + Up Arrow` | Go to parent directory | +| `Alt + N` | New File | | `Alt + T` | Open in terminal | | `Alt + P` | Pin to sidebar | | `Alt + Shift + C` | Copy location path | @@ -31,6 +34,6 @@ | `Del` | Delete file | :::note Difference between `reload` and `refresh` -`Reload` refreshes the internal HTML while `Refresh` refreshes the whole Electron process. +`Reload` refreshes the internal process while `Refresh` refreshes the whole process. ::: diff --git a/docs/docs/guides/xplorer as default.md b/docs/docs/guides/xplorer as default.md index d080be07..0602fd10 100644 --- a/docs/docs/guides/xplorer as default.md +++ b/docs/docs/guides/xplorer as default.md @@ -13,7 +13,7 @@ This guide involves modifying the Windows registry, make sure to create a backup 4. Navigate to `Computer\HKEY_CURRENT_USER\Software\Classes\Directory` 5. Create a key named `shell` if not existed by right and set the default key-value to `openinxplorer` 6. Create a key named `openinxplorer` under `shell` -7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Users\User\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"` +7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Program Files\Xplorer\Xplorer.exe" "%V"`. (You may have to change `C:\Program Files\Xplorer\` to the location you installed Xplorer) ![Registry Structure](/img/docs/registry.png) diff --git a/docs/docs/intro.md b/docs/docs/intro.md index 82a1ac0d..b96b9e52 100644 --- a/docs/docs/intro.md +++ b/docs/docs/intro.md @@ -8,16 +8,18 @@ sidebar_position: 1 Welcome to Xplorer, A Free and Open Source (FOSS) File Explorer. -Xplorer is a file explorer built from the ground up to be fully customizable and without customization, it also looks modern! -It is cross-platform, built using Electron Technology that allowed our File Explorer to be run not only in Windows but also Linux and MacOS alike. -It also allowed file preview directly inside it, not only pictures or documents but also videos! +Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern! -## Features +Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. -So to summarize, Xplorer's features contain: +To summarize, Xplorer's features contain: -- Looks modern +- It looks modern - Easy to use - Cross-platform -- File Preview, even videos! -- Most importantly, it's Free and Open Source! Which mean you can change components inside if you see fit and you also don't need to make your wallet go dry or break the bank. +- [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos! +- Customizable +- Supports multiple tab +- Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit + +Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index aa92a943..32c3c789 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -15,24 +15,13 @@ module.exports = { trailingSlash: true, i18n: { defaultLocale: 'en', - locales: [ - 'en', - 'id-ID', - 'zh-CN', - 'zh-TW', - 'ru-RU', - 'pt-BR', - 'de-DE', - 'es-ES', - 'uk-UA', - ], + locales: ['en', 'id-ID', 'zh-CN', 'zh-TW', 'ru-RU', 'pt-BR', 'de-DE', 'es-ES', 'uk-UA'], }, themeConfig: { hideableSidebar: true, announcementBar: { id: 'support_us', - content: - 'Xplorer is still under heavy development, any features might change anytime.', + content: 'Xplorer is still under heavy development, any features might change anytime.', backgroundColor: '#fafbfc', textColor: '#091E42', }, @@ -45,7 +34,7 @@ module.exports = { title: 'Xplorer', logo: { alt: 'Xplorer Logo', - src: 'img/icon.svg', + src: 'img/icon.png', }, items: [ { @@ -54,12 +43,8 @@ module.exports = { position: 'left', label: 'Tutorial', }, - { to: '/blog', label: 'Blog', position: 'left' }, - { - to: '/community/support', - label: 'Community', - position: 'left', - }, + { to: 'https://dev.to/t/xplorer', label: 'Blog', position: 'left' }, + { to: 'https://discord.gg/kK7rwxPt', label: 'Discord', position: 'left' }, { type: 'localeDropdown', position: 'right', @@ -95,6 +80,10 @@ module.exports = { label: 'GitHub Discussions', href: 'https://github.com/kimlimjustin/xplorer/discussions', }, + { + label: 'Discord', + href: 'https://discord.gg/kK7rwxPt', + }, ], }, ], @@ -144,32 +133,11 @@ module.exports = { ], plugins: [ 'plugin-image-zoom', - [ - '@docusaurus/plugin-content-docs', - { - path: 'community', - id: 'community', - routeBasePath: 'community', - editUrl: ({ locale, docPath }) => { - if (locale === 'en') { - return `https://github.com/kimlimjustin/xplorer/edit/master/docs/community/${docPath}`; - } else { - return `https://crowdin.com/project/xplorer`; - } - }, - showLastUpdateAuthor: true, - showLastUpdateTime: true, - }, - ], [ '@docusaurus/plugin-pwa', { debug: true, - offlineModeActivationStrategies: [ - 'appInstalled', - 'standalone', - 'queryString', - ], + offlineModeActivationStrategies: ['appInstalled', 'standalone', 'queryString'], pwaHead: [ { tagName: 'link', diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs-community/current/support.md b/docs/i18n/de-DE/docusaurus-plugin-content-docs-community/current/support.md index ecdd4114..afddd22c 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-docs-community/current/support.md +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs-community/current/support.md @@ -1,34 +1,43 @@ --- sidebar_position: 1 --- + # Unterstützung + Xplorer is an open-source project which you can freely join and seek support 😊. On this page, we've listed some communities/forums you can participate in to seek support or help others. -Before participating in Xplorer's communities, please read our [Code Of Conduct](/community/CODE_OF_CONDUCT/). +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). ## Issues + We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). Please use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) instead to suggest a new feature. ## GitHub Discussions + GitHub Discussions is used for multiple purposes, such as: + 1. Asking questions 2. Making feature requests and sharing ideas 3. Xplorer Announcements 4. Chat on Xplorer 5. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! - ### Feature Request + We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: -- A quick idea summary. -- What & why you wanted to add the specific feature. -- Additional context like images, links to resources to implement the feature, etc. + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + ### Help + You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) and others will answer you, just like Stack Overflow! :::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: ## News + For the latest news about Xplorer, you can see it through the [official Xplorer blog](/blog) on this website. diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/Community/Contributing.md b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/Community/Contributing.md new file mode 100644 index 00000000..be326698 --- /dev/null +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/Community/Contributing.md @@ -0,0 +1,173 @@ +--- +sidebar_position: 2 +--- + +# Contribute + +👍🎉 First off, thanks for taking the time to contribute! 🎉👍 + +Xplorer is currently under heavy development. We are welcoming contributors to collaborate on Xplorer. + +## Get involved + +There are many ways to contribute to Xplorer, and many of them do not involve writing any code. Here are few ideas to get started: + +- Start using Xplorer! Go through the Tutorial guides. Does anything work as expected? If not, we're always looking for improvements. Let us know by opening an issue. +- Look through the [Xplorer issues](https://github.com/kimlimjustin/xplorer/issues). If you find an issue you would like to fix, [open a pull request](#first-pull-request). Issues tagged as [good first issue](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) are a good place to get started. +- Help us make the docs better. File an issue if you find anything that is confusing, any grammatical error, or can be improved. +- Take a look at [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and give your opinion into a discussion or consider opening a pull request if you see something you want to work on. + +Contributions are very welcome! + +## Our development process + +Xplorer uses [GitHub](https://github.com/kimlimjustin/xplorer) as its source of truth. The core team will work directly there. All changes will be public from the beginning. + +### Reporting new issues/bugs. {#issues} + +When [opening a new issue](https://github.com/kimlimjustin/xplorer/issues), always make sure to fill out the issue template. We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. + +- _One issue, one bug_: Please report a single bug per issue. +- _Provide reproduction steps_: List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort. + +### Feature Request {#feat} + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and [GitHub Issues](https://github.com/kimlimjustin/xplorer) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional references like images, links of resources about the feature, etc. + +## Working on Xplorer code + +### Prerequisite + +- [Tauri environment](https://tauri.studio/en/docs/getting-started/intro#setting-up-your-environment) +- [Node JS](https://nodejs.org/en/) +- [Git](https://git-scm.com/) +- [yarn](https://yarnpkg.com/) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +1. After cloning the repository, run `yarn` in the root of the repository and run `yarn` in the `docs` folder (if you want to working on Xplorer Docs). +2. To start Xplorer locally, run `yarn dev`. + + To start a local development server serving the Docusaurus docs, go into the `docs` directory and run `yarn start` + +### Gitpod {#gitpod-env} + +Gitpod is a Ready-to-Code environment in which you can get started immediately. Gitpod offers all dependencies pre-installed so you can just click and get started. + +To get started with Gitpod, click the button below and log in with your GitHub account. + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kimlimjustin/xplorer) + +:::note Remember to reload the Gitpod website after it loads up since it won't start the servers immediately, but by reloading, you can get it started. If you are developing the app, go to the Remote Explorer on the sidebar and visit port _6080_ which opens the noVNC app server. If you are developing the docs, go to the Remote explorer but instead of port 6080, visit port _3000_. You can edit normally as you do in VS Code, but if you want to use it locally, clik the hamburger menu button and click _Open in VS Code_. ::: + +### Semantic commit messages {#commit-msg} + +See how a minor change to your commit message style can make you a better programmer. + +Format: `(): ` + +`` is optional + +#### Example + +``` +feat: allow overriding of webpack config +^--^ ^------------^ +| | +| +-> Summary in present tense. +| ++-------> Type: chore, docs, feat, fix, refactor, style, or test. +``` + +the various types of commits: + +- `feat`: new feature for the user +- `fix`: bug fix for the user +- `docs`: changes to the documentation +- `style`: formatting, missing semi-colons, etc. +- `refactor`: refactoring production code, eg. renaming a variable +- `test`: adding missing tests, refactoring tests. +- `chore`: updating grunt tasks etc + +Use lower case not the upper case! + +## Working on Xplorer docs + +Xplorer documentation website is built using [Docusaurus 2](https://docusaurus.io/), and its code is located at [`docs`](https://github.com/kimlimjustin/xplorer/tree/master/docs) folder. + +### Prerequisite + +- [node js](https://nodejs.org/en/) +- [git](https://git-scm.com/downloads) +- [yarn](https://yarnpkg.com/getting-started/install#about-global-installs) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +After cloning the repository, run `yarn` in the `docs` folder (you can go into the `docs` folder by running the `cd docs` command). + +If you want to use Gitpod, click [here](#gitpod-env) for the guide on how to use Gitpod. + +### Local development + +1. Run the `yarn start` command in the `docs` folder. +2. Edit some markdown texts in the `docs` folder and the website will be hot reloaded. + +## Pull requests + +### Your first pull request. {#first-pull-request} + +So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at. + +Working on your first Pull Request? You can learn how from this free video series: + +How to Contribute to an Open Source Project on GitHub + +We have a list of [beginner-friendly issues](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) to help you get your feet wet in the Xplorer codebase and familiar with our contribution process. This is a great place to get started. + +### Proposing a change + +If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can also [open a discussion](#feat) and others will code it! + +If you intend to fix a bug, please discuss it through [Issues](#issues) before submitting a pull request. + +If you intend to add a new feature, please discuss it through [GitHub Discussions](#feat) to avoid multiple people working on the same feature request. + +### Sending a Pull Request + +make sure the PR does only one thing, otherwise please split it. It is recommended to follow this [commit message style](#commit-msg). + +1. Fork [the repository](https://github.com/kimlimjustin/xplorer) and create your branch from `master`. +2. Make changes and ensure your commit message is understandable. +3. Open a [PR](https://github.com/kimlimjustin/xplorer/pulls) and ensure to describe your pull request clearly. + +## Working on Xplorer resources + +### Locales + +We host our locales on the [crowdin](https://crwd.in/xplorer). To translate it, please follow these steps: + +- Sign up on [Crowdin](https://crowdin.com) and Join our project [here](https://crwd.in/xplorer). +- Make sure your locale exists there, if it does not exist, leave a comment in [this discussion](https://github.com/kimlimjustin/xplorer/discussions/30) and I'll add the language option :) +- Get familiar with the Crowdin translation UI, as you will need to use it to translate JSON and Markdown files +- Translate the content! + +#### Priority Files to translate on Crowdin + +1. `src/Locales` files +2. `docs/` files + +#### Production + +Once the files on `src/Locales` have been translated for more than 80%, we will add it into the Xplorer app, and for the docs, we will add it into production once the translation looks good! + +Please comment [here](https://github.com/kimlimjustin/xplorer/discussions/30) if you have any questions! + +### File Library + +The json library of file types and thumbnail are found under `lib` folder and the icons are found under `src/Icons` folder. You may add file types and icons for file extensions you want to use and submit a PR. diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/Community/support.md b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/Community/support.md new file mode 100644 index 00000000..8ea01be3 --- /dev/null +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/Community/support.md @@ -0,0 +1,42 @@ +--- +sidebar_position: 1 +--- + +# Support + +Xplorer is an open-source project which you can freely join and seek support 😊. + +On this page, we've listed some communities/forums you can participate in to seek support or help others. + +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). + +## Issues + +We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). + +## GitHub Discussions + +GitHub Discussions is used for multiple purposes, such as: + +1. Asking questions +2. Making feature requests and sharing ideas +3. Chat on Xplorer +4. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! + +### Feature Request + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) and [GitHub Issues](https://github.com/kimlimjustin/xplorer/issues) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + +### Help + +You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) or [Discord Channel](https://discord.gg/kK7rwxPt). + +:::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: + +## News + +For the latest news about Xplorer, you can see it through posts on [Forem](https://dev.to/t/xplorer). diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/common_problems.md b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/common_problems.md index 0329306c..ebdcac5f 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/common_problems.md +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/common_problems.md @@ -1,3 +1,7 @@ +- - - +sidebar_position: 3 +- - - + # Common Problems **NB: For common problems during installation, please open [here](/docs/install/#common-problems)** @@ -5,25 +9,6 @@
-### Xplorer keep loading and crashes. - - - -Try opening `cmd` by opening Win + R(Run) and type `cmd`. - -Enter following command: - -``` -wmic -``` - -If the output says the `wmic` is not recognized as internal or internal command, please follow the following steps given on [this](https://superuser.com/questions/1178674/wmic-is-not-recognized-as-an-internal-or-external-command-operable-program-or) or [this](https://knowledge.informatica.com/s/article/156865?language=en_US). Also, please make sure that Windows Defender isn't blocking Xplorer from accessing your documents. - -
- -
- - ### Opening folder like `Documents`, `Desktop`, `Downloads` make Xplorer crashes diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/_category_.json b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/_category_.json index 2a648072..b1419d2f 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/_category_.json +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/_category_.json @@ -1,4 +1,4 @@ { - "label": "Guides", - "position": 3 -} \ No newline at end of file + "label": "Guides", + "position": 4 +} diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/cli.md b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/cli.md index b1ea164c..e125b4f0 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/cli.md +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/cli.md @@ -1,7 +1,5 @@ # Launch Xplorer from Terminal -:::info This feature hasn't been optimized yet. It works but it might be laggy. This will be optimized in the feature release. ::: - ## Commands Xplorer CLI: @@ -14,24 +12,6 @@ Xplorer will open `dir`, `dir2`, `dir3` as tabs on Xplorer. If there's no direct Options: -| Command | Alias | Description | -| ----------- | ----- | ---------------------------------------------- | -| `--help` | `-h` | Show help | -| `--version` | `-v` | Show version number | -| `--reveal` | `-r` | Open the containing folder and select the file | - -
- -xplorer: command not found error on Windows - - -Firstly, you have to register the command into the system path. - -1. Open the `System Properties` on Windows. -2. Click the `Environment Variables` button, it will pop up a window. -3. On the table, search for the `Path` variable and click on it. -4. Click the `Edit` button, it will pop up a window. -5. Click the `New` button. -6. Add `%USERPROFILE%\AppData\Local\Programs\xplorer`. - -
+| Command | Alias | Description | +| ---------- | ----- | ---------------------------------------------- | +| `--reveal` | `-r` | Open the containing folder and select the file | diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/operation.md b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/operation.md index 4804e090..75cdea48 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/operation.md +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/operation.md @@ -6,13 +6,9 @@ You can copy files by right-clicking it and click the `Copy` option or select th :::info -On Windows and macOS, Xplorer will copy the file paths into the local clipboard, because of this, you can copy a file from Xplorer and paste it into any folder in another system. However, on Linux, we create a string of Xplorer commands and copy it into the user clipboard, Xplorer will read the user's clipboard when pasting the file (because we haven't found any idea to implement it, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us). The string of the Xplorer command looks like this: +For current implementation, Xplorer write down what to copy locally (not copying to clipboard). -``` -Xplorer command - COPY -~/xplorer -~/test -``` +TODO: implement copy to clipboard ::: @@ -24,29 +20,27 @@ You can copy a file/folder location path into your clipboard by right-clicking i You can cut files by right-clicking it and click the `Cut` option or select the file then press `Ctrl + X` as a shortcut and paste it by clicking the `Paste` option or press `Ctrl + V` on the destination folder. -:::info This is done by creating a string of Xplorer command and copies it into the user clipboard to be used when pasting file (this is not integrated with the platform because we haven't found any idea, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us.). The string of Xplorer command looks like this: +:::info -``` -Xplorer command - CUT -E://xplorer -E://test -``` +For current implementation, Xplorer write down what to cut locally (not copying to clipboard). ::: ## Delete files -You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. The trashed file can be accessed at `xplorer://Trash`. +You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. -:::info +### Trashed files -- On Windows, this is done by creating a `Trash` folder on the `C:` drive and moving the file into it. -- On Linux, this feature is fully integrated with the system. -- On macOS, this is done by creating a `.local/Trash` folder on `homedir` and moving the file into it. +The trashed file can be accessed at `xplorer://Trash` or your system trash folder. :::danger Open Issue -We are still working on Windows on macOS to integrate the `Trash` folder, which will be released before the stable version came out. Feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us. +Please note that Trash folder cannot be accessed on macos via Xplorer since the [trash crate](https://github.com/Byron/trash-rs) Xplorer relies to does not support it (see [this issue](https://github.com/Byron/trash-rs/issues/8) for more details). -::: +Any contributions to either the trash crate or Xplorer itself for this topic are welcome. ::: + +### Restore files + +You can restore files by opening the `xplorer://Trash` and right-clicking it and click the `Restore` option ### Permanently delete @@ -100,71 +94,12 @@ You can preview a file directly from Xplorer by right-clicking it and click the Files available to preview for now: -```json -[ - ".pdf", - ".html", - ".docx", - ".htm", - ".xlsx", - ".xls", - ".xlsb", - "xls", - ".ods", - ".fods", - ".csv", - ".txt", - ".py", - ".js", - ".bat", - ".css", - ".c++", - ".cpp", - ".cc", - ".c", - ".diff", - ".patch", - ".go", - ".java", - ".json", - ".php", - ".ts", - ".tsx", - ".jsx", - ".jpg", - ".png", - ".gif", - ".bmp", - ".jpeg", - ".jpe", - ".jif", - ".jfif", - ".jfi", - ".webp", - ".tiff", - ".tif", - ".ico", - ".svg", - ".webp", - ".mp4", - ".webm", - ".mpg", - ".mp2", - ".mpeg", - ".mpe", - ".mpv", - ".ocg", - ".m4p", - ".m4v", - ".avi", - ".wmv", - ".mov", - ".qt", - ".flv", - ".swf", - ".md" -] -``` +* Markdown files +* Image files +* Text files +* Video files +* Pdfs +* Almost all programming language with syntax highlighting
diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/setting.md b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/setting.md index 8219e5f5..e48188a6 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/setting.md +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/setting.md @@ -12,29 +12,63 @@ You can open settings on Xplorer by clicking the `Settings` button on the left d How to exit from Settings? -You can exit from Settings on Xplorer by clicking the Arrow Up button on the upside left of Xplorer. +You can exit from Settings on Xplorer by clicking on the upside left of Xplorer. ![Settings](/img/docs/exit-settings.png) -## App Theme +## Appearance + +### App Theme You can change Xplorer's app theme on the `Appearance` tab of the Settings. Available default themes are `light`, `light+`, `dark`, and `dark+`. Besides, there is a `System Default` theme that will automatically read your system preference. :::info Xplorer will support a custom app theme soon, stay tuned! ::: -### Acrylic Effect +### Font Family + +You can change Xplorer's font family on the `Appearance` tab of the Settings to one of installed font families installed on your system. + +### Font Size + +You can change Xplorer's font size on the `Appearance` tab of the Settings. Please note that an ideal font size is between 10px to 30px. + +### Window Transparency + +Make Xplorer window transparent on the `Appearance` tab of the Settings by combining following options. Please note that an ideal transparency is between 70% to 100%. You can disable transparency by disable all of the transparency options. + +#### Transparent Sidebar -The Acrylic Effect is the effect that gives the transparency effect on the sidebar. Only works on Windows 10 and higher. +Make the sidebar transparent ![Transparent Sidebar](/img/docs/transparent-sidebar.png) -## File Preview +#### Transparent Topbar -The file preview here means the preview that replaces the default icon of a file. +Make the topbar transparent ![Transparent Topbar](/img/docs/transparent-topbar.png) -### Play video file as a preview +#### Transparent Workspace + +make the workspace transparent ![Transparent Workspace](/img/docs/transparent-workspace.png) + +### Frame Style + +You can choose the frame style on the `Appearance` tab of the Settings. The available options are `Default` and `System Default`. `Default` will use Xplorer's default style which is the same across platforms. `System Default` will use the system default frame style which is difference according to your platform. + +### File Preview + +File Preview here might means the file thumbnail. + +#### Automatically play video file as thumbnail This will automatically play the video file as a preview. :::caution THIS MIGHT CONSUME HIGH AMOUNT OF RAM This might consume a high amount of RAM because it's built on the HTML video player. You can just enable this setting and ignore this caution if you got a good-spec computer. ::: -### Extract `EXE` file icon and make it a preview +#### Preview image on hover + +This fill automatically show the image when you hovering it for 500ms. + +![Preview on hover](/img/docs/preview-on-hover.png) + +Some people might found it annoying and you can disable it by disabling this setting. + +#### Extract exe file icon and make it as the thumbnail This will parse and cache the icon from a `exe` file and make it a preview. Only on Windows. @@ -48,22 +82,43 @@ The way to fix it is to disable the setting. ::: -## Default file layout +:::info Open issue The current approach is by calling the powershell program which might pops up cmd windows. + +Any contribution to call it directly from Xplorer is welcome. ::: + +#### Show Image as Thumbnail + +This will show the image as a thumbnail of a file. Please note that this is not recommended for large directory as it reads the image to memory. + +#### Default file layout Default file layout of a directory. Just give it a try :) -## App Language +## Preference + +### App Language Localize Xplorer. Help us translate Xplorer [here](https://github.com/kimlimjustin/xplorer/discussions/30). -## Hide Hidden Files +### Hide Hidden Files Hide hidden files on Xplorer, you can find this setting on the `Preference` tab on Xplorer or by its shortcut, `Ctrl + H`. -## Hide System Files +### Hide System Files Hide Windows' system files on Xplorer. :::tip Learn what is system file [here](https://en.wikipedia.org/wiki/System_file). Just turn it off if you don't understand what it is. ::: -## List and sort directories alongside files +### List and sort directories alongside files If disabled, Xplorer will prioritize directories above files. + +### Detect Drive Change + +Turning this on will detect drive change and update the sidebar and drives section. Please note that this will take high ammount of RAM as this is not stabilized yet. + +### On startup + +Option to do on starting Xplorer. Available options are: + +- New Tab +- Continue previous session diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/shortcut.md b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/shortcut.md index 5a2ac3cb..1dcb2c04 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/shortcut.md +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/shortcut.md @@ -4,19 +4,22 @@ | ------------------- | ------------------------ | | `Ctrl + A` | Select All | | `Ctrl + C` | Copy | -| `Ctrl + E` | Close Tab | | `Ctrl + H` | Toggle Hidden Files | -| `Ctrl + O` | Preview file | +| `Ctrl + N` | New window shortcut | +| `Ctrl + O` | Open file in preview | | `Ctrl + P` | Files/Folders Properties | | `Ctrl + R` | Reload | | `Ctrl + T` | New Tab | | `Ctrl + V` | Paste | | `Ctrl + X` | Cut | -| `Ctrl + W` | Exit Xplorer | +| `Ctrl + W` | Exit Tab | +| `Ctrl + Y` | Redo | +| `Ctrl + Z` | Undo | +| `Ctrl + Shift + Z` | Redo | | `Alt + Left Arrow` | Go Back | | `Alt + Right Arrow` | Go Forward | -| `Alt + Up Arrow` | maximize | -| `Alt + Down Arrow` | minimize | +| `Alt + Up Arrow` | Go to parent directory | +| `Alt + N` | New File | | `Alt + T` | Open in terminal | | `Alt + P` | Pin to sidebar | | `Alt + Shift + C` | Copy location path | @@ -30,6 +33,6 @@ | `Enter` | Open | | `Del` | Delete file | -:::note Difference between `reload` and `refresh` `Reload` refreshes the internal HTML while `Refresh` refreshes the whole Electron process. +:::note Difference between `reload` and `refresh` `Reload` refreshes the internal process while `Refresh` refreshes the whole process. ::: diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/xplorer as default.md b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/xplorer as default.md index f575bfa4..e69d60f6 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/xplorer as default.md +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/guides/xplorer as default.md @@ -12,7 +12,7 @@ 4. Navigate to `Computer\HKEY_CURRENT_USER\Software\Classes\Directory` 5. Create a key named `shell` if not existed by right and set the default key-value to `openinxplorer` 6. Create a key named `openinxplorer` under `shell` -7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Users\User\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"` +7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Program Files\Xplorer\Xplorer.exe" "%V"`. (You may have to change `C:\Program Files\Xplorer\` to the location you installed Xplorer) ![Registry Structure](/img/docs/registry.png) diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/intro.md b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/intro.md index 53a02dbb..b6b5b5b8 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/intro.md +++ b/docs/i18n/de-DE/docusaurus-plugin-content-docs/current/intro.md @@ -8,14 +8,18 @@ sidebar_position: 1 Welcome to Xplorer, A Free and Open Source (FOSS) File Explorer. -Xplorer is a file explorer built from the ground up to be fully customizable and without customization, it also looks modern! It is cross-platform, built using Electron Technology that allowed our File Explorer to be run not only in Windows but also Linux and MacOS alike. It also allowed file preview directly inside it, not only pictures or documents but also videos! +Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern! -## Funktionen +Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. -So to summarize, Xplorer's features contain: +To summarize, Xplorer's features contain: -- Moderne Oberfläche +- It looks modern - Benutzerfreundlich - Plattformübergreifend -- Dateivorschau, sogar Videos! -- Am Wichtigsten: Er ist kostenlos und Open Source! Which mean you can change components inside if you see fit and you also don't need to make your wallet go dry or break the bank. +- [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos! +- Customizable +- Supports multiple tab +- Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit + +Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-pages/index.jsx b/docs/i18n/de-DE/docusaurus-plugin-content-pages/index.jsx index 53c4c814..5ac18305 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-pages/index.jsx +++ b/docs/i18n/de-DE/docusaurus-plugin-content-pages/index.jsx @@ -5,102 +5,69 @@ import Slideshow from './slideshow'; import Link from '@docusaurus/Link'; export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - -
-
-
-

Datei-Explorer.

-

Neudefiniert.

-

- Kostenfreie und open-source Software. Läuft überall. -

-
- - Jetzt herunterladen - - - Xplorer die Dokumentation -{'>'} - -
-
-
- -
-
-
-

- Cross-Platform Datei-Explorer.{' '} - Unterstützt durch das Web. -

- - Erstellt mit{' '} - - Electron - {' '} - , basierend auf{' '} - - Chromium - - , und geschrieben mit{' '} - - TypeScript - {' '} - , Xplorer verspricht Ihnen eine beispiellose Erfahrung. - -
-
- Xplorer wurde out of the box entworfen -

Designed out of the box

-

- Sagen Sie sich vom alten Design der traditionellen App ab - und sagen Sie Hallo zu diesem einfachen aber leistungsstarken - Design. -

-
-
- Unterstützt Tabs -

Unterstützt mehrere Tabs

-

- Xplorer helps you organize you files easier by - das Unterstützen mehrerer Tabs zu organisieren . -

-
-
- -

Dateivorschau

-

- Xplorer unterstützt Dateivorschau, sogar Videos! - Erfahren Sie mehr{' '} - - hier - - . -

-
-
-
-
-
- ); + const { siteConfig } = useDocusaurusContext(); + return ( + +
+
+
+

Datei-Explorer.

+

Neudefiniert.

+

Free and Open Source Software. Runs everywhere.

+
+ + Jetzt herunterladen + + + Xplorer die Dokumentation -{'>'} + +
+
+
+ +
+
+
+

+ Cross-platform File Explorer. Unterstützt durch das Web. +

+ + Erstellt mit{' '} + + Tauri Framework + {' '} + , und geschrieben mit{' '} + + TypeScript + {' '} + for the frontend and{' '} + + Rust + {' '} + for the backend, Xplorer promises you an unprecedented experience. + +
+
+ Xplorer designed out of the box +

Designed out of the box

+

Say goodbye to the old design by traditional app and say hello to this simple yet powerful design.

+
+
+ Support tabs +

Unterstützt mehrere Tabs

+

Xplorer helps you organize you files easier by supporting multiple tabs .

+
+
+ +

Dateivorschau

+

+ Xplorer supports files preview, from images, code preview, pdfs, to videos. Erfahren Sie mehr{' '} + here. +

+
+
+
+
+
+ ); } diff --git a/docs/i18n/de-DE/docusaurus-plugin-content-pages/slideshow.jsx b/docs/i18n/de-DE/docusaurus-plugin-content-pages/slideshow.jsx index d19300bf..f3957684 100644 --- a/docs/i18n/de-DE/docusaurus-plugin-content-pages/slideshow.jsx +++ b/docs/i18n/de-DE/docusaurus-plugin-content-pages/slideshow.jsx @@ -1,53 +1,47 @@ import React, { useEffect, useState } from 'react'; const slides = [ - { - name: 'Windows', - src: '/img/Xplorer%20win.png', - alt: 'Xplorer on Windows', - }, - { - name: 'Garuda Linux', - src: '/img/Xplorer%20linux.png', - alt: 'Xplorer on Linux', - }, - { - name: 'macOS Catalina', - src: '/img/Xplorer%20mac.png', - alt: 'Xplorer on macOS', - }, + { + name: 'Windows', + src: '/img/Xplorer_dark.png', + alt: 'Xplorer on Windows', + }, + { + name: 'Garuda Linux', + src: '/img/Xplorer%20linux.png', + alt: 'Xplorer on Linux', + }, + { + name: 'macOS Catalina', + src: '/img/Xplorer%20mac.png', + alt: 'Xplorer on macOS', + }, ]; export default function Slideshow() { - const [index, setIndex] = useState(0); - useEffect(() => { - const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); - return () => clearInterval(handle); - }, []); - return ( - <> -
- {slides.map((e, i) => ( -
-
- {i + 1} / {slides.length} -
- {e.alt} -
{e.name}
-
- ))} -
-
- {[0, 1, 2].map((e) => ( - - ))} -
- - ); + const [index, setIndex] = useState(0); + useEffect(() => { + const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); + return () => clearInterval(handle); + }, []); + return ( + <> +
+ {slides.map((e, i) => ( +
+
+ {i + 1} / {slides.length} +
+ {e.alt} +
{e.name}
+
+ ))} +
+
+ {[0, 1, 2].map((e) => ( + + ))} +
+ + ); } diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs-community/current/support.md b/docs/i18n/es-ES/docusaurus-plugin-content-docs-community/current/support.md index c9716f04..f1ce249f 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-docs-community/current/support.md +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs-community/current/support.md @@ -1,34 +1,43 @@ --- sidebar_position: 1 --- + # Soporte + Xplorer is an open-source project which you can freely join and seek support 😊. On this page, we've listed some communities/forums you can participate in to seek support or help others. -Before participating in Xplorer's communities, please read our [Code Of Conduct](/community/CODE_OF_CONDUCT/). +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). ## Problemas + We use GitHub Issues to track public bugs. Por favor, asegúrese de que su descripción sea clara y tiene suficientes instrucciones para poder reproducir el problema. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). Please use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) instead to suggest a new feature. ## GitHub Discussions + GitHub Discussions is used for multiple purposes, such as: + 1. Asking questions 2. Making feature requests and sharing ideas 3. Xplorer Announcements 4. Chat on Xplorer 5. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! - ### Solicitar una característica + We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Las buenas solicitudes de características tienden a tener: -- Resumen rápido de la idea. -- Qué & por qué quiere añadir la característica específicada. -- Contexto adicional como imágenes, enlaces a recursos para implementar la función, etc. + +- Resumen rápido de la idea. +- Qué & por qué quiere añadir la característica específicada. +- Contexto adicional como imágenes, enlaces a recursos para implementar la función, etc. + ### Ayuda + You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) and others will answer you, just like Stack Overflow! :::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: ## Noticias + For the latest news about Xplorer, you can see it through the [official Xplorer blog](/blog) on this website. diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/Community/Contributing.md b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/Community/Contributing.md new file mode 100644 index 00000000..be326698 --- /dev/null +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/Community/Contributing.md @@ -0,0 +1,173 @@ +--- +sidebar_position: 2 +--- + +# Contribute + +👍🎉 First off, thanks for taking the time to contribute! 🎉👍 + +Xplorer is currently under heavy development. We are welcoming contributors to collaborate on Xplorer. + +## Get involved + +There are many ways to contribute to Xplorer, and many of them do not involve writing any code. Here are few ideas to get started: + +- Start using Xplorer! Go through the Tutorial guides. Does anything work as expected? If not, we're always looking for improvements. Let us know by opening an issue. +- Look through the [Xplorer issues](https://github.com/kimlimjustin/xplorer/issues). If you find an issue you would like to fix, [open a pull request](#first-pull-request). Issues tagged as [good first issue](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) are a good place to get started. +- Help us make the docs better. File an issue if you find anything that is confusing, any grammatical error, or can be improved. +- Take a look at [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and give your opinion into a discussion or consider opening a pull request if you see something you want to work on. + +Contributions are very welcome! + +## Our development process + +Xplorer uses [GitHub](https://github.com/kimlimjustin/xplorer) as its source of truth. The core team will work directly there. All changes will be public from the beginning. + +### Reporting new issues/bugs. {#issues} + +When [opening a new issue](https://github.com/kimlimjustin/xplorer/issues), always make sure to fill out the issue template. We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. + +- _One issue, one bug_: Please report a single bug per issue. +- _Provide reproduction steps_: List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort. + +### Feature Request {#feat} + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and [GitHub Issues](https://github.com/kimlimjustin/xplorer) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional references like images, links of resources about the feature, etc. + +## Working on Xplorer code + +### Prerequisite + +- [Tauri environment](https://tauri.studio/en/docs/getting-started/intro#setting-up-your-environment) +- [Node JS](https://nodejs.org/en/) +- [Git](https://git-scm.com/) +- [yarn](https://yarnpkg.com/) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +1. After cloning the repository, run `yarn` in the root of the repository and run `yarn` in the `docs` folder (if you want to working on Xplorer Docs). +2. To start Xplorer locally, run `yarn dev`. + + To start a local development server serving the Docusaurus docs, go into the `docs` directory and run `yarn start` + +### Gitpod {#gitpod-env} + +Gitpod is a Ready-to-Code environment in which you can get started immediately. Gitpod offers all dependencies pre-installed so you can just click and get started. + +To get started with Gitpod, click the button below and log in with your GitHub account. + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kimlimjustin/xplorer) + +:::note Remember to reload the Gitpod website after it loads up since it won't start the servers immediately, but by reloading, you can get it started. If you are developing the app, go to the Remote Explorer on the sidebar and visit port _6080_ which opens the noVNC app server. If you are developing the docs, go to the Remote explorer but instead of port 6080, visit port _3000_. You can edit normally as you do in VS Code, but if you want to use it locally, clik the hamburger menu button and click _Open in VS Code_. ::: + +### Semantic commit messages {#commit-msg} + +See how a minor change to your commit message style can make you a better programmer. + +Format: `(): ` + +`` is optional + +#### Example + +``` +feat: allow overriding of webpack config +^--^ ^------------^ +| | +| +-> Summary in present tense. +| ++-------> Type: chore, docs, feat, fix, refactor, style, or test. +``` + +the various types of commits: + +- `feat`: new feature for the user +- `fix`: bug fix for the user +- `docs`: changes to the documentation +- `style`: formatting, missing semi-colons, etc. +- `refactor`: refactoring production code, eg. renaming a variable +- `test`: adding missing tests, refactoring tests. +- `chore`: updating grunt tasks etc + +Use lower case not the upper case! + +## Working on Xplorer docs + +Xplorer documentation website is built using [Docusaurus 2](https://docusaurus.io/), and its code is located at [`docs`](https://github.com/kimlimjustin/xplorer/tree/master/docs) folder. + +### Prerequisite + +- [node js](https://nodejs.org/en/) +- [git](https://git-scm.com/downloads) +- [yarn](https://yarnpkg.com/getting-started/install#about-global-installs) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +After cloning the repository, run `yarn` in the `docs` folder (you can go into the `docs` folder by running the `cd docs` command). + +If you want to use Gitpod, click [here](#gitpod-env) for the guide on how to use Gitpod. + +### Local development + +1. Run the `yarn start` command in the `docs` folder. +2. Edit some markdown texts in the `docs` folder and the website will be hot reloaded. + +## Pull requests + +### Your first pull request. {#first-pull-request} + +So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at. + +Working on your first Pull Request? You can learn how from this free video series: + +How to Contribute to an Open Source Project on GitHub + +We have a list of [beginner-friendly issues](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) to help you get your feet wet in the Xplorer codebase and familiar with our contribution process. This is a great place to get started. + +### Proposing a change + +If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can also [open a discussion](#feat) and others will code it! + +If you intend to fix a bug, please discuss it through [Issues](#issues) before submitting a pull request. + +If you intend to add a new feature, please discuss it through [GitHub Discussions](#feat) to avoid multiple people working on the same feature request. + +### Sending a Pull Request + +make sure the PR does only one thing, otherwise please split it. It is recommended to follow this [commit message style](#commit-msg). + +1. Fork [the repository](https://github.com/kimlimjustin/xplorer) and create your branch from `master`. +2. Make changes and ensure your commit message is understandable. +3. Open a [PR](https://github.com/kimlimjustin/xplorer/pulls) and ensure to describe your pull request clearly. + +## Working on Xplorer resources + +### Locales + +We host our locales on the [crowdin](https://crwd.in/xplorer). To translate it, please follow these steps: + +- Sign up on [Crowdin](https://crowdin.com) and Join our project [here](https://crwd.in/xplorer). +- Make sure your locale exists there, if it does not exist, leave a comment in [this discussion](https://github.com/kimlimjustin/xplorer/discussions/30) and I'll add the language option :) +- Get familiar with the Crowdin translation UI, as you will need to use it to translate JSON and Markdown files +- Translate the content! + +#### Priority Files to translate on Crowdin + +1. `src/Locales` files +2. `docs/` files + +#### Production + +Once the files on `src/Locales` have been translated for more than 80%, we will add it into the Xplorer app, and for the docs, we will add it into production once the translation looks good! + +Please comment [here](https://github.com/kimlimjustin/xplorer/discussions/30) if you have any questions! + +### File Library + +The json library of file types and thumbnail are found under `lib` folder and the icons are found under `src/Icons` folder. You may add file types and icons for file extensions you want to use and submit a PR. diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/Community/support.md b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/Community/support.md new file mode 100644 index 00000000..8ea01be3 --- /dev/null +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/Community/support.md @@ -0,0 +1,42 @@ +--- +sidebar_position: 1 +--- + +# Support + +Xplorer is an open-source project which you can freely join and seek support 😊. + +On this page, we've listed some communities/forums you can participate in to seek support or help others. + +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). + +## Issues + +We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). + +## GitHub Discussions + +GitHub Discussions is used for multiple purposes, such as: + +1. Asking questions +2. Making feature requests and sharing ideas +3. Chat on Xplorer +4. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! + +### Feature Request + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) and [GitHub Issues](https://github.com/kimlimjustin/xplorer/issues) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + +### Help + +You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) or [Discord Channel](https://discord.gg/kK7rwxPt). + +:::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: + +## News + +For the latest news about Xplorer, you can see it through posts on [Forem](https://dev.to/t/xplorer). diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/common_problems.md b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/common_problems.md index 0329306c..ebdcac5f 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/common_problems.md +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/common_problems.md @@ -1,3 +1,7 @@ +- - - +sidebar_position: 3 +- - - + # Common Problems **NB: For common problems during installation, please open [here](/docs/install/#common-problems)** @@ -5,25 +9,6 @@
-### Xplorer keep loading and crashes. - - - -Try opening `cmd` by opening Win + R(Run) and type `cmd`. - -Enter following command: - -``` -wmic -``` - -If the output says the `wmic` is not recognized as internal or internal command, please follow the following steps given on [this](https://superuser.com/questions/1178674/wmic-is-not-recognized-as-an-internal-or-external-command-operable-program-or) or [this](https://knowledge.informatica.com/s/article/156865?language=en_US). Also, please make sure that Windows Defender isn't blocking Xplorer from accessing your documents. - -
- -
- - ### Opening folder like `Documents`, `Desktop`, `Downloads` make Xplorer crashes diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/_category_.json b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/_category_.json index f298072b..4e508230 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/_category_.json +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/_category_.json @@ -1,4 +1,4 @@ { - "label": "Guías", - "position": 3 -} \ No newline at end of file + "label": "Guías", + "position": 4 +} diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/cli.md b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/cli.md index b1e4244c..0effce0e 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/cli.md +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/cli.md @@ -1,7 +1,5 @@ # Ejecutar Xplorer desde la terminal -:::info This feature hasn't been optimized yet. Funciona, pero podría ser un poco bugueado. This will be optimized in the feature release. ::: - ## Comandos Xplorer CLI: @@ -10,28 +8,10 @@ Xplorer CLI: xplorer [dir1] [dir2] [dir3] ``` -Xplorer abrirá `dir`, `dir2`, `dir3` como pestañas. If there's no directory(dir) passed into the command, Xplorer will start at the Home page. - -Opciones: - -| Comando | Alias | Descripción | -| ----------- | ----- | ----------------------------------------------------- | -| `--help` | `-h` | Mostrar ayuda | -| `--version` | `-v` | Mostrar el número de versión | -| `--revelar` | `-r` | Abrir la carpeta contenedora y seleccionar el archivo | - -
- -xplorer: comando no encontrado error en Windows - - -En primer lugar, debe registrar el comando en la ruta del sistema. +Xplorer will open `dir`, `dir2`, `dir3` as tabs on Xplorer. If there's no directory(dir) passed into the command, Xplorer will start at the Home page. -1. Abrir `Propiedades del sistema` en Windows. -2. Click the `Environment Variables` button, it will pop up a window. -3. On the table, search for the `Path` variable and click on it. -4. Click the `Edit` button, it will pop up a window. -5. Click the `New` button. -6. Add `%USERPROFILE%\AppData\Local\Programs\xplorer`. +Options: -
+| Comando | Alias | Descripción | +| ---------- | ----- | ---------------------------------------------- | +| `--reveal` | `-r` | Open the containing folder and select the file | diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/operation.md b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/operation.md index 4804e090..75cdea48 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/operation.md +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/operation.md @@ -6,13 +6,9 @@ You can copy files by right-clicking it and click the `Copy` option or select th :::info -On Windows and macOS, Xplorer will copy the file paths into the local clipboard, because of this, you can copy a file from Xplorer and paste it into any folder in another system. However, on Linux, we create a string of Xplorer commands and copy it into the user clipboard, Xplorer will read the user's clipboard when pasting the file (because we haven't found any idea to implement it, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us). The string of the Xplorer command looks like this: +For current implementation, Xplorer write down what to copy locally (not copying to clipboard). -``` -Xplorer command - COPY -~/xplorer -~/test -``` +TODO: implement copy to clipboard ::: @@ -24,29 +20,27 @@ You can copy a file/folder location path into your clipboard by right-clicking i You can cut files by right-clicking it and click the `Cut` option or select the file then press `Ctrl + X` as a shortcut and paste it by clicking the `Paste` option or press `Ctrl + V` on the destination folder. -:::info This is done by creating a string of Xplorer command and copies it into the user clipboard to be used when pasting file (this is not integrated with the platform because we haven't found any idea, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us.). The string of Xplorer command looks like this: +:::info -``` -Xplorer command - CUT -E://xplorer -E://test -``` +For current implementation, Xplorer write down what to cut locally (not copying to clipboard). ::: ## Delete files -You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. The trashed file can be accessed at `xplorer://Trash`. +You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. -:::info +### Trashed files -- On Windows, this is done by creating a `Trash` folder on the `C:` drive and moving the file into it. -- On Linux, this feature is fully integrated with the system. -- On macOS, this is done by creating a `.local/Trash` folder on `homedir` and moving the file into it. +The trashed file can be accessed at `xplorer://Trash` or your system trash folder. :::danger Open Issue -We are still working on Windows on macOS to integrate the `Trash` folder, which will be released before the stable version came out. Feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us. +Please note that Trash folder cannot be accessed on macos via Xplorer since the [trash crate](https://github.com/Byron/trash-rs) Xplorer relies to does not support it (see [this issue](https://github.com/Byron/trash-rs/issues/8) for more details). -::: +Any contributions to either the trash crate or Xplorer itself for this topic are welcome. ::: + +### Restore files + +You can restore files by opening the `xplorer://Trash` and right-clicking it and click the `Restore` option ### Permanently delete @@ -100,71 +94,12 @@ You can preview a file directly from Xplorer by right-clicking it and click the Files available to preview for now: -```json -[ - ".pdf", - ".html", - ".docx", - ".htm", - ".xlsx", - ".xls", - ".xlsb", - "xls", - ".ods", - ".fods", - ".csv", - ".txt", - ".py", - ".js", - ".bat", - ".css", - ".c++", - ".cpp", - ".cc", - ".c", - ".diff", - ".patch", - ".go", - ".java", - ".json", - ".php", - ".ts", - ".tsx", - ".jsx", - ".jpg", - ".png", - ".gif", - ".bmp", - ".jpeg", - ".jpe", - ".jif", - ".jfif", - ".jfi", - ".webp", - ".tiff", - ".tif", - ".ico", - ".svg", - ".webp", - ".mp4", - ".webm", - ".mpg", - ".mp2", - ".mpeg", - ".mpe", - ".mpv", - ".ocg", - ".m4p", - ".m4v", - ".avi", - ".wmv", - ".mov", - ".qt", - ".flv", - ".swf", - ".md" -] -``` +* Markdown files +* Image files +* Text files +* Video files +* Pdfs +* Almost all programming language with syntax highlighting
diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/setting.md b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/setting.md index 8219e5f5..e48188a6 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/setting.md +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/setting.md @@ -12,29 +12,63 @@ You can open settings on Xplorer by clicking the `Settings` button on the left d How to exit from Settings? -You can exit from Settings on Xplorer by clicking the Arrow Up button on the upside left of Xplorer. +You can exit from Settings on Xplorer by clicking on the upside left of Xplorer. ![Settings](/img/docs/exit-settings.png) -## App Theme +## Appearance + +### App Theme You can change Xplorer's app theme on the `Appearance` tab of the Settings. Available default themes are `light`, `light+`, `dark`, and `dark+`. Besides, there is a `System Default` theme that will automatically read your system preference. :::info Xplorer will support a custom app theme soon, stay tuned! ::: -### Acrylic Effect +### Font Family + +You can change Xplorer's font family on the `Appearance` tab of the Settings to one of installed font families installed on your system. + +### Font Size + +You can change Xplorer's font size on the `Appearance` tab of the Settings. Please note that an ideal font size is between 10px to 30px. + +### Window Transparency + +Make Xplorer window transparent on the `Appearance` tab of the Settings by combining following options. Please note that an ideal transparency is between 70% to 100%. You can disable transparency by disable all of the transparency options. + +#### Transparent Sidebar -The Acrylic Effect is the effect that gives the transparency effect on the sidebar. Only works on Windows 10 and higher. +Make the sidebar transparent ![Transparent Sidebar](/img/docs/transparent-sidebar.png) -## File Preview +#### Transparent Topbar -The file preview here means the preview that replaces the default icon of a file. +Make the topbar transparent ![Transparent Topbar](/img/docs/transparent-topbar.png) -### Play video file as a preview +#### Transparent Workspace + +make the workspace transparent ![Transparent Workspace](/img/docs/transparent-workspace.png) + +### Frame Style + +You can choose the frame style on the `Appearance` tab of the Settings. The available options are `Default` and `System Default`. `Default` will use Xplorer's default style which is the same across platforms. `System Default` will use the system default frame style which is difference according to your platform. + +### File Preview + +File Preview here might means the file thumbnail. + +#### Automatically play video file as thumbnail This will automatically play the video file as a preview. :::caution THIS MIGHT CONSUME HIGH AMOUNT OF RAM This might consume a high amount of RAM because it's built on the HTML video player. You can just enable this setting and ignore this caution if you got a good-spec computer. ::: -### Extract `EXE` file icon and make it a preview +#### Preview image on hover + +This fill automatically show the image when you hovering it for 500ms. + +![Preview on hover](/img/docs/preview-on-hover.png) + +Some people might found it annoying and you can disable it by disabling this setting. + +#### Extract exe file icon and make it as the thumbnail This will parse and cache the icon from a `exe` file and make it a preview. Only on Windows. @@ -48,22 +82,43 @@ The way to fix it is to disable the setting. ::: -## Default file layout +:::info Open issue The current approach is by calling the powershell program which might pops up cmd windows. + +Any contribution to call it directly from Xplorer is welcome. ::: + +#### Show Image as Thumbnail + +This will show the image as a thumbnail of a file. Please note that this is not recommended for large directory as it reads the image to memory. + +#### Default file layout Default file layout of a directory. Just give it a try :) -## App Language +## Preference + +### App Language Localize Xplorer. Help us translate Xplorer [here](https://github.com/kimlimjustin/xplorer/discussions/30). -## Hide Hidden Files +### Hide Hidden Files Hide hidden files on Xplorer, you can find this setting on the `Preference` tab on Xplorer or by its shortcut, `Ctrl + H`. -## Hide System Files +### Hide System Files Hide Windows' system files on Xplorer. :::tip Learn what is system file [here](https://en.wikipedia.org/wiki/System_file). Just turn it off if you don't understand what it is. ::: -## List and sort directories alongside files +### List and sort directories alongside files If disabled, Xplorer will prioritize directories above files. + +### Detect Drive Change + +Turning this on will detect drive change and update the sidebar and drives section. Please note that this will take high ammount of RAM as this is not stabilized yet. + +### On startup + +Option to do on starting Xplorer. Available options are: + +- New Tab +- Continue previous session diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/shortcut.md b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/shortcut.md index 5a2ac3cb..1dcb2c04 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/shortcut.md +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/shortcut.md @@ -4,19 +4,22 @@ | ------------------- | ------------------------ | | `Ctrl + A` | Select All | | `Ctrl + C` | Copy | -| `Ctrl + E` | Close Tab | | `Ctrl + H` | Toggle Hidden Files | -| `Ctrl + O` | Preview file | +| `Ctrl + N` | New window shortcut | +| `Ctrl + O` | Open file in preview | | `Ctrl + P` | Files/Folders Properties | | `Ctrl + R` | Reload | | `Ctrl + T` | New Tab | | `Ctrl + V` | Paste | | `Ctrl + X` | Cut | -| `Ctrl + W` | Exit Xplorer | +| `Ctrl + W` | Exit Tab | +| `Ctrl + Y` | Redo | +| `Ctrl + Z` | Undo | +| `Ctrl + Shift + Z` | Redo | | `Alt + Left Arrow` | Go Back | | `Alt + Right Arrow` | Go Forward | -| `Alt + Up Arrow` | maximize | -| `Alt + Down Arrow` | minimize | +| `Alt + Up Arrow` | Go to parent directory | +| `Alt + N` | New File | | `Alt + T` | Open in terminal | | `Alt + P` | Pin to sidebar | | `Alt + Shift + C` | Copy location path | @@ -30,6 +33,6 @@ | `Enter` | Open | | `Del` | Delete file | -:::note Difference between `reload` and `refresh` `Reload` refreshes the internal HTML while `Refresh` refreshes the whole Electron process. +:::note Difference between `reload` and `refresh` `Reload` refreshes the internal process while `Refresh` refreshes the whole process. ::: diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/xplorer as default.md b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/xplorer as default.md index f575bfa4..e69d60f6 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/xplorer as default.md +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/guides/xplorer as default.md @@ -12,7 +12,7 @@ 4. Navigate to `Computer\HKEY_CURRENT_USER\Software\Classes\Directory` 5. Create a key named `shell` if not existed by right and set the default key-value to `openinxplorer` 6. Create a key named `openinxplorer` under `shell` -7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Users\User\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"` +7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Program Files\Xplorer\Xplorer.exe" "%V"`. (You may have to change `C:\Program Files\Xplorer\` to the location you installed Xplorer) ![Registry Structure](/img/docs/registry.png) diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/intro.md b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/intro.md index e93250eb..fd908730 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/intro.md +++ b/docs/i18n/es-ES/docusaurus-plugin-content-docs/current/intro.md @@ -8,14 +8,18 @@ sidebar_position: 1 Welcome to Xplorer, A Free and Open Source (FOSS) File Explorer. -Xplorer is a file explorer built from the ground up to be fully customizable and without customization, it also looks modern! It is cross-platform, built using Electron Technology that allowed our File Explorer to be run not only in Windows but also Linux and MacOS alike. It also allowed file preview directly inside it, not only pictures or documents but also videos! +Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern! -## Características +Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. -So to summarize, Xplorer's features contain: +To summarize, Xplorer's features contain: -- Interfaz moderna. +- It looks modern - Fácil de usar. - Multiplataforma. -- Previsualización de documentos y vídeos. -- Y sobre todo es gratis y de código abierto. Which mean you can change components inside if you see fit and you also don't need to make your wallet go dry or break the bank. +- [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos! +- Customizable +- Supports multiple tab +- Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit + +Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-pages/index.jsx b/docs/i18n/es-ES/docusaurus-plugin-content-pages/index.jsx index a3df6202..38990cae 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-pages/index.jsx +++ b/docs/i18n/es-ES/docusaurus-plugin-content-pages/index.jsx @@ -5,102 +5,69 @@ import Slideshow from './slideshow'; import Link from '@docusaurus/Link'; export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - -
-
-
-

File Explorer.

-

Redefined.

-

- Free and Open Source Software. Runs everywhere. -

-
- - Download now - - - Xplorer the docs -{'>'} - -
-
-
- -
-
-
-

- Cross-platform File Explorer.{' '} - Powered by the web. -

- - Built using the{' '} - - Electron - {' '} - , based on{' '} - - Chromium - - , and written using{' '} - - TypeScript - {' '} - , Xplorer promises you an unprecedented experience. - -
-
- Xplorer designed out of the box -

Designed out of the box

-

- Say goodbye to the old design by traditional app - and say hello to this simple yet powerful - design. -

-
-
- Support tabs -

Supports Multiple Tabs

-

- Xplorer helps you organize you files easier by - supporting multiple tabs . -

-
-
- -

File Preview

-

- Xplorer supports files preview, even videos! - Learn more{' '} - - here - - . -

-
-
-
-
-
- ); + const { siteConfig } = useDocusaurusContext(); + return ( + +
+
+
+

File Explorer.

+

Redefined.

+

Free and Open Source Software. Runs everywhere.

+
+ + Download now + + + Xplorer the docs -{'>'} + +
+
+
+ +
+
+
+

+ Cross-platform File Explorer. Powered by the web. +

+ + Built using the{' '} + + Tauri Framework + {' '} + , and written using{' '} + + TypeScript + {' '} + for the frontend and{' '} + + Rust + {' '} + for the backend, Xplorer promises you an unprecedented experience. + +
+
+ Xplorer designed out of the box +

Designed out of the box

+

Say goodbye to the old design by traditional app and say hello to this simple yet powerful design.

+
+
+ Support tabs +

Supports Multiple Tabs

+

Xplorer helps you organize you files easier by supporting multiple tabs .

+
+
+ +

File Preview

+

+ Xplorer supports files preview, from images, code preview, pdfs, to videos. Learn more{' '} + here. +

+
+
+
+
+
+ ); } diff --git a/docs/i18n/es-ES/docusaurus-plugin-content-pages/slideshow.jsx b/docs/i18n/es-ES/docusaurus-plugin-content-pages/slideshow.jsx index d19300bf..f3957684 100644 --- a/docs/i18n/es-ES/docusaurus-plugin-content-pages/slideshow.jsx +++ b/docs/i18n/es-ES/docusaurus-plugin-content-pages/slideshow.jsx @@ -1,53 +1,47 @@ import React, { useEffect, useState } from 'react'; const slides = [ - { - name: 'Windows', - src: '/img/Xplorer%20win.png', - alt: 'Xplorer on Windows', - }, - { - name: 'Garuda Linux', - src: '/img/Xplorer%20linux.png', - alt: 'Xplorer on Linux', - }, - { - name: 'macOS Catalina', - src: '/img/Xplorer%20mac.png', - alt: 'Xplorer on macOS', - }, + { + name: 'Windows', + src: '/img/Xplorer_dark.png', + alt: 'Xplorer on Windows', + }, + { + name: 'Garuda Linux', + src: '/img/Xplorer%20linux.png', + alt: 'Xplorer on Linux', + }, + { + name: 'macOS Catalina', + src: '/img/Xplorer%20mac.png', + alt: 'Xplorer on macOS', + }, ]; export default function Slideshow() { - const [index, setIndex] = useState(0); - useEffect(() => { - const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); - return () => clearInterval(handle); - }, []); - return ( - <> -
- {slides.map((e, i) => ( -
-
- {i + 1} / {slides.length} -
- {e.alt} -
{e.name}
-
- ))} -
-
- {[0, 1, 2].map((e) => ( - - ))} -
- - ); + const [index, setIndex] = useState(0); + useEffect(() => { + const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); + return () => clearInterval(handle); + }, []); + return ( + <> +
+ {slides.map((e, i) => ( +
+
+ {i + 1} / {slides.length} +
+ {e.alt} +
{e.name}
+
+ ))} +
+
+ {[0, 1, 2].map((e) => ( + + ))} +
+ + ); } diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs-community/current/support.md b/docs/i18n/id-ID/docusaurus-plugin-content-docs-community/current/support.md index 4b7abaf4..1cc993b6 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-docs-community/current/support.md +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs-community/current/support.md @@ -1,34 +1,43 @@ --- sidebar_position: 1 --- + # Support + Xplorer is an open-source project which you can freely join and seek support 😊. On this page, we've listed some communities/forums you can participate in to seek support or help others. -Before participating in Xplorer's communities, please read our [Code Of Conduct](/community/CODE_OF_CONDUCT/). +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). ## Issues + We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). Please use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) instead to suggest a new feature. ## GitHub Discussions + GitHub Discussions is used for multiple purposes, such as: + 1. Asking questions 2. Making feature requests and sharing ideas 3. Xplorer Announcements 4. Chat on Xplorer 5. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! - ### Feature Request + We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: -- A quick idea summary. -- What & why you wanted to add the specific feature. -- Additional context like images, links to resources to implement the feature, etc. + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + ### Help + You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) and others will answer you, just like Stack Overflow! :::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: ## News + For the latest news about Xplorer, you can see it through the [official Xplorer blog](/blog) on this website. diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/Community/Contributing.md b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/Community/Contributing.md new file mode 100644 index 00000000..be326698 --- /dev/null +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/Community/Contributing.md @@ -0,0 +1,173 @@ +--- +sidebar_position: 2 +--- + +# Contribute + +👍🎉 First off, thanks for taking the time to contribute! 🎉👍 + +Xplorer is currently under heavy development. We are welcoming contributors to collaborate on Xplorer. + +## Get involved + +There are many ways to contribute to Xplorer, and many of them do not involve writing any code. Here are few ideas to get started: + +- Start using Xplorer! Go through the Tutorial guides. Does anything work as expected? If not, we're always looking for improvements. Let us know by opening an issue. +- Look through the [Xplorer issues](https://github.com/kimlimjustin/xplorer/issues). If you find an issue you would like to fix, [open a pull request](#first-pull-request). Issues tagged as [good first issue](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) are a good place to get started. +- Help us make the docs better. File an issue if you find anything that is confusing, any grammatical error, or can be improved. +- Take a look at [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and give your opinion into a discussion or consider opening a pull request if you see something you want to work on. + +Contributions are very welcome! + +## Our development process + +Xplorer uses [GitHub](https://github.com/kimlimjustin/xplorer) as its source of truth. The core team will work directly there. All changes will be public from the beginning. + +### Reporting new issues/bugs. {#issues} + +When [opening a new issue](https://github.com/kimlimjustin/xplorer/issues), always make sure to fill out the issue template. We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. + +- _One issue, one bug_: Please report a single bug per issue. +- _Provide reproduction steps_: List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort. + +### Feature Request {#feat} + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and [GitHub Issues](https://github.com/kimlimjustin/xplorer) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional references like images, links of resources about the feature, etc. + +## Working on Xplorer code + +### Prerequisite + +- [Tauri environment](https://tauri.studio/en/docs/getting-started/intro#setting-up-your-environment) +- [Node JS](https://nodejs.org/en/) +- [Git](https://git-scm.com/) +- [yarn](https://yarnpkg.com/) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +1. After cloning the repository, run `yarn` in the root of the repository and run `yarn` in the `docs` folder (if you want to working on Xplorer Docs). +2. To start Xplorer locally, run `yarn dev`. + + To start a local development server serving the Docusaurus docs, go into the `docs` directory and run `yarn start` + +### Gitpod {#gitpod-env} + +Gitpod is a Ready-to-Code environment in which you can get started immediately. Gitpod offers all dependencies pre-installed so you can just click and get started. + +To get started with Gitpod, click the button below and log in with your GitHub account. + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kimlimjustin/xplorer) + +:::note Remember to reload the Gitpod website after it loads up since it won't start the servers immediately, but by reloading, you can get it started. If you are developing the app, go to the Remote Explorer on the sidebar and visit port _6080_ which opens the noVNC app server. If you are developing the docs, go to the Remote explorer but instead of port 6080, visit port _3000_. You can edit normally as you do in VS Code, but if you want to use it locally, clik the hamburger menu button and click _Open in VS Code_. ::: + +### Semantic commit messages {#commit-msg} + +See how a minor change to your commit message style can make you a better programmer. + +Format: `(): ` + +`` is optional + +#### Example + +``` +feat: allow overriding of webpack config +^--^ ^------------^ +| | +| +-> Summary in present tense. +| ++-------> Type: chore, docs, feat, fix, refactor, style, or test. +``` + +the various types of commits: + +- `feat`: new feature for the user +- `fix`: bug fix for the user +- `docs`: changes to the documentation +- `style`: formatting, missing semi-colons, etc. +- `refactor`: refactoring production code, eg. renaming a variable +- `test`: adding missing tests, refactoring tests. +- `chore`: updating grunt tasks etc + +Use lower case not the upper case! + +## Working on Xplorer docs + +Xplorer documentation website is built using [Docusaurus 2](https://docusaurus.io/), and its code is located at [`docs`](https://github.com/kimlimjustin/xplorer/tree/master/docs) folder. + +### Prerequisite + +- [node js](https://nodejs.org/en/) +- [git](https://git-scm.com/downloads) +- [yarn](https://yarnpkg.com/getting-started/install#about-global-installs) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +After cloning the repository, run `yarn` in the `docs` folder (you can go into the `docs` folder by running the `cd docs` command). + +If you want to use Gitpod, click [here](#gitpod-env) for the guide on how to use Gitpod. + +### Local development + +1. Run the `yarn start` command in the `docs` folder. +2. Edit some markdown texts in the `docs` folder and the website will be hot reloaded. + +## Pull requests + +### Your first pull request. {#first-pull-request} + +So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at. + +Working on your first Pull Request? You can learn how from this free video series: + +How to Contribute to an Open Source Project on GitHub + +We have a list of [beginner-friendly issues](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) to help you get your feet wet in the Xplorer codebase and familiar with our contribution process. This is a great place to get started. + +### Proposing a change + +If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can also [open a discussion](#feat) and others will code it! + +If you intend to fix a bug, please discuss it through [Issues](#issues) before submitting a pull request. + +If you intend to add a new feature, please discuss it through [GitHub Discussions](#feat) to avoid multiple people working on the same feature request. + +### Sending a Pull Request + +make sure the PR does only one thing, otherwise please split it. It is recommended to follow this [commit message style](#commit-msg). + +1. Fork [the repository](https://github.com/kimlimjustin/xplorer) and create your branch from `master`. +2. Make changes and ensure your commit message is understandable. +3. Open a [PR](https://github.com/kimlimjustin/xplorer/pulls) and ensure to describe your pull request clearly. + +## Working on Xplorer resources + +### Locales + +We host our locales on the [crowdin](https://crwd.in/xplorer). To translate it, please follow these steps: + +- Sign up on [Crowdin](https://crowdin.com) and Join our project [here](https://crwd.in/xplorer). +- Make sure your locale exists there, if it does not exist, leave a comment in [this discussion](https://github.com/kimlimjustin/xplorer/discussions/30) and I'll add the language option :) +- Get familiar with the Crowdin translation UI, as you will need to use it to translate JSON and Markdown files +- Translate the content! + +#### Priority Files to translate on Crowdin + +1. `src/Locales` files +2. `docs/` files + +#### Production + +Once the files on `src/Locales` have been translated for more than 80%, we will add it into the Xplorer app, and for the docs, we will add it into production once the translation looks good! + +Please comment [here](https://github.com/kimlimjustin/xplorer/discussions/30) if you have any questions! + +### File Library + +The json library of file types and thumbnail are found under `lib` folder and the icons are found under `src/Icons` folder. You may add file types and icons for file extensions you want to use and submit a PR. diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/Community/support.md b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/Community/support.md new file mode 100644 index 00000000..8ea01be3 --- /dev/null +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/Community/support.md @@ -0,0 +1,42 @@ +--- +sidebar_position: 1 +--- + +# Support + +Xplorer is an open-source project which you can freely join and seek support 😊. + +On this page, we've listed some communities/forums you can participate in to seek support or help others. + +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). + +## Issues + +We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). + +## GitHub Discussions + +GitHub Discussions is used for multiple purposes, such as: + +1. Asking questions +2. Making feature requests and sharing ideas +3. Chat on Xplorer +4. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! + +### Feature Request + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) and [GitHub Issues](https://github.com/kimlimjustin/xplorer/issues) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + +### Help + +You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) or [Discord Channel](https://discord.gg/kK7rwxPt). + +:::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: + +## News + +For the latest news about Xplorer, you can see it through posts on [Forem](https://dev.to/t/xplorer). diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/common_problems.md b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/common_problems.md index 0329306c..ebdcac5f 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/common_problems.md +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/common_problems.md @@ -1,3 +1,7 @@ +- - - +sidebar_position: 3 +- - - + # Common Problems **NB: For common problems during installation, please open [here](/docs/install/#common-problems)** @@ -5,25 +9,6 @@
-### Xplorer keep loading and crashes. - - - -Try opening `cmd` by opening Win + R(Run) and type `cmd`. - -Enter following command: - -``` -wmic -``` - -If the output says the `wmic` is not recognized as internal or internal command, please follow the following steps given on [this](https://superuser.com/questions/1178674/wmic-is-not-recognized-as-an-internal-or-external-command-operable-program-or) or [this](https://knowledge.informatica.com/s/article/156865?language=en_US). Also, please make sure that Windows Defender isn't blocking Xplorer from accessing your documents. - -
- -
- - ### Opening folder like `Documents`, `Desktop`, `Downloads` make Xplorer crashes diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/_category_.json b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/_category_.json index 2a648072..b1419d2f 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/_category_.json +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/_category_.json @@ -1,4 +1,4 @@ { - "label": "Guides", - "position": 3 -} \ No newline at end of file + "label": "Guides", + "position": 4 +} diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/cli.md b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/cli.md index b1ea164c..e125b4f0 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/cli.md +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/cli.md @@ -1,7 +1,5 @@ # Launch Xplorer from Terminal -:::info This feature hasn't been optimized yet. It works but it might be laggy. This will be optimized in the feature release. ::: - ## Commands Xplorer CLI: @@ -14,24 +12,6 @@ Xplorer will open `dir`, `dir2`, `dir3` as tabs on Xplorer. If there's no direct Options: -| Command | Alias | Description | -| ----------- | ----- | ---------------------------------------------- | -| `--help` | `-h` | Show help | -| `--version` | `-v` | Show version number | -| `--reveal` | `-r` | Open the containing folder and select the file | - -
- -xplorer: command not found error on Windows - - -Firstly, you have to register the command into the system path. - -1. Open the `System Properties` on Windows. -2. Click the `Environment Variables` button, it will pop up a window. -3. On the table, search for the `Path` variable and click on it. -4. Click the `Edit` button, it will pop up a window. -5. Click the `New` button. -6. Add `%USERPROFILE%\AppData\Local\Programs\xplorer`. - -
+| Command | Alias | Description | +| ---------- | ----- | ---------------------------------------------- | +| `--reveal` | `-r` | Open the containing folder and select the file | diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/operation.md b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/operation.md index 4804e090..75cdea48 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/operation.md +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/operation.md @@ -6,13 +6,9 @@ You can copy files by right-clicking it and click the `Copy` option or select th :::info -On Windows and macOS, Xplorer will copy the file paths into the local clipboard, because of this, you can copy a file from Xplorer and paste it into any folder in another system. However, on Linux, we create a string of Xplorer commands and copy it into the user clipboard, Xplorer will read the user's clipboard when pasting the file (because we haven't found any idea to implement it, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us). The string of the Xplorer command looks like this: +For current implementation, Xplorer write down what to copy locally (not copying to clipboard). -``` -Xplorer command - COPY -~/xplorer -~/test -``` +TODO: implement copy to clipboard ::: @@ -24,29 +20,27 @@ You can copy a file/folder location path into your clipboard by right-clicking i You can cut files by right-clicking it and click the `Cut` option or select the file then press `Ctrl + X` as a shortcut and paste it by clicking the `Paste` option or press `Ctrl + V` on the destination folder. -:::info This is done by creating a string of Xplorer command and copies it into the user clipboard to be used when pasting file (this is not integrated with the platform because we haven't found any idea, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us.). The string of Xplorer command looks like this: +:::info -``` -Xplorer command - CUT -E://xplorer -E://test -``` +For current implementation, Xplorer write down what to cut locally (not copying to clipboard). ::: ## Delete files -You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. The trashed file can be accessed at `xplorer://Trash`. +You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. -:::info +### Trashed files -- On Windows, this is done by creating a `Trash` folder on the `C:` drive and moving the file into it. -- On Linux, this feature is fully integrated with the system. -- On macOS, this is done by creating a `.local/Trash` folder on `homedir` and moving the file into it. +The trashed file can be accessed at `xplorer://Trash` or your system trash folder. :::danger Open Issue -We are still working on Windows on macOS to integrate the `Trash` folder, which will be released before the stable version came out. Feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us. +Please note that Trash folder cannot be accessed on macos via Xplorer since the [trash crate](https://github.com/Byron/trash-rs) Xplorer relies to does not support it (see [this issue](https://github.com/Byron/trash-rs/issues/8) for more details). -::: +Any contributions to either the trash crate or Xplorer itself for this topic are welcome. ::: + +### Restore files + +You can restore files by opening the `xplorer://Trash` and right-clicking it and click the `Restore` option ### Permanently delete @@ -100,71 +94,12 @@ You can preview a file directly from Xplorer by right-clicking it and click the Files available to preview for now: -```json -[ - ".pdf", - ".html", - ".docx", - ".htm", - ".xlsx", - ".xls", - ".xlsb", - "xls", - ".ods", - ".fods", - ".csv", - ".txt", - ".py", - ".js", - ".bat", - ".css", - ".c++", - ".cpp", - ".cc", - ".c", - ".diff", - ".patch", - ".go", - ".java", - ".json", - ".php", - ".ts", - ".tsx", - ".jsx", - ".jpg", - ".png", - ".gif", - ".bmp", - ".jpeg", - ".jpe", - ".jif", - ".jfif", - ".jfi", - ".webp", - ".tiff", - ".tif", - ".ico", - ".svg", - ".webp", - ".mp4", - ".webm", - ".mpg", - ".mp2", - ".mpeg", - ".mpe", - ".mpv", - ".ocg", - ".m4p", - ".m4v", - ".avi", - ".wmv", - ".mov", - ".qt", - ".flv", - ".swf", - ".md" -] -``` +* Markdown files +* Image files +* Text files +* Video files +* Pdfs +* Almost all programming language with syntax highlighting
diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/setting.md b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/setting.md index 8219e5f5..e48188a6 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/setting.md +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/setting.md @@ -12,29 +12,63 @@ You can open settings on Xplorer by clicking the `Settings` button on the left d How to exit from Settings? -You can exit from Settings on Xplorer by clicking the Arrow Up button on the upside left of Xplorer. +You can exit from Settings on Xplorer by clicking on the upside left of Xplorer. ![Settings](/img/docs/exit-settings.png) -## App Theme +## Appearance + +### App Theme You can change Xplorer's app theme on the `Appearance` tab of the Settings. Available default themes are `light`, `light+`, `dark`, and `dark+`. Besides, there is a `System Default` theme that will automatically read your system preference. :::info Xplorer will support a custom app theme soon, stay tuned! ::: -### Acrylic Effect +### Font Family + +You can change Xplorer's font family on the `Appearance` tab of the Settings to one of installed font families installed on your system. + +### Font Size + +You can change Xplorer's font size on the `Appearance` tab of the Settings. Please note that an ideal font size is between 10px to 30px. + +### Window Transparency + +Make Xplorer window transparent on the `Appearance` tab of the Settings by combining following options. Please note that an ideal transparency is between 70% to 100%. You can disable transparency by disable all of the transparency options. + +#### Transparent Sidebar -The Acrylic Effect is the effect that gives the transparency effect on the sidebar. Only works on Windows 10 and higher. +Make the sidebar transparent ![Transparent Sidebar](/img/docs/transparent-sidebar.png) -## File Preview +#### Transparent Topbar -The file preview here means the preview that replaces the default icon of a file. +Make the topbar transparent ![Transparent Topbar](/img/docs/transparent-topbar.png) -### Play video file as a preview +#### Transparent Workspace + +make the workspace transparent ![Transparent Workspace](/img/docs/transparent-workspace.png) + +### Frame Style + +You can choose the frame style on the `Appearance` tab of the Settings. The available options are `Default` and `System Default`. `Default` will use Xplorer's default style which is the same across platforms. `System Default` will use the system default frame style which is difference according to your platform. + +### File Preview + +File Preview here might means the file thumbnail. + +#### Automatically play video file as thumbnail This will automatically play the video file as a preview. :::caution THIS MIGHT CONSUME HIGH AMOUNT OF RAM This might consume a high amount of RAM because it's built on the HTML video player. You can just enable this setting and ignore this caution if you got a good-spec computer. ::: -### Extract `EXE` file icon and make it a preview +#### Preview image on hover + +This fill automatically show the image when you hovering it for 500ms. + +![Preview on hover](/img/docs/preview-on-hover.png) + +Some people might found it annoying and you can disable it by disabling this setting. + +#### Extract exe file icon and make it as the thumbnail This will parse and cache the icon from a `exe` file and make it a preview. Only on Windows. @@ -48,22 +82,43 @@ The way to fix it is to disable the setting. ::: -## Default file layout +:::info Open issue The current approach is by calling the powershell program which might pops up cmd windows. + +Any contribution to call it directly from Xplorer is welcome. ::: + +#### Show Image as Thumbnail + +This will show the image as a thumbnail of a file. Please note that this is not recommended for large directory as it reads the image to memory. + +#### Default file layout Default file layout of a directory. Just give it a try :) -## App Language +## Preference + +### App Language Localize Xplorer. Help us translate Xplorer [here](https://github.com/kimlimjustin/xplorer/discussions/30). -## Hide Hidden Files +### Hide Hidden Files Hide hidden files on Xplorer, you can find this setting on the `Preference` tab on Xplorer or by its shortcut, `Ctrl + H`. -## Hide System Files +### Hide System Files Hide Windows' system files on Xplorer. :::tip Learn what is system file [here](https://en.wikipedia.org/wiki/System_file). Just turn it off if you don't understand what it is. ::: -## List and sort directories alongside files +### List and sort directories alongside files If disabled, Xplorer will prioritize directories above files. + +### Detect Drive Change + +Turning this on will detect drive change and update the sidebar and drives section. Please note that this will take high ammount of RAM as this is not stabilized yet. + +### On startup + +Option to do on starting Xplorer. Available options are: + +- New Tab +- Continue previous session diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/shortcut.md b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/shortcut.md index 5a2ac3cb..1dcb2c04 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/shortcut.md +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/shortcut.md @@ -4,19 +4,22 @@ | ------------------- | ------------------------ | | `Ctrl + A` | Select All | | `Ctrl + C` | Copy | -| `Ctrl + E` | Close Tab | | `Ctrl + H` | Toggle Hidden Files | -| `Ctrl + O` | Preview file | +| `Ctrl + N` | New window shortcut | +| `Ctrl + O` | Open file in preview | | `Ctrl + P` | Files/Folders Properties | | `Ctrl + R` | Reload | | `Ctrl + T` | New Tab | | `Ctrl + V` | Paste | | `Ctrl + X` | Cut | -| `Ctrl + W` | Exit Xplorer | +| `Ctrl + W` | Exit Tab | +| `Ctrl + Y` | Redo | +| `Ctrl + Z` | Undo | +| `Ctrl + Shift + Z` | Redo | | `Alt + Left Arrow` | Go Back | | `Alt + Right Arrow` | Go Forward | -| `Alt + Up Arrow` | maximize | -| `Alt + Down Arrow` | minimize | +| `Alt + Up Arrow` | Go to parent directory | +| `Alt + N` | New File | | `Alt + T` | Open in terminal | | `Alt + P` | Pin to sidebar | | `Alt + Shift + C` | Copy location path | @@ -30,6 +33,6 @@ | `Enter` | Open | | `Del` | Delete file | -:::note Difference between `reload` and `refresh` `Reload` refreshes the internal HTML while `Refresh` refreshes the whole Electron process. +:::note Difference between `reload` and `refresh` `Reload` refreshes the internal process while `Refresh` refreshes the whole process. ::: diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/xplorer as default.md b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/xplorer as default.md index f575bfa4..e69d60f6 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/xplorer as default.md +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/guides/xplorer as default.md @@ -12,7 +12,7 @@ 4. Navigate to `Computer\HKEY_CURRENT_USER\Software\Classes\Directory` 5. Create a key named `shell` if not existed by right and set the default key-value to `openinxplorer` 6. Create a key named `openinxplorer` under `shell` -7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Users\User\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"` +7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Program Files\Xplorer\Xplorer.exe" "%V"`. (You may have to change `C:\Program Files\Xplorer\` to the location you installed Xplorer) ![Registry Structure](/img/docs/registry.png) diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/intro.md b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/intro.md index 50635c41..f126703b 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/intro.md +++ b/docs/i18n/id-ID/docusaurus-plugin-content-docs/current/intro.md @@ -8,14 +8,18 @@ sidebar_position: 1 Welcome to Xplorer, A Free and Open Source (FOSS) File Explorer. -Xplorer is a file explorer built from the ground up to be fully customizable and without customization, it also looks modern! It is cross-platform, built using Electron Technology that allowed our File Explorer to be run not only in Windows but also Linux and MacOS alike. It also allowed file preview directly inside it, not only pictures or documents but also videos! +Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern! -## Fitur +Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. -So to summarize, Xplorer's features contain: +To summarize, Xplorer's features contain: -- Terlihat modern +- It looks modern - Mudah digunakan - Lintas-perangkat -- Melihat (_preview_) file secara _native_ langsung didalam aplikasi! -- Yang terpenting, Gratis dan Open Source! Which mean you can change components inside if you see fit and you also don't need to make your wallet go dry or break the bank. +- [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos! +- Customizable +- Supports multiple tab +- Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit + +Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-pages/index.jsx b/docs/i18n/id-ID/docusaurus-plugin-content-pages/index.jsx index a1234bae..6a2f799a 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-pages/index.jsx +++ b/docs/i18n/id-ID/docusaurus-plugin-content-pages/index.jsx @@ -5,102 +5,69 @@ import Slideshow from './slideshow'; import Link from '@docusaurus/Link'; export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - -
-
-
-

Penjelajah File

-

Redefinisi.

-

- Aplikasi Bebas dan Bersumber Terbuka (Foss). Dapat dijalankan dimana saja. -

-
- - Unduh sekarang - - - Xplorer the dokumentasi -{'>'} - -
-
-
- -
-
-
-

- Penjelajah File Lintas Platform.{' '} - Bertenaga website -

- - Dibangun dengan menggunakan{' '} - - Electron - {' '} - , berbasis{' '} - - Chromium - - , dan diketik dengan{' '} - - TypeScript - {' '} - , Xplorer menjanjikan anda pengalaman yang tidak biasa. - -
-
- Xplorer designed out of the box -

Designed out of the box

-

- Katakan sampai jumpa pada desain aplikasi traditional - dan katakan halo kepada desain yang simple tetapi berguna ini - . -

-
-
- Support tabs -

Mendukung beberapa tab

-

- Xplorer helps you organize you files easier by - menunjang banyak tab . -

-
-
- -

File Preview

-

- Xplorer mendukung preview file, bahkan video! - Pelajari lebih lanjut{' '} - - disini - - . -

-
-
-
-
-
- ); + const { siteConfig } = useDocusaurusContext(); + return ( + +
+
+
+

Penjelajah File

+

Redefinisi.

+

Free and Open Source Software. Runs everywhere.

+
+ + Unduh sekarang + + + Xplorer the dokumentasi -{'>'} + +
+
+
+ +
+
+
+

+ Cross-platform File Explorer. Bertenaga website +

+ + Dibangun dengan menggunakan{' '} + + Tauri Framework + {' '} + , dan diketik dengan{' '} + + TypeScript + {' '} + for the frontend and{' '} + + Rust + {' '} + for the backend, Xplorer promises you an unprecedented experience. + +
+
+ Xplorer designed out of the box +

Designed out of the box

+

Say goodbye to the old design by traditional app and say hello to this simple yet powerful design.

+
+
+ Support tabs +

Mendukung beberapa tab

+

Xplorer helps you organize you files easier by supporting multiple tabs .

+
+
+ +

File Preview

+

+ Xplorer supports files preview, from images, code preview, pdfs, to videos. Pelajari lebih lanjut{' '} + here. +

+
+
+
+
+
+ ); } diff --git a/docs/i18n/id-ID/docusaurus-plugin-content-pages/slideshow.jsx b/docs/i18n/id-ID/docusaurus-plugin-content-pages/slideshow.jsx index d19300bf..f3957684 100644 --- a/docs/i18n/id-ID/docusaurus-plugin-content-pages/slideshow.jsx +++ b/docs/i18n/id-ID/docusaurus-plugin-content-pages/slideshow.jsx @@ -1,53 +1,47 @@ import React, { useEffect, useState } from 'react'; const slides = [ - { - name: 'Windows', - src: '/img/Xplorer%20win.png', - alt: 'Xplorer on Windows', - }, - { - name: 'Garuda Linux', - src: '/img/Xplorer%20linux.png', - alt: 'Xplorer on Linux', - }, - { - name: 'macOS Catalina', - src: '/img/Xplorer%20mac.png', - alt: 'Xplorer on macOS', - }, + { + name: 'Windows', + src: '/img/Xplorer_dark.png', + alt: 'Xplorer on Windows', + }, + { + name: 'Garuda Linux', + src: '/img/Xplorer%20linux.png', + alt: 'Xplorer on Linux', + }, + { + name: 'macOS Catalina', + src: '/img/Xplorer%20mac.png', + alt: 'Xplorer on macOS', + }, ]; export default function Slideshow() { - const [index, setIndex] = useState(0); - useEffect(() => { - const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); - return () => clearInterval(handle); - }, []); - return ( - <> -
- {slides.map((e, i) => ( -
-
- {i + 1} / {slides.length} -
- {e.alt} -
{e.name}
-
- ))} -
-
- {[0, 1, 2].map((e) => ( - - ))} -
- - ); + const [index, setIndex] = useState(0); + useEffect(() => { + const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); + return () => clearInterval(handle); + }, []); + return ( + <> +
+ {slides.map((e, i) => ( +
+
+ {i + 1} / {slides.length} +
+ {e.alt} +
{e.name}
+
+ ))} +
+
+ {[0, 1, 2].map((e) => ( + + ))} +
+ + ); } diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs-community/current/support.md b/docs/i18n/pt-BR/docusaurus-plugin-content-docs-community/current/support.md index 2660e694..940df022 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-docs-community/current/support.md +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs-community/current/support.md @@ -1,34 +1,43 @@ --- sidebar_position: 1 --- + # Suporte + Xplorer é um projeto de código aberto no qual você pode entrar livremente e buscar suporte 😊. Nesta página nós listamos algumas comunidades/fóruns em que você pode participar para procurar apoio ou ajudar outros. -Antes de participar das comunidades do Xplorer, leia nosso [Código de Conduta](/community/CODE_OF_CONDUCT/). +Antes de participar das comunidades do Xplorer, leia nosso [Código de Conduta](/docs/community/CODE_OF_CONDUCT/). ## Issues + Usamos issues no GitHub para rastrear bugs públicos. Por favor, certifique-se de que sua descrição seja clara e tenha instruções suficientes para reproduzir o problema. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). Por favor, use [Discussão GitHub](https://github.com/kimlimjustin/xplorer/discussions) para sugerir um novo recurso. ## Discussões no GitHub + Discussão do GitHub é usada para múltiplos fins, tais como: + 1. Fazer Perguntas 2. Fazendo solicitações de recursos e compartilhando ideias 3. Anúncios do Xplorer 4. Chat do Xplorer 5. Mostrar e dizer: Fazendo temas/plug-ins personalizados para Xplorer e mostrando-os lá! - ### Solicitar Recurso + Usamos a [Discussão do GitHub](https://github.com/kimlimjustin/xplorer/discussion) para avaliar ideias dos usuários. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! As ótimas solicitações de recursos tendem a ter: -- Um resumo rápido da ideia. -- O que & por que você queria adicionar o recurso específico. -- Contexto adicional, como imagens, links para os recursos para implementar o recurso, etc. + +- Um resumo rápido da ideia. +- O que & por que você queria adicionar o recurso específico. +- Contexto adicional, como imagens, links para os recursos para implementar o recurso, etc. + ### Ajuda + You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) and others will answer you, just like Stack Overflow! :::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: ## Novidades + For the latest news about Xplorer, you can see it through the [official Xplorer blog](/blog) on this website. diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/Community/Contributing.md b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/Community/Contributing.md new file mode 100644 index 00000000..be326698 --- /dev/null +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/Community/Contributing.md @@ -0,0 +1,173 @@ +--- +sidebar_position: 2 +--- + +# Contribute + +👍🎉 First off, thanks for taking the time to contribute! 🎉👍 + +Xplorer is currently under heavy development. We are welcoming contributors to collaborate on Xplorer. + +## Get involved + +There are many ways to contribute to Xplorer, and many of them do not involve writing any code. Here are few ideas to get started: + +- Start using Xplorer! Go through the Tutorial guides. Does anything work as expected? If not, we're always looking for improvements. Let us know by opening an issue. +- Look through the [Xplorer issues](https://github.com/kimlimjustin/xplorer/issues). If you find an issue you would like to fix, [open a pull request](#first-pull-request). Issues tagged as [good first issue](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) are a good place to get started. +- Help us make the docs better. File an issue if you find anything that is confusing, any grammatical error, or can be improved. +- Take a look at [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and give your opinion into a discussion or consider opening a pull request if you see something you want to work on. + +Contributions are very welcome! + +## Our development process + +Xplorer uses [GitHub](https://github.com/kimlimjustin/xplorer) as its source of truth. The core team will work directly there. All changes will be public from the beginning. + +### Reporting new issues/bugs. {#issues} + +When [opening a new issue](https://github.com/kimlimjustin/xplorer/issues), always make sure to fill out the issue template. We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. + +- _One issue, one bug_: Please report a single bug per issue. +- _Provide reproduction steps_: List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort. + +### Feature Request {#feat} + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and [GitHub Issues](https://github.com/kimlimjustin/xplorer) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional references like images, links of resources about the feature, etc. + +## Working on Xplorer code + +### Prerequisite + +- [Tauri environment](https://tauri.studio/en/docs/getting-started/intro#setting-up-your-environment) +- [Node JS](https://nodejs.org/en/) +- [Git](https://git-scm.com/) +- [yarn](https://yarnpkg.com/) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +1. After cloning the repository, run `yarn` in the root of the repository and run `yarn` in the `docs` folder (if you want to working on Xplorer Docs). +2. To start Xplorer locally, run `yarn dev`. + + To start a local development server serving the Docusaurus docs, go into the `docs` directory and run `yarn start` + +### Gitpod {#gitpod-env} + +Gitpod is a Ready-to-Code environment in which you can get started immediately. Gitpod offers all dependencies pre-installed so you can just click and get started. + +To get started with Gitpod, click the button below and log in with your GitHub account. + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kimlimjustin/xplorer) + +:::note Remember to reload the Gitpod website after it loads up since it won't start the servers immediately, but by reloading, you can get it started. If you are developing the app, go to the Remote Explorer on the sidebar and visit port _6080_ which opens the noVNC app server. If you are developing the docs, go to the Remote explorer but instead of port 6080, visit port _3000_. You can edit normally as you do in VS Code, but if you want to use it locally, clik the hamburger menu button and click _Open in VS Code_. ::: + +### Semantic commit messages {#commit-msg} + +See how a minor change to your commit message style can make you a better programmer. + +Format: `(): ` + +`` is optional + +#### Example + +``` +feat: allow overriding of webpack config +^--^ ^------------^ +| | +| +-> Summary in present tense. +| ++-------> Type: chore, docs, feat, fix, refactor, style, or test. +``` + +the various types of commits: + +- `feat`: new feature for the user +- `fix`: bug fix for the user +- `docs`: changes to the documentation +- `style`: formatting, missing semi-colons, etc. +- `refactor`: refactoring production code, eg. renaming a variable +- `test`: adding missing tests, refactoring tests. +- `chore`: updating grunt tasks etc + +Use lower case not the upper case! + +## Working on Xplorer docs + +Xplorer documentation website is built using [Docusaurus 2](https://docusaurus.io/), and its code is located at [`docs`](https://github.com/kimlimjustin/xplorer/tree/master/docs) folder. + +### Prerequisite + +- [node js](https://nodejs.org/en/) +- [git](https://git-scm.com/downloads) +- [yarn](https://yarnpkg.com/getting-started/install#about-global-installs) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +After cloning the repository, run `yarn` in the `docs` folder (you can go into the `docs` folder by running the `cd docs` command). + +If you want to use Gitpod, click [here](#gitpod-env) for the guide on how to use Gitpod. + +### Local development + +1. Run the `yarn start` command in the `docs` folder. +2. Edit some markdown texts in the `docs` folder and the website will be hot reloaded. + +## Pull requests + +### Your first pull request. {#first-pull-request} + +So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at. + +Working on your first Pull Request? You can learn how from this free video series: + +How to Contribute to an Open Source Project on GitHub + +We have a list of [beginner-friendly issues](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) to help you get your feet wet in the Xplorer codebase and familiar with our contribution process. This is a great place to get started. + +### Proposing a change + +If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can also [open a discussion](#feat) and others will code it! + +If you intend to fix a bug, please discuss it through [Issues](#issues) before submitting a pull request. + +If you intend to add a new feature, please discuss it through [GitHub Discussions](#feat) to avoid multiple people working on the same feature request. + +### Sending a Pull Request + +make sure the PR does only one thing, otherwise please split it. It is recommended to follow this [commit message style](#commit-msg). + +1. Fork [the repository](https://github.com/kimlimjustin/xplorer) and create your branch from `master`. +2. Make changes and ensure your commit message is understandable. +3. Open a [PR](https://github.com/kimlimjustin/xplorer/pulls) and ensure to describe your pull request clearly. + +## Working on Xplorer resources + +### Locales + +We host our locales on the [crowdin](https://crwd.in/xplorer). To translate it, please follow these steps: + +- Sign up on [Crowdin](https://crowdin.com) and Join our project [here](https://crwd.in/xplorer). +- Make sure your locale exists there, if it does not exist, leave a comment in [this discussion](https://github.com/kimlimjustin/xplorer/discussions/30) and I'll add the language option :) +- Get familiar with the Crowdin translation UI, as you will need to use it to translate JSON and Markdown files +- Translate the content! + +#### Priority Files to translate on Crowdin + +1. `src/Locales` files +2. `docs/` files + +#### Production + +Once the files on `src/Locales` have been translated for more than 80%, we will add it into the Xplorer app, and for the docs, we will add it into production once the translation looks good! + +Please comment [here](https://github.com/kimlimjustin/xplorer/discussions/30) if you have any questions! + +### File Library + +The json library of file types and thumbnail are found under `lib` folder and the icons are found under `src/Icons` folder. You may add file types and icons for file extensions you want to use and submit a PR. diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/Community/support.md b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/Community/support.md new file mode 100644 index 00000000..8ea01be3 --- /dev/null +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/Community/support.md @@ -0,0 +1,42 @@ +--- +sidebar_position: 1 +--- + +# Support + +Xplorer is an open-source project which you can freely join and seek support 😊. + +On this page, we've listed some communities/forums you can participate in to seek support or help others. + +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). + +## Issues + +We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). + +## GitHub Discussions + +GitHub Discussions is used for multiple purposes, such as: + +1. Asking questions +2. Making feature requests and sharing ideas +3. Chat on Xplorer +4. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! + +### Feature Request + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) and [GitHub Issues](https://github.com/kimlimjustin/xplorer/issues) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + +### Help + +You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) or [Discord Channel](https://discord.gg/kK7rwxPt). + +:::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: + +## News + +For the latest news about Xplorer, you can see it through posts on [Forem](https://dev.to/t/xplorer). diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/common_problems.md b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/common_problems.md index 4bbb4c6f..3356dc6e 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/common_problems.md +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/common_problems.md @@ -1,3 +1,7 @@ +- - - +sidebar_position: 3 +- - - + # Problemas comuns **NB: For common problems during installation, please open [here](/docs/install/#common-problems)** @@ -5,32 +9,13 @@
-### Xplorer continua carregando e travando. - - - -Try opening `cmd` by opening Win + R(Run) and type `cmd`. - -Insira o seguinte comando: - -``` -wmic -``` - -If the output says the `wmic` is not recognized as internal or internal command, please follow the following steps given on [this](https://superuser.com/questions/1178674/wmic-is-not-recognized-as-an-internal-or-external-command-operable-program-or) or [this](https://knowledge.informatica.com/s/article/156865?language=en_US). Also, please make sure that Windows Defender isn't blocking Xplorer from accessing your documents. - -
- -
- - -### Abrir pastas como `Documentos`,` Desktop`, `Downloads` faz o Xplorer travar +### Opening folder like `Documents`, `Desktop`, `Downloads` make Xplorer crashes -Desabilite a opção [`Extrair o ícone do arquivo exe e deixe-o como configuração de pré-visualização`](/docs/guides/setting/#extract-exe-file-icon-and-make-it-a-preview). +Disable the [`Extract exe file icon and make it as preview`](/docs/guides/setting/#extract-exe-file-icon-and-make-it-a-preview) setting. -Além disso, certifique-se de que o Windows Defender não esteja bloqueando o acesso do Xplorer aos seus documentos. +Also, please make sure that windows defender isn't blocking Xplorer from accessing your documents.
diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/_category_.json b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/_category_.json index 4fcbfec1..edf0a6dc 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/_category_.json +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/_category_.json @@ -1,4 +1,4 @@ { - "label": "Guias", - "position": 3 -} \ No newline at end of file + "label": "Guias", + "position": 4 +} diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/cli.md b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/cli.md index ac043cee..35e9347a 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/cli.md +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/cli.md @@ -1,7 +1,5 @@ # Inicie o Xplorer no Terminal -:::info Esta funcionalidade não foi otimizada ainda. Funciona mas pode estar lagando. Será otimizado na versão de lançamento. ::: - ## Comandos Xplorer CLI: @@ -10,28 +8,10 @@ Xplorer CLI: xplorer [dir1] [dir2] [dir3] ``` -O Xplorer abrirá o `dir`, `dir2`, `dir3` como guias no Xplorer. If there's no directory(dir) passed into the command, Xplorer will start at the Home page. - -Opções: - -| Comando | Alias | Descrição | -| ----------- | ----- | ---------------------------------- | -| `--help` | `-h` | Mostrar ajuda | -| `--version` | `-v` | Mostrar número da versão | -| `--reveal` | `-r` | Abra a pasta e selecione o arquivo | - -
- -xplorer: comando não encontrado erro no Windows - - -Em primeiro lugar, você tem que registrar o comando no caminho do sistema. +Xplorer will open `dir`, `dir2`, `dir3` as tabs on Xplorer. If there's no directory(dir) passed into the command, Xplorer will start at the Home page. -1. Abra as `Propriedades do Sistema` no Windows. -2. Clique no botão `Variáveis de ambiente`, ele irá exibir uma janela. -3. Na tabela, pesquise pela variável `Path` e clique nela. -4. Clique no botão `Editar`, irá exibir uma janela. -5. Clique no botão `Novo`. -6. Adicione `%USERPROFILE%\AppData\Local\Programs\xplorer`. +Options: -
+| Comando | Alias | Descrição | +| ---------- | ----- | ---------------------------------------------- | +| `--reveal` | `-r` | Open the containing folder and select the file | diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/operation.md b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/operation.md index 619b72b4..d3f6af30 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/operation.md +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/operation.md @@ -6,165 +6,100 @@ Você pode copiar arquivos clicando com o botão direito e clicar na opção `Co :::info -No Windows e no macOS, o Xplorer irá copiar o caminho dos arquivos para a área de transferência local, por isso, você pode copiar um arquivo do Xplorer e colá-lo em qualquer pasta em outro sistema. No entanto, no Linux, nós criamos uma string nos comandos do Xplorer e a copiamos para a área de transferência do usuário, o Xplorer irá ler a área de transferência do usuário ao colar o arquivo (porque não encontramos nenhuma ideia para implementá-lo, sinta-se à vontade para [abrir um PR](/community/Contributing/#pull-requests) se você puder nos ajudar). A string nos comandos do Xplorer se parece dessa forma: +For current implementation, Xplorer write down what to copy locally (not copying to clipboard). -``` -Xplorer command - COPY -~/xplorer -~/test -``` +TODO: implement copy to clipboard ::: ## Copiar caminho de localização -Você pode copiar um caminho de localização de arquivo/pasta para a área de transferência clicando com o botão direito do mouse e clicando em `Copiar caminho de localização` ou selecione o arquivo e pressione `Alt + Shift + C` no teclado. +You can copy a file/folder location path into your clipboard by right-clicking it and click `Copy Location Path` or select the file then press `Alt + Shift + C` as a shortcut. ## Recortar arquivo -Você pode recortar arquivos clicando com o botão direito e clicando na opção `Recortar` ou selecione o arquivo e pressione `Ctrl + X` no teclado, e para colá-lo clicando no botão `Colar` ou pressione ` Ctrl + V ` na pasta de destino. +You can cut files by right-clicking it and click the `Cut` option or select the file then press `Ctrl + X` as a shortcut and paste it by clicking the `Paste` option or press `Ctrl + V` on the destination folder. -:::info Isso é feito criando uma string nos comandos do Xplorer e a copia para a área de transferência do usuário para ser usada ao colar o arquivo (não está integrado com a plataforma porque não encontramos nenhuma ideia, sinta-se à vontade para [abrir um PR](/community/Contributing/#pull-requests) se você puder nos ajudar.). A string nos comandos do Xplorer se parece dessa forma: +:::info -``` -Xplorer command - CUT -E://xplorer -E://test -``` +For current implementation, Xplorer write down what to cut locally (not copying to clipboard). ::: ## Apagar arquivos -Você pode apagar arquivos clicando com o botão direito e selecionando a opção `Delete` ou selecionando o arquivo e pressionando `Del` no teclado. O arquivo na lixeira pode ser acessado em `xplorer://Trash`. +You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. -:::info +### Trashed files -- No Windows, isto é feito criando uma pasta `Lixeira` em `Disco Local C:` e movendo o arquivo até ela. -- No Linux, esta função está totalmente integrada com o sistema. -- No macOS, isso é feito criando uma pasta `.local/Lixeira` no diretório `homedir` e movendo o arquivo para ele. +The trashed file can be accessed at `xplorer://Trash` or your system trash folder. :::danger Open Issue -Nós estamos trabalhando para integrar a `Lixeira` no Windows e macOS, será lançado antes do lançamento da versão estável. Sinta-se livre para [abrir um PR](/community/Contributing/#pull-requests) se você puder nos ajudar. +Please note that Trash folder cannot be accessed on macos via Xplorer since the [trash crate](https://github.com/Byron/trash-rs) Xplorer relies to does not support it (see [this issue](https://github.com/Byron/trash-rs/issues/8) for more details). -::: +Any contributions to either the trash crate or Xplorer itself for this topic are welcome. ::: + +### Restore files + +You can restore files by opening the `xplorer://Trash` and right-clicking it and click the `Restore` option -### Excluir permanentemente +### Permanently delete -:::danger Um arquivo excluído permanentemente não pode ser restaurado. Por favor, verifique novamente antes de excluir permanentemente os arquivos. +:::danger A permanently deleted file cannot be restored. Please check again before permanently delete any files. ::: -Você pode excluir um arquivo permanentemente das seguintes formas: +You can permanently delete a file by: 1. Exclua-o na `Lixeira`, clique com o botão direito e clique na opção `Excluir Permanentemente` 2. Selecione o arquivo e pressione `Shift + Del` no teclado ## Novo -:::caution Tenha cuidado com o novo nome de arquivo/pasta Tratamentos do Xplorer `/` no nome/pasta do arquivo como subdir/subarquivo ::: +:::caution Be careful with new file/folder name Xplorer treats `/` on file name/folder as subdir/subfile ::: -### Novo arquivo +### New file -Você pode criar um novo arquivo clicando com o botão direito do mouse na área de trabalho, selecione a opção `Novo` e selecione a opção `Arquivo` ou pressione `Alt + N` no teclado. +You can create a new file by right-clicking the workspace, expand the `New` option and select the `file` option, or press `Alt + N` as a shortcut. -### Nova Pasta +### New folder -Você pode criar uma nova pasta clicando com o botão direito do mouse na área de trabalho, selecione a opção `Novo` e selecione a opção `Pasta` ou pressione `Shift + N` no teclado. +You can create a new folder by right-clicking the workspace, expand the `New` option and select the `folder` option, or press `Shift + N` as a shortcut. ## Abrir arquivo -Você pode abrir um arquivo com o aplicativo padrão clicando duas vezes com o mouse ou selecionando o arquivo e pressionando `Enter` no teclado. +You can open a file on the default application by double-clicking it or select the file then press `Enter` as a shortcut. -### Abrir no terminal +### Open in Terminal -Esta é uma função integrada do Xplorer. Você pode abrir uma pasta no Terminal clicando com o botão direito e clique na opção `Abrir no terminal` ou selecionando a pasta e pressione `Alt + T` no teclado. +This is a built-in function by Xplorer. You can open a folder on Terminal by right-clicking it and click the `Open in terminal` option or select the folder then press `Alt + T` as a shortcut. -### Abrir no VSCode +### Open in VSCode -Esta é uma função integrada do Xplorer. Você pode abrir um arquivo/pasta no VSCode clicando com o botão direito e clicando na opção `Abrir no VSCode` ou selecionando o arquivo e pressione `Ctrl + Enter` no teclado. Você não será capaz de fazer isso se não tiver o VSCode instalado. +This is a built-in function by Xplorer. You can open a file/folder on VSCode by right-clicking it and click the `Open in vscode` option or select the file then press `Ctrl + Enter` as a shortcut. You won't able to do this if you don't have VSCode installed. ## Fixar na Barra Lateral -Você pode fixar um arquivo/pasta na barra lateral clicando com o botão direito e clicando em `Fixar na barra lateral` ou selecionando o arquivo e pressionando `Alt + P` no teclado. +You can pin a file/folder into the sidebar by right-clicking it and click `Pin to Sidebar` or select the file then press `Alt + P` as a shortcut. ## Pré-visualizar arquivo -Você pode pré-visualizar um arquivo diretamente do Xplorer clicando com o botão direito do mouse sobre ele e clique em `Pré-visualizar` ou selecione o arquivo, em seguida, pressione `Ctrl + O` no teclado. +You can preview a file directly from Xplorer by right-clicking it and click the `Preview` option or select the file then press `Ctrl+O`. -![Pré-visualizar demonstração](/img/docs/preview.png) +![Preview Demo](/img/docs/preview.png) :::info
-Arquivos disponíveis para pré-visualização agora: +Files available to preview for now: -```json -[ - ".pdf", - ".html", - ".docx", - ".htm", - ".xlsx", - ".xls", - ".xlsb", - "xls", - ".ods", - ".fods", - ".csv", - ".txt", - ".py", - ".js", - ".bat", - ".css", - ".c++", - ".cpp", - ".cc", - ".c", - ".diff", - ".patch", - ".go", - ".java", - ".json", - ".php", - ".ts", - ".tsx", - ".jsx", - ".jpg", - ".png", - ".gif", - ".bmp", - ".jpeg", - ".jpe", - ".jif", - ".jfif", - ".jfi", - ".webp", - ".tiff", - ".tif", - ".ico", - ".svg", - ".webp", - ".mp4", - ".webm", - ".mpg", - ".mp2", - ".mpeg", - ".mpe", - ".mpv", - ".ocg", - ".m4p", - ".m4v", - ".avi", - ".wmv", - ".mov", - ".qt", - ".flv", - ".swf", - ".md" -] -``` +* Markdown files +* Image files +* Text files +* Video files +* Pdfs +* Almost all programming language with syntax highlighting
@@ -172,7 +107,7 @@ Arquivos disponíveis para pré-visualização agora: ## Propriedades -Você pode ver as propriedades de um arquivo ou pasta clicando com o botão direito e selecionando a opção `Propriedades` ou selecionando o arquivo e pressionando `Ctrl + P` no teclado. Propriedades disponíveis por agora (serão melhoradas na próxima versão): +You can view properties of a file/folder by right-clicking it and click `Properties` or select the file then press `Ctrl + P` as a shortcut. Available properties for now (will be improved at the next version): - Tamanho - Caminho do Arquivo @@ -183,4 +118,4 @@ Você pode ver as propriedades de um arquivo ou pasta clicando com o botão dire ## Renomear o arquivo/pasta -Você pode renomear um arquivo/pasta clicando com o botão direito do mouse nele e clique na opção `Renomear` ou selecione o arquivo e pressione `F2` no teclado. Ele irá solicitar um diálogo, digite o novo nome e o arquivo/pasta serão renomeados. +You can rename a file/folder by right-clicking it and click the `Rename` option or select the file then press `F2` as a shortcut. It will prompt a dialog, enter the new name and the file/folder will be renamed. diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/setting.md b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/setting.md index 1087f0c8..a770561b 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/setting.md +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/setting.md @@ -12,33 +12,67 @@ Você pode abrir as configurações no Xplorer clicando no botão `Ajustes` à e How to exit from Settings? -You can exit from Settings on Xplorer by clicking the Arrow Up button on the upside left of Xplorer. +You can exit from Settings on Xplorer by clicking on the upside left of Xplorer. ![Ajustes](/img/docs/exit-settings.png) -## Tema do Aplicativo +## Appearance + +### App Theme Você pode alterar o tema do aplicativo do Xplorer's na aba `Aparência` das Configurações. Temas padrão disponíveis são `light`, `light+`, `dark` e `dark+`. Além disso, tem o tema `System Default` que irá ler automaticamente suas preferências do sistema. :::info O Xplorer suporta tema personalizado em breve, fique ligado! ::: -### Efeito Acrílico +### Font Family + +You can change Xplorer's font family on the `Appearance` tab of the Settings to one of installed font families installed on your system. + +### Font Size + +You can change Xplorer's font size on the `Appearance` tab of the Settings. Please note that an ideal font size is between 10px to 30px. + +### Window Transparency + +Make Xplorer window transparent on the `Appearance` tab of the Settings by combining following options. Please note that an ideal transparency is between 70% to 100%. You can disable transparency by disable all of the transparency options. + +#### Transparent Sidebar + +Make the sidebar transparent ![Transparent Sidebar](/img/docs/transparent-sidebar.png) + +#### Transparent Topbar + +Make the topbar transparent ![Transparent Topbar](/img/docs/transparent-topbar.png) + +#### Transparent Workspace + +make the workspace transparent ![Transparent Workspace](/img/docs/transparent-workspace.png) + +### Frame Style + +You can choose the frame style on the `Appearance` tab of the Settings. The available options are `Default` and `System Default`. `Default` will use Xplorer's default style which is the same across platforms. `System Default` will use the system default frame style which is difference according to your platform. -O efeito acrítico é o efeito que dá o efeito de transparência na barra lateral. Só funciona no Windows 10 ou superior. +### File Preview -## Pré-visualização de Arquivo +File Preview here might means the file thumbnail. -A pré-visualização de arquivo aqui significa a pré-visualização que substitui o ícone padrão de um arquivo. +#### Automatically play video file as thumbnail -### Reproduzir vídeo como pré-visualização +This will automatically play the video file as a preview. :::caution THIS MIGHT CONSUME HIGH AMOUNT OF RAM This might consume a high amount of RAM because it's built on the HTML video player. You can just enable this setting and ignore this caution if you got a good-spec computer. ::: -Isto irá reproduzir automaticamente o arquivo de vídeo como visualização. :::caution, ISTO PODE CONSUMIR MAIS RAM Isso pode consumir uma quantidade escondida de RAM porque é construído sobre o reprodutor de vídeo HTML. Você pode apenas habilitar essa configuração e ignorar essa cautela se você tem um bom computador. ::: +#### Preview image on hover -### Extrair o ícone de arquivo `EXE` e torná-lo como pré-visualização +This fill automatically show the image when you hovering it for 500ms. -Isso irá analisar e armazenar em cache o ícone de um arquivo `exe` e torná-lo uma prévia. Apenas no Windows. +![Preview on hover](/img/docs/preview-on-hover.png) -![Extrair ícone do arquivo Exe](/img/docs/extract-exe-icon.png) +Some people might found it annoying and you can disable it by disabling this setting. + +#### Extract exe file icon and make it as the thumbnail + +This will parse and cache the icon from a `exe` file and make it a preview. Only on Windows. + +![Extract Exe file icon](/img/docs/extract-exe-icon.png) :::warning This might causes Xplorer to crash. @@ -48,22 +82,43 @@ The way to fix it is to disable the setting. ::: -## Layout de arquivo padrão +:::info Open issue The current approach is by calling the powershell program which might pops up cmd windows. + +Any contribution to call it directly from Xplorer is welcome. ::: + +#### Show Image as Thumbnail + +This will show the image as a thumbnail of a file. Please note that this is not recommended for large directory as it reads the image to memory. + +#### Default file layout + +Default file layout of a directory. Just give it a try :) + +## Preference + +### App Language + +Localize Xplorer. Help us translate Xplorer [here](https://github.com/kimlimjustin/xplorer/discussions/30). + +### Hide Hidden Files + +Hide hidden files on Xplorer, you can find this setting on the `Preference` tab on Xplorer or by its shortcut, `Ctrl + H`. -Layout de arquivo padrão de um diretório. Experimente :) +### Hide System Files -## Idioma do Aplicativo +Hide Windows' system files on Xplorer. :::tip Learn what is system file [here](https://en.wikipedia.org/wiki/System_file). Just turn it off if you don't understand what it is. ::: -Localize Xplorer. Ajude-nos a traduzir o Xplorer [aqui](https://github.com/kimlimjustin/xplorer/discussions/30). +### List and sort directories alongside files -## Esconder arquivos ocultos +If disabled, Xplorer will prioritize directories above files. -Para ocultar arquivos no Xplorer, você pode encontrar esta configuração na guia `Preferências` no Xplorer ou por seu atalho, `Ctrl + H`. +### Detect Drive Change -## Esconder arquivos do sistema +Turning this on will detect drive change and update the sidebar and drives section. Please note that this will take high ammount of RAM as this is not stabilized yet. -Ocultar arquivos de sistema do Windows no Xplorer. :::tip Aprenda o que é arquivo de sistema [aqui](https://en.wikipedia.org/wiki/System_file). Apenas desligue-o se você não entender o que é. ::: +### On startup -## Listar e ordenar diretórios juntamente com arquivos +Option to do on starting Xplorer. Available options are: -Se desativado, o Xplorer priorizará os diretórios acima dos arquivos. +- New Tab +- Continue previous session diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/shortcut.md b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/shortcut.md index 31963a0c..703beada 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/shortcut.md +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/shortcut.md @@ -1,35 +1,38 @@ # Atalhos -| Atalho | Descrição | -| --------------------- | -------------------------------- | -| `Ctrl + A` | Selecionar Tudo | -| `Ctrl + C` | Copiar | -| `Ctrl + E` | Fechar a Aba | -| `Ctrl + H` | Mostrar/Ocultar Arquivos Ocultos | -| `Ctrl + O` | Pré-visualizar arquivo | -| `Ctrl + P` | Propriedades Arquivos/Pastas | -| `Ctrl + R` | Recarregar | -| `Ctrl + T` | Nova Aba | -| `Ctrl + V` | Colar | -| `Ctrl + X` | Recortar | -| `Ctrl + W` | Sair do Xplorer | -| `Alt + Seta Esquerda` | Voltar | -| `Alt + Seta Direita` | Avançar | -| `Alt + Seta Cima` | Maximizar | -| `Alt + Seta Baixo` | Minimizar | -| `Alt + T` | Abrir no Terminal | -| `Alt + P` | Fixar na barra lateral | -| `Alt + Shift + C` | Copiar caminho de localização | -| `F2` | Renomear | -| `F5` | Atualizar | -| `F10` | Minimizar | -| `F11` | Maximizar | -| `Shift + N` | Nova Pasta | -| `Shift + Del` | Excluir Permanentemente | -| `Shift + Enter` | Abrir no VSCode | -| `Enter` | Abrir | -| `Del` | Apagar | +| Atalho | Descrição | +| ------------------- | ---------------------------- | +| `Ctrl + A` | Selecionar Tudo | +| `Ctrl + C` | Copiar | +| `Ctrl + H` | Toggle Hidden Files | +| `Ctrl + N` | New window shortcut | +| `Ctrl + O` | Open file in preview | +| `Ctrl + P` | Propriedades Arquivos/Pastas | +| `Ctrl + R` | Recarregar | +| `Ctrl + T` | Nova Aba | +| `Ctrl + V` | Colar | +| `Ctrl + X` | Recortar | +| `Ctrl + W` | Exit Tab | +| `Ctrl + Y` | Redo | +| `Ctrl + Z` | Undo | +| `Ctrl + Shift + Z` | Redo | +| `Alt + Left Arrow` | Go Back | +| `Alt + Right Arrow` | Go Forward | +| `Alt + Up Arrow` | Go to parent directory | +| `Alt + N` | New File | +| `Alt + T` | Open in terminal | +| `Alt + P` | Pin to sidebar | +| `Alt + Shift + C` | Copy location path | +| `F2` | Rename | +| `F5` | Refresh | +| `F10` | Minimize | +| `F11` | Maximize | +| `Shift + N` | New Folders | +| `Shift + Del` | Permanent Delete | +| `Shift + Enter` | Open in vscode | +| `Enter` | Open | +| `Del` | Delete file | -:::note Diferença entre `Recarregar` e `Atualizar` `Recarregar` atualiza o HTML interno enquanto `Atualizar` atualiza todo o processo do Electron. +:::note Difference between `reload` and `refresh` `Reload` refreshes the internal process while `Refresh` refreshes the whole process. ::: diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/xplorer as default.md b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/xplorer as default.md index 6d63c3c8..d90db55a 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/xplorer as default.md +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/guides/xplorer as default.md @@ -12,7 +12,7 @@ 4. Navegue para `Computer\HKEY_CURRENT_USER\Software\Classes\Directory` 5. Create a key named `shell` if not existed by right and set the default key-value to `openinxplorer` 6. Crie uma chave chamada `openinxplorer` em `shell` -7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Users\User\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"` +7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Program Files\Xplorer\Xplorer.exe" "%V"`. (You may have to change `C:\Program Files\Xplorer\` to the location you installed Xplorer) ![Estrutura do Registro](/img/docs/registry.png) diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/intro.md b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/intro.md index 2affd1ac..634e7bbc 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/intro.md +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-docs/current/intro.md @@ -6,16 +6,20 @@ sidebar_position: 1 ## Sumário -Welcome to Xplorer, A Free and Open Source (FOSS) File Explorer. +Bem vindo ao Xplorer, Um Explorador de Arquivos de Código Aberto e Grátis (FOSS). -O Xplorer é um explorador de arquivos construído do zero para ser totalmente personalizável, também parece moderno! É multiplataforma, feita utilizando a tecnologia Electron que permitiu que o File Explorer fosse executado não apenas no Windows, mas também no Linux e MacOS. Também permite a pré-visualização de arquivos diretamente dentro dele, não só de fotos ou documentos, mas também de vídeos! +Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern! -## Funcionalidades +Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. -Então, resumindo, os recursos do Xplorer: +To summarize, Xplorer's features contain: -- Parece moderno +- It looks modern - Fácil de usar - Multi-plataforma -- Pré-visualização de Arquivo, até mesmo vídeos! -- O mais importante, é gratuito e de código aberto! Which mean you can change components inside if you see fit and you also don't need to make your wallet go dry or break the bank. +- [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos! +- Customizable +- Supports multiple tab +- Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit + +Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-pages/index.jsx b/docs/i18n/pt-BR/docusaurus-plugin-content-pages/index.jsx index af0bfb03..df4e4c70 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-pages/index.jsx +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-pages/index.jsx @@ -5,102 +5,69 @@ import Slideshow from './slideshow'; import Link from '@docusaurus/Link'; export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - -
-
-
-

Explorador de Arquivos

-

Redefinido.

-

- Software gratuito e de Código Aberto. Roda em todos os lugares. -

-
- - Baixe agora - - - Xplore a documentação -{'>'} - -
-
-
- -
-
-
-

- Explorador de Arquivos Multiplataforma.{' '} - Desenvolvido pela web. -

- - Criado usando o{' '} - - Electron - {' '} - , baseado em{' '} - - Chromium - - , e escrito usando{' '} - - TypeScript - {' '} - , Xplorer promete uma experiência sem precedentes. - -
-
- Xplorer designed out of the box -

Desenhado fora da caixa

-

- Diga adeus ao design antigo do app tradicional - e diga olá a este design simples, mas poderoso - . -

-
-
- Support tabs -

Suporta Múltiplas Abas

-

- Xplorer helps you organize you files easier by - suportando várias abas. -

-
-
- -

Pré-visualização de arquivo

-

- O Xplorer suporta visualização de arquivos, até vídeos! - Saiba mais{' '} - - aqui - - . -

-
-
-
-
-
- ); + const { siteConfig } = useDocusaurusContext(); + return ( + +
+
+
+

Explorador de Arquivos

+

Redefinido.

+

Free and Open Source Software. Runs everywhere.

+
+ + Baixe agora + + + Xplore a documentação -{'>'} + +
+
+
+ +
+
+
+

+ Cross-platform File Explorer. Desenvolvido pela web. +

+ + Criado usando o{' '} + + Tauri Framework + {' '} + , e escrito usando{' '} + + TypeScript + {' '} + for the frontend and{' '} + + Rust + {' '} + for the backend, Xplorer promises you an unprecedented experience. + +
+
+ Xplorer designed out of the box +

Desenhado fora da caixa

+

Say goodbye to the old design by traditional app and say hello to this simple yet powerful design.

+
+
+ Support tabs +

Suporta Múltiplas Abas

+

Xplorer helps you organize you files easier by supporting multiple tabs .

+
+
+ +

Pré-visualização de arquivo

+

+ Xplorer supports files preview, from images, code preview, pdfs, to videos. Saiba mais{' '} + here. +

+
+
+
+
+
+ ); } diff --git a/docs/i18n/pt-BR/docusaurus-plugin-content-pages/slideshow.jsx b/docs/i18n/pt-BR/docusaurus-plugin-content-pages/slideshow.jsx index d19300bf..f3957684 100644 --- a/docs/i18n/pt-BR/docusaurus-plugin-content-pages/slideshow.jsx +++ b/docs/i18n/pt-BR/docusaurus-plugin-content-pages/slideshow.jsx @@ -1,53 +1,47 @@ import React, { useEffect, useState } from 'react'; const slides = [ - { - name: 'Windows', - src: '/img/Xplorer%20win.png', - alt: 'Xplorer on Windows', - }, - { - name: 'Garuda Linux', - src: '/img/Xplorer%20linux.png', - alt: 'Xplorer on Linux', - }, - { - name: 'macOS Catalina', - src: '/img/Xplorer%20mac.png', - alt: 'Xplorer on macOS', - }, + { + name: 'Windows', + src: '/img/Xplorer_dark.png', + alt: 'Xplorer on Windows', + }, + { + name: 'Garuda Linux', + src: '/img/Xplorer%20linux.png', + alt: 'Xplorer on Linux', + }, + { + name: 'macOS Catalina', + src: '/img/Xplorer%20mac.png', + alt: 'Xplorer on macOS', + }, ]; export default function Slideshow() { - const [index, setIndex] = useState(0); - useEffect(() => { - const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); - return () => clearInterval(handle); - }, []); - return ( - <> -
- {slides.map((e, i) => ( -
-
- {i + 1} / {slides.length} -
- {e.alt} -
{e.name}
-
- ))} -
-
- {[0, 1, 2].map((e) => ( - - ))} -
- - ); + const [index, setIndex] = useState(0); + useEffect(() => { + const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); + return () => clearInterval(handle); + }, []); + return ( + <> +
+ {slides.map((e, i) => ( +
+
+ {i + 1} / {slides.length} +
+ {e.alt} +
{e.name}
+
+ ))} +
+
+ {[0, 1, 2].map((e) => ( + + ))} +
+ + ); } diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/Community/Contributing.md b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/Community/Contributing.md new file mode 100644 index 00000000..be326698 --- /dev/null +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/Community/Contributing.md @@ -0,0 +1,173 @@ +--- +sidebar_position: 2 +--- + +# Contribute + +👍🎉 First off, thanks for taking the time to contribute! 🎉👍 + +Xplorer is currently under heavy development. We are welcoming contributors to collaborate on Xplorer. + +## Get involved + +There are many ways to contribute to Xplorer, and many of them do not involve writing any code. Here are few ideas to get started: + +- Start using Xplorer! Go through the Tutorial guides. Does anything work as expected? If not, we're always looking for improvements. Let us know by opening an issue. +- Look through the [Xplorer issues](https://github.com/kimlimjustin/xplorer/issues). If you find an issue you would like to fix, [open a pull request](#first-pull-request). Issues tagged as [good first issue](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) are a good place to get started. +- Help us make the docs better. File an issue if you find anything that is confusing, any grammatical error, or can be improved. +- Take a look at [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and give your opinion into a discussion or consider opening a pull request if you see something you want to work on. + +Contributions are very welcome! + +## Our development process + +Xplorer uses [GitHub](https://github.com/kimlimjustin/xplorer) as its source of truth. The core team will work directly there. All changes will be public from the beginning. + +### Reporting new issues/bugs. {#issues} + +When [opening a new issue](https://github.com/kimlimjustin/xplorer/issues), always make sure to fill out the issue template. We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. + +- _One issue, one bug_: Please report a single bug per issue. +- _Provide reproduction steps_: List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort. + +### Feature Request {#feat} + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and [GitHub Issues](https://github.com/kimlimjustin/xplorer) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional references like images, links of resources about the feature, etc. + +## Working on Xplorer code + +### Prerequisite + +- [Tauri environment](https://tauri.studio/en/docs/getting-started/intro#setting-up-your-environment) +- [Node JS](https://nodejs.org/en/) +- [Git](https://git-scm.com/) +- [yarn](https://yarnpkg.com/) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +1. After cloning the repository, run `yarn` in the root of the repository and run `yarn` in the `docs` folder (if you want to working on Xplorer Docs). +2. To start Xplorer locally, run `yarn dev`. + + To start a local development server serving the Docusaurus docs, go into the `docs` directory and run `yarn start` + +### Gitpod {#gitpod-env} + +Gitpod is a Ready-to-Code environment in which you can get started immediately. Gitpod offers all dependencies pre-installed so you can just click and get started. + +To get started with Gitpod, click the button below and log in with your GitHub account. + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kimlimjustin/xplorer) + +:::note Remember to reload the Gitpod website after it loads up since it won't start the servers immediately, but by reloading, you can get it started. If you are developing the app, go to the Remote Explorer on the sidebar and visit port _6080_ which opens the noVNC app server. If you are developing the docs, go to the Remote explorer but instead of port 6080, visit port _3000_. You can edit normally as you do in VS Code, but if you want to use it locally, clik the hamburger menu button and click _Open in VS Code_. ::: + +### Semantic commit messages {#commit-msg} + +See how a minor change to your commit message style can make you a better programmer. + +Format: `(): ` + +`` is optional + +#### Example + +``` +feat: allow overriding of webpack config +^--^ ^------------^ +| | +| +-> Summary in present tense. +| ++-------> Type: chore, docs, feat, fix, refactor, style, or test. +``` + +the various types of commits: + +- `feat`: new feature for the user +- `fix`: bug fix for the user +- `docs`: changes to the documentation +- `style`: formatting, missing semi-colons, etc. +- `refactor`: refactoring production code, eg. renaming a variable +- `test`: adding missing tests, refactoring tests. +- `chore`: updating grunt tasks etc + +Use lower case not the upper case! + +## Working on Xplorer docs + +Xplorer documentation website is built using [Docusaurus 2](https://docusaurus.io/), and its code is located at [`docs`](https://github.com/kimlimjustin/xplorer/tree/master/docs) folder. + +### Prerequisite + +- [node js](https://nodejs.org/en/) +- [git](https://git-scm.com/downloads) +- [yarn](https://yarnpkg.com/getting-started/install#about-global-installs) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +After cloning the repository, run `yarn` in the `docs` folder (you can go into the `docs` folder by running the `cd docs` command). + +If you want to use Gitpod, click [here](#gitpod-env) for the guide on how to use Gitpod. + +### Local development + +1. Run the `yarn start` command in the `docs` folder. +2. Edit some markdown texts in the `docs` folder and the website will be hot reloaded. + +## Pull requests + +### Your first pull request. {#first-pull-request} + +So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at. + +Working on your first Pull Request? You can learn how from this free video series: + +How to Contribute to an Open Source Project on GitHub + +We have a list of [beginner-friendly issues](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) to help you get your feet wet in the Xplorer codebase and familiar with our contribution process. This is a great place to get started. + +### Proposing a change + +If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can also [open a discussion](#feat) and others will code it! + +If you intend to fix a bug, please discuss it through [Issues](#issues) before submitting a pull request. + +If you intend to add a new feature, please discuss it through [GitHub Discussions](#feat) to avoid multiple people working on the same feature request. + +### Sending a Pull Request + +make sure the PR does only one thing, otherwise please split it. It is recommended to follow this [commit message style](#commit-msg). + +1. Fork [the repository](https://github.com/kimlimjustin/xplorer) and create your branch from `master`. +2. Make changes and ensure your commit message is understandable. +3. Open a [PR](https://github.com/kimlimjustin/xplorer/pulls) and ensure to describe your pull request clearly. + +## Working on Xplorer resources + +### Locales + +We host our locales on the [crowdin](https://crwd.in/xplorer). To translate it, please follow these steps: + +- Sign up on [Crowdin](https://crowdin.com) and Join our project [here](https://crwd.in/xplorer). +- Make sure your locale exists there, if it does not exist, leave a comment in [this discussion](https://github.com/kimlimjustin/xplorer/discussions/30) and I'll add the language option :) +- Get familiar with the Crowdin translation UI, as you will need to use it to translate JSON and Markdown files +- Translate the content! + +#### Priority Files to translate on Crowdin + +1. `src/Locales` files +2. `docs/` files + +#### Production + +Once the files on `src/Locales` have been translated for more than 80%, we will add it into the Xplorer app, and for the docs, we will add it into production once the translation looks good! + +Please comment [here](https://github.com/kimlimjustin/xplorer/discussions/30) if you have any questions! + +### File Library + +The json library of file types and thumbnail are found under `lib` folder and the icons are found under `src/Icons` folder. You may add file types and icons for file extensions you want to use and submit a PR. diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/Community/support.md b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/Community/support.md new file mode 100644 index 00000000..8ea01be3 --- /dev/null +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/Community/support.md @@ -0,0 +1,42 @@ +--- +sidebar_position: 1 +--- + +# Support + +Xplorer is an open-source project which you can freely join and seek support 😊. + +On this page, we've listed some communities/forums you can participate in to seek support or help others. + +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). + +## Issues + +We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). + +## GitHub Discussions + +GitHub Discussions is used for multiple purposes, such as: + +1. Asking questions +2. Making feature requests and sharing ideas +3. Chat on Xplorer +4. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! + +### Feature Request + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) and [GitHub Issues](https://github.com/kimlimjustin/xplorer/issues) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + +### Help + +You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) or [Discord Channel](https://discord.gg/kK7rwxPt). + +:::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: + +## News + +For the latest news about Xplorer, you can see it through posts on [Forem](https://dev.to/t/xplorer). diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/common_problems.md b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/common_problems.md index 0329306c..ebdcac5f 100644 --- a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/common_problems.md +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/common_problems.md @@ -1,3 +1,7 @@ +- - - +sidebar_position: 3 +- - - + # Common Problems **NB: For common problems during installation, please open [here](/docs/install/#common-problems)** @@ -5,25 +9,6 @@
-### Xplorer keep loading and crashes. - - - -Try opening `cmd` by opening Win + R(Run) and type `cmd`. - -Enter following command: - -``` -wmic -``` - -If the output says the `wmic` is not recognized as internal or internal command, please follow the following steps given on [this](https://superuser.com/questions/1178674/wmic-is-not-recognized-as-an-internal-or-external-command-operable-program-or) or [this](https://knowledge.informatica.com/s/article/156865?language=en_US). Also, please make sure that Windows Defender isn't blocking Xplorer from accessing your documents. - -
- -
- - ### Opening folder like `Documents`, `Desktop`, `Downloads` make Xplorer crashes diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/_category_.json b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/_category_.json index 9154734a..a9722bc2 100644 --- a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/_category_.json +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/_category_.json @@ -1,4 +1,4 @@ { - "label": "Руководства", - "position": 3 -} \ No newline at end of file + "label": "Руководства", + "position": 4 +} diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/cli.md b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/cli.md index 6bc6d7e1..08b86ec4 100644 --- a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/cli.md +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/cli.md @@ -1,7 +1,5 @@ # Запуск Xplorer из терминала -:::info This feature hasn't been optimized yet. Она может работать нестабильно. This will be optimized in the feature release. ::: - ## Команды Xplorer CLI: @@ -10,28 +8,10 @@ Xplorer CLI: xplorer [dir1] [dir2] [dir3] ``` -Xplorer откроет `dir`, `dir2`, `dir3` в качестве вкладок. If there's no directory(dir) passed into the command, Xplorer will start at the Home page. - -Параметры: - -| Команда | Сокращение | Описание | -| ----------- | ---------- | ----------------------------------------- | -| `--help` | `-h` | Справка | -| `--version` | `-v` | Показать номер версии | -| `--reveal` | `-r` | Открыть папку с содержимым и выбрать файл | - -
- -ошибка xplorer: command not found в Windows - - -Для начала вы должны зарегистрировать команду в системный путь. +Xplorer will open `dir`, `dir2`, `dir3` as tabs on Xplorer. If there's no directory(dir) passed into the command, Xplorer will start at the Home page. -1. Откройте `Свойства системы` в Windows. -2. Click the `Environment Variables` button, it will pop up a window. -3. On the table, search for the `Path` variable and click on it. -4. Click the `Edit` button, it will pop up a window. -5. Click the `New` button. -6. Add `%USERPROFILE%\AppData\Local\Programs\xplorer`. +Options: -
+| Команда | Сокращение | Описание | +| ---------- | ---------- | ---------------------------------------------- | +| `--reveal` | `-r` | Open the containing folder and select the file | diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/operation.md b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/operation.md index c5e13b91..87a8a09a 100644 --- a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/operation.md +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/operation.md @@ -6,13 +6,9 @@ You can copy files by right-clicking it and click the `Copy` option or select th :::info -On Windows and macOS, Xplorer will copy the file paths into the local clipboard, because of this, you can copy a file from Xplorer and paste it into any folder in another system. However, on Linux, we create a string of Xplorer commands and copy it into the user clipboard, Xplorer will read the user's clipboard when pasting the file (because we haven't found any idea to implement it, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us). The string of the Xplorer command looks like this: +For current implementation, Xplorer write down what to copy locally (not copying to clipboard). -``` -Xplorer command - COPY -~/xplorer -~/test -``` +TODO: implement copy to clipboard ::: @@ -24,50 +20,48 @@ You can copy a file/folder location path into your clipboard by right-clicking i You can cut files by right-clicking it and click the `Cut` option or select the file then press `Ctrl + X` as a shortcut and paste it by clicking the `Paste` option or press `Ctrl + V` on the destination folder. -:::info This is done by creating a string of Xplorer command and copies it into the user clipboard to be used when pasting file (this is not integrated with the platform because we haven't found any idea, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us.). The string of Xplorer command looks like this: +:::info -``` -Xplorer command - CUT -E://xplorer -E://test -``` +For current implementation, Xplorer write down what to cut locally (not copying to clipboard). ::: ## Удаление файлов -You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. The trashed file can be accessed at `xplorer://Trash`. +You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. -:::info +### Trashed files -- On Windows, this is done by creating a `Trash` folder on the `C:` drive and moving the file into it. -- On Linux, this feature is fully integrated with the system. -- В MacOS это делается путем создания папки `.local/Trash` в `homedir` и перемещения в неё файла. +The trashed file can be accessed at `xplorer://Trash` or your system trash folder. :::danger Open Issue -We are still working on Windows on macOS to integrate the `Trash` folder, which will be released before the stable version came out. Feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us. +Please note that Trash folder cannot be accessed on macos via Xplorer since the [trash crate](https://github.com/Byron/trash-rs) Xplorer relies to does not support it (see [this issue](https://github.com/Byron/trash-rs/issues/8) for more details). -::: +Any contributions to either the trash crate or Xplorer itself for this topic are welcome. ::: + +### Restore files + +You can restore files by opening the `xplorer://Trash` and right-clicking it and click the `Restore` option -### Удалить безвозвратно +### Permanently delete -:::danger A permanently deleted file cannot be restored. Пожалуйста, проверьте ещё раз перед тем, как удалить файл. +:::danger A permanently deleted file cannot be restored. Please check again before permanently delete any files. ::: -Вы можете навсегда удалить файл следующими способами: +You can permanently delete a file by: 1. Delete it into `Trash` and right-clicking it and click the `Permanent Delete` option 2. Select the file and press `Shift + Del` as a shortcut ## Создать -:::caution Будьте осторожны с именем файла/папки Xplorer обрабатывает `/` в имени файла или папки как подпапку/подфайл ::: +:::caution Be careful with new file/folder name Xplorer treats `/` on file name/folder as subdir/subfile ::: -### Файл +### New file You can create a new file by right-clicking the workspace, expand the `New` option and select the `file` option, or press `Alt + N` as a shortcut. -### Папку +### New folder You can create a new folder by right-clicking the workspace, expand the `New` option and select the `folder` option, or press `Shift + N` as a shortcut. @@ -75,13 +69,13 @@ You can create a new folder by right-clicking the workspace, expand the `New` op You can open a file on the default application by double-clicking it or select the file then press `Enter` as a shortcut. -### Открыть в терминале +### Open in Terminal This is a built-in function by Xplorer. You can open a folder on Terminal by right-clicking it and click the `Open in terminal` option or select the folder then press `Alt + T` as a shortcut. -### Открыть в VS Code +### Open in VSCode -This is a built-in function by Xplorer. You can open a file/folder on VSCode by right-clicking it and click the `Open in vscode` option or select the file then press `Ctrl + Enter` as a shortcut. Вы не сможете это сделать, если у вас не установлен VS Code. +This is a built-in function by Xplorer. You can open a file/folder on VSCode by right-clicking it and click the `Open in vscode` option or select the file then press `Ctrl + Enter` as a shortcut. You won't able to do this if you don't have VSCode installed. ## Закрепить в боковой панели @@ -91,80 +85,21 @@ You can pin a file/folder into the sidebar by right-clicking it and click `Pin t You can preview a file directly from Xplorer by right-clicking it and click the `Preview` option or select the file then press `Ctrl+O`. -![Предпросмотр демо](/img/docs/preview.png) +![Preview Demo](/img/docs/preview.png) :::info
-Файлы, доступные для предварительного просмотра: +Files available to preview for now: -```json -[ - ".pdf", - ".html", - ".docx", - ".htm", - ".xlsx", - ".xls", - ".xlsb", - "xls", - ".ods", - ".fods", - ".csv", - ".txt", - ".py", - ".js", - ".bat", - ".css", - ".c++", - ".cpp", - ".cc", - ".c", - ".diff", - ".patch", - ".go", - ".java", - ".json", - ".php", - ".ts", - ".tsx", - ".jsx", - ".jpg", - ".png", - ".gif", - ".bmp", - ".jpeg", - ".jpe", - ".jif", - ".jfif", - ".jfi", - ".webp", - ".tiff", - ".tif", - ".ico", - ".svg", - ".webp", - ".mp4", - ".webm", - ".mpg", - ".mp2", - ".mpeg", - ".mpe", - ".mpv", - ".ocg", - ".m4p", - ".m4v", - ".avi", - ".wmv", - ".mov", - ".qt", - ".flv", - ".swf", - ".md" -] -``` +* Markdown files +* Image files +* Text files +* Video files +* Pdfs +* Almost all programming language with syntax highlighting
@@ -172,7 +107,7 @@ You can preview a file directly from Xplorer by right-clicking it and click the ## Свойства -You can view properties of a file/folder by right-clicking it and click `Properties` or select the file then press `Ctrl + P` as a shortcut. На данный момент доступны следующие свойства (список дополнится в будущих версиях): +You can view properties of a file/folder by right-clicking it and click `Properties` or select the file then press `Ctrl + P` as a shortcut. Available properties for now (will be improved at the next version): - Размер - Путь к файлу @@ -183,4 +118,4 @@ You can view properties of a file/folder by right-clicking it and click `Propert ## Переименовать файл/папку -You can rename a file/folder by right-clicking it and click the `Rename` option or select the file then press `F2` as a shortcut. Появится диалоговое окно. Введите новое имя файла/папки, которую хотите переименовать. +You can rename a file/folder by right-clicking it and click the `Rename` option or select the file then press `F2` as a shortcut. It will prompt a dialog, enter the new name and the file/folder will be renamed. diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/setting.md b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/setting.md index e19adc6f..515e4843 100644 --- a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/setting.md +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/setting.md @@ -12,33 +12,67 @@ How to exit from Settings? -You can exit from Settings on Xplorer by clicking the Arrow Up button on the upside left of Xplorer. +You can exit from Settings on Xplorer by clicking on the upside left of Xplorer. ![Настройки](/img/docs/exit-settings.png)
-## Тема приложения +## Appearance + +### App Theme Вы можете изменить тему приложения Xplorer во вкладке `Внешний вид` в настройках. Доступные по умолчанию темы: `light`, `light+`, `dark`, и `dark+`. Besides, there is a `System Default` theme that will automatically read your system preference. :::info Xplorer will support a custom app theme soon, stay tuned! ::: -### Акриловый эффект +### Font Family + +You can change Xplorer's font family on the `Appearance` tab of the Settings to one of installed font families installed on your system. + +### Font Size + +You can change Xplorer's font size on the `Appearance` tab of the Settings. Please note that an ideal font size is between 10px to 30px. + +### Window Transparency + +Make Xplorer window transparent on the `Appearance` tab of the Settings by combining following options. Please note that an ideal transparency is between 70% to 100%. You can disable transparency by disable all of the transparency options. + +#### Transparent Sidebar + +Make the sidebar transparent ![Transparent Sidebar](/img/docs/transparent-sidebar.png) + +#### Transparent Topbar + +Make the topbar transparent ![Transparent Topbar](/img/docs/transparent-topbar.png) + +#### Transparent Workspace + +make the workspace transparent ![Transparent Workspace](/img/docs/transparent-workspace.png) + +### Frame Style + +You can choose the frame style on the `Appearance` tab of the Settings. The available options are `Default` and `System Default`. `Default` will use Xplorer's default style which is the same across platforms. `System Default` will use the system default frame style which is difference according to your platform. -The Acrylic Effect is the effect that gives the transparency effect on the sidebar. Работает только на Windows 10 и выше. +### File Preview -## Предпросмотр файла +File Preview here might means the file thumbnail. -Предпросмотр файла здесь означает предварительный просмотр, который заменяет значок файла по умолчанию. +#### Automatically play video file as thumbnail -### Play video file as a preview +This will automatically play the video file as a preview. :::caution THIS MIGHT CONSUME HIGH AMOUNT OF RAM This might consume a high amount of RAM because it's built on the HTML video player. You can just enable this setting and ignore this caution if you got a good-spec computer. ::: -This will automatically play the video file as a preview. :::caution THIS MIGHT CONSUME HIGH AMOUNT OF RAM This might consume a high amount of RAM because it's built on the HTML video player. Вы можете включить этот параметр и проигнорировать предупреждение, если у вас хороший компьютер. ::: +#### Preview image on hover -### Extract `EXE` file icon and make it a preview +This fill automatically show the image when you hovering it for 500ms. -This will parse and cache the icon from a `exe` file and make it a preview. Только на Windows. +![Preview on hover](/img/docs/preview-on-hover.png) -![Извлечь Exe значок файла](/img/docs/extract-exe-icon.png) +Some people might found it annoying and you can disable it by disabling this setting. + +#### Extract exe file icon and make it as the thumbnail + +This will parse and cache the icon from a `exe` file and make it a preview. Only on Windows. + +![Extract Exe file icon](/img/docs/extract-exe-icon.png) :::warning This might causes Xplorer to crash. @@ -48,22 +82,43 @@ The way to fix it is to disable the setting. ::: -## Стандартное отображение файлов +:::info Open issue The current approach is by calling the powershell program which might pops up cmd windows. + +Any contribution to call it directly from Xplorer is welcome. ::: + +#### Show Image as Thumbnail + +This will show the image as a thumbnail of a file. Please note that this is not recommended for large directory as it reads the image to memory. + +#### Default file layout Default file layout of a directory. Just give it a try :) -## Язык приложения +## Preference + +### App Language Localize Xplorer. Help us translate Xplorer [here](https://github.com/kimlimjustin/xplorer/discussions/30). -## Выключить показ скрытых файлов +### Hide Hidden Files Hide hidden files on Xplorer, you can find this setting on the `Preference` tab on Xplorer or by its shortcut, `Ctrl + H`. -## Выключить показ системных файлов +### Hide System Files Hide Windows' system files on Xplorer. :::tip Learn what is system file [here](https://en.wikipedia.org/wiki/System_file). Just turn it off if you don't understand what it is. ::: -## List and sort directories alongside files +### List and sort directories alongside files If disabled, Xplorer will prioritize directories above files. + +### Detect Drive Change + +Turning this on will detect drive change and update the sidebar and drives section. Please note that this will take high ammount of RAM as this is not stabilized yet. + +### On startup + +Option to do on starting Xplorer. Available options are: + +- New Tab +- Continue previous session diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/shortcut.md b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/shortcut.md index 7caff018..d7ed792f 100644 --- a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/shortcut.md +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/shortcut.md @@ -1,35 +1,38 @@ # Горячие клавиши -| Клавиша | Описание | -| ------------------- | ------------------------------- | -| `Ctrl + A` | Выбрать всё | -| `Ctrl + C` | Копировать | -| `Ctrl + E` | Закрыть вкладку | -| `Ctrl + H` | Вкл./выкл. показ скрытых файлов | -| `Ctrl + O` | Предпросмотр файла | -| `Ctrl + P` | Свойства файлов и папок | -| `Ctrl + R` | Перезагрузить | -| `Ctrl + T` | Новая вкладка | -| `Ctrl + V` | Вставить | -| `Ctrl + X` | Вырезать | -| `Ctrl + W` | Выйти из Xplorer | -| `Alt + Left Arrow` | Назад | -| `Alt + Right Arrow` | Вперёд | -| `Alt + Up Arrow` | развернуть | -| `Alt + Down Arrow` | свернуть | -| `Alt + T` | Открыть в терминале | -| `Alt + P` | Закрепить в боковой панели | -| `Alt + Shift + C` | Скопировать путь | -| `F2` | Переименовать | -| `F5` | Обновить | -| `F10` | Свернуть | -| `F11` | Развернуть | -| `Shift + N` | Новая папка | -| `Shift + Del` | Удалить навсегда | -| `Shift + Enter` | Открыть в vscode | -| `Enter` | Открыть | -| `Del` | Удалить файл | +| Клавиша | Описание | +| ------------------- | ----------------------- | +| `Ctrl + A` | Выбрать всё | +| `Ctrl + C` | Копировать | +| `Ctrl + H` | Toggle Hidden Files | +| `Ctrl + N` | New window shortcut | +| `Ctrl + O` | Open file in preview | +| `Ctrl + P` | Свойства файлов и папок | +| `Ctrl + R` | Перезагрузить | +| `Ctrl + T` | Новая вкладка | +| `Ctrl + V` | Вставить | +| `Ctrl + X` | Вырезать | +| `Ctrl + W` | Exit Tab | +| `Ctrl + Y` | Redo | +| `Ctrl + Z` | Undo | +| `Ctrl + Shift + Z` | Redo | +| `Alt + Left Arrow` | Go Back | +| `Alt + Right Arrow` | Go Forward | +| `Alt + Up Arrow` | Go to parent directory | +| `Alt + N` | New File | +| `Alt + T` | Open in terminal | +| `Alt + P` | Pin to sidebar | +| `Alt + Shift + C` | Copy location path | +| `F2` | Rename | +| `F5` | Refresh | +| `F10` | Minimize | +| `F11` | Maximize | +| `Shift + N` | New Folders | +| `Shift + Del` | Permanent Delete | +| `Shift + Enter` | Open in vscode | +| `Enter` | Open | +| `Del` | Delete file | -::note Разница между `перезагрузкой` и `обновлением` `Перезагрузка` обновляет внутренний HTML, а `Обновление` обновляет весь процесс Electron. +:::note Difference between `reload` and `refresh` `Reload` refreshes the internal process while `Refresh` refreshes the whole process. ::: diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/xplorer as default.md b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/xplorer as default.md index 8511471c..d725f87e 100644 --- a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/xplorer as default.md +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/guides/xplorer as default.md @@ -12,7 +12,7 @@ 4. Перейдите в `Компьютер\HKEY_CURRENT_USER\Software\Classes\Directory` 5. Create a key named `shell` if not existed by right and set the default key-value to `openinxplorer` 6. Создайте раздел `openinxplorer` под `shell` -7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Users\User\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"` +7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Program Files\Xplorer\Xplorer.exe" "%V"`. (You may have to change `C:\Program Files\Xplorer\` to the location you installed Xplorer) ![Структура реестра](/img/docs/registry.png) diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/intro.md b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/intro.md index 86640b3a..ccc281a6 100644 --- a/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/intro.md +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-docs/current/intro.md @@ -8,14 +8,18 @@ sidebar_position: 1 Welcome to Xplorer, A Free and Open Source (FOSS) File Explorer. -Xplorer is a file explorer built from the ground up to be fully customizable and without customization, it also looks modern! It is cross-platform, built using Electron Technology that allowed our File Explorer to be run not only in Windows but also Linux and MacOS alike. It also allowed file preview directly inside it, not only pictures or documents but also videos! +Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern! -## Особенности +Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. -So to summarize, Xplorer's features contain: +To summarize, Xplorer's features contain: -- Современный внешний вид +- It looks modern - Простоту использования - Кроссплатформенность -- Предпросмотр файлов, и даже видео! -- И самое главное, он бесплатный и с открытым исходным кодом! Which mean you can change components inside if you see fit and you also don't need to make your wallet go dry or break the bank. +- [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos! +- Customizable +- Supports multiple tab +- Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit + +Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-pages/index.jsx b/docs/i18n/ru-RU/docusaurus-plugin-content-pages/index.jsx index a3df6202..38990cae 100644 --- a/docs/i18n/ru-RU/docusaurus-plugin-content-pages/index.jsx +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-pages/index.jsx @@ -5,102 +5,69 @@ import Slideshow from './slideshow'; import Link from '@docusaurus/Link'; export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - -
-
-
-

File Explorer.

-

Redefined.

-

- Free and Open Source Software. Runs everywhere. -

-
- - Download now - - - Xplorer the docs -{'>'} - -
-
-
- -
-
-
-

- Cross-platform File Explorer.{' '} - Powered by the web. -

- - Built using the{' '} - - Electron - {' '} - , based on{' '} - - Chromium - - , and written using{' '} - - TypeScript - {' '} - , Xplorer promises you an unprecedented experience. - -
-
- Xplorer designed out of the box -

Designed out of the box

-

- Say goodbye to the old design by traditional app - and say hello to this simple yet powerful - design. -

-
-
- Support tabs -

Supports Multiple Tabs

-

- Xplorer helps you organize you files easier by - supporting multiple tabs . -

-
-
- -

File Preview

-

- Xplorer supports files preview, even videos! - Learn more{' '} - - here - - . -

-
-
-
-
-
- ); + const { siteConfig } = useDocusaurusContext(); + return ( + +
+
+
+

File Explorer.

+

Redefined.

+

Free and Open Source Software. Runs everywhere.

+
+ + Download now + + + Xplorer the docs -{'>'} + +
+
+
+ +
+
+
+

+ Cross-platform File Explorer. Powered by the web. +

+ + Built using the{' '} + + Tauri Framework + {' '} + , and written using{' '} + + TypeScript + {' '} + for the frontend and{' '} + + Rust + {' '} + for the backend, Xplorer promises you an unprecedented experience. + +
+
+ Xplorer designed out of the box +

Designed out of the box

+

Say goodbye to the old design by traditional app and say hello to this simple yet powerful design.

+
+
+ Support tabs +

Supports Multiple Tabs

+

Xplorer helps you organize you files easier by supporting multiple tabs .

+
+
+ +

File Preview

+

+ Xplorer supports files preview, from images, code preview, pdfs, to videos. Learn more{' '} + here. +

+
+
+
+
+
+ ); } diff --git a/docs/i18n/ru-RU/docusaurus-plugin-content-pages/slideshow.jsx b/docs/i18n/ru-RU/docusaurus-plugin-content-pages/slideshow.jsx index d19300bf..f3957684 100644 --- a/docs/i18n/ru-RU/docusaurus-plugin-content-pages/slideshow.jsx +++ b/docs/i18n/ru-RU/docusaurus-plugin-content-pages/slideshow.jsx @@ -1,53 +1,47 @@ import React, { useEffect, useState } from 'react'; const slides = [ - { - name: 'Windows', - src: '/img/Xplorer%20win.png', - alt: 'Xplorer on Windows', - }, - { - name: 'Garuda Linux', - src: '/img/Xplorer%20linux.png', - alt: 'Xplorer on Linux', - }, - { - name: 'macOS Catalina', - src: '/img/Xplorer%20mac.png', - alt: 'Xplorer on macOS', - }, + { + name: 'Windows', + src: '/img/Xplorer_dark.png', + alt: 'Xplorer on Windows', + }, + { + name: 'Garuda Linux', + src: '/img/Xplorer%20linux.png', + alt: 'Xplorer on Linux', + }, + { + name: 'macOS Catalina', + src: '/img/Xplorer%20mac.png', + alt: 'Xplorer on macOS', + }, ]; export default function Slideshow() { - const [index, setIndex] = useState(0); - useEffect(() => { - const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); - return () => clearInterval(handle); - }, []); - return ( - <> -
- {slides.map((e, i) => ( -
-
- {i + 1} / {slides.length} -
- {e.alt} -
{e.name}
-
- ))} -
-
- {[0, 1, 2].map((e) => ( - - ))} -
- - ); + const [index, setIndex] = useState(0); + useEffect(() => { + const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); + return () => clearInterval(handle); + }, []); + return ( + <> +
+ {slides.map((e, i) => ( +
+
+ {i + 1} / {slides.length} +
+ {e.alt} +
{e.name}
+
+ ))} +
+
+ {[0, 1, 2].map((e) => ( + + ))} +
+ + ); } diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/Community/Contributing.md b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/Community/Contributing.md new file mode 100644 index 00000000..be326698 --- /dev/null +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/Community/Contributing.md @@ -0,0 +1,173 @@ +--- +sidebar_position: 2 +--- + +# Contribute + +👍🎉 First off, thanks for taking the time to contribute! 🎉👍 + +Xplorer is currently under heavy development. We are welcoming contributors to collaborate on Xplorer. + +## Get involved + +There are many ways to contribute to Xplorer, and many of them do not involve writing any code. Here are few ideas to get started: + +- Start using Xplorer! Go through the Tutorial guides. Does anything work as expected? If not, we're always looking for improvements. Let us know by opening an issue. +- Look through the [Xplorer issues](https://github.com/kimlimjustin/xplorer/issues). If you find an issue you would like to fix, [open a pull request](#first-pull-request). Issues tagged as [good first issue](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) are a good place to get started. +- Help us make the docs better. File an issue if you find anything that is confusing, any grammatical error, or can be improved. +- Take a look at [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and give your opinion into a discussion or consider opening a pull request if you see something you want to work on. + +Contributions are very welcome! + +## Our development process + +Xplorer uses [GitHub](https://github.com/kimlimjustin/xplorer) as its source of truth. The core team will work directly there. All changes will be public from the beginning. + +### Reporting new issues/bugs. {#issues} + +When [opening a new issue](https://github.com/kimlimjustin/xplorer/issues), always make sure to fill out the issue template. We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. + +- _One issue, one bug_: Please report a single bug per issue. +- _Provide reproduction steps_: List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort. + +### Feature Request {#feat} + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and [GitHub Issues](https://github.com/kimlimjustin/xplorer) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional references like images, links of resources about the feature, etc. + +## Working on Xplorer code + +### Prerequisite + +- [Tauri environment](https://tauri.studio/en/docs/getting-started/intro#setting-up-your-environment) +- [Node JS](https://nodejs.org/en/) +- [Git](https://git-scm.com/) +- [yarn](https://yarnpkg.com/) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +1. After cloning the repository, run `yarn` in the root of the repository and run `yarn` in the `docs` folder (if you want to working on Xplorer Docs). +2. To start Xplorer locally, run `yarn dev`. + + To start a local development server serving the Docusaurus docs, go into the `docs` directory and run `yarn start` + +### Gitpod {#gitpod-env} + +Gitpod is a Ready-to-Code environment in which you can get started immediately. Gitpod offers all dependencies pre-installed so you can just click and get started. + +To get started with Gitpod, click the button below and log in with your GitHub account. + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kimlimjustin/xplorer) + +:::note Remember to reload the Gitpod website after it loads up since it won't start the servers immediately, but by reloading, you can get it started. If you are developing the app, go to the Remote Explorer on the sidebar and visit port _6080_ which opens the noVNC app server. If you are developing the docs, go to the Remote explorer but instead of port 6080, visit port _3000_. You can edit normally as you do in VS Code, but if you want to use it locally, clik the hamburger menu button and click _Open in VS Code_. ::: + +### Semantic commit messages {#commit-msg} + +See how a minor change to your commit message style can make you a better programmer. + +Format: `(): ` + +`` is optional + +#### Example + +``` +feat: allow overriding of webpack config +^--^ ^------------^ +| | +| +-> Summary in present tense. +| ++-------> Type: chore, docs, feat, fix, refactor, style, or test. +``` + +the various types of commits: + +- `feat`: new feature for the user +- `fix`: bug fix for the user +- `docs`: changes to the documentation +- `style`: formatting, missing semi-colons, etc. +- `refactor`: refactoring production code, eg. renaming a variable +- `test`: adding missing tests, refactoring tests. +- `chore`: updating grunt tasks etc + +Use lower case not the upper case! + +## Working on Xplorer docs + +Xplorer documentation website is built using [Docusaurus 2](https://docusaurus.io/), and its code is located at [`docs`](https://github.com/kimlimjustin/xplorer/tree/master/docs) folder. + +### Prerequisite + +- [node js](https://nodejs.org/en/) +- [git](https://git-scm.com/downloads) +- [yarn](https://yarnpkg.com/getting-started/install#about-global-installs) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +After cloning the repository, run `yarn` in the `docs` folder (you can go into the `docs` folder by running the `cd docs` command). + +If you want to use Gitpod, click [here](#gitpod-env) for the guide on how to use Gitpod. + +### Local development + +1. Run the `yarn start` command in the `docs` folder. +2. Edit some markdown texts in the `docs` folder and the website will be hot reloaded. + +## Pull requests + +### Your first pull request. {#first-pull-request} + +So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at. + +Working on your first Pull Request? You can learn how from this free video series: + +How to Contribute to an Open Source Project on GitHub + +We have a list of [beginner-friendly issues](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) to help you get your feet wet in the Xplorer codebase and familiar with our contribution process. This is a great place to get started. + +### Proposing a change + +If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can also [open a discussion](#feat) and others will code it! + +If you intend to fix a bug, please discuss it through [Issues](#issues) before submitting a pull request. + +If you intend to add a new feature, please discuss it through [GitHub Discussions](#feat) to avoid multiple people working on the same feature request. + +### Sending a Pull Request + +make sure the PR does only one thing, otherwise please split it. It is recommended to follow this [commit message style](#commit-msg). + +1. Fork [the repository](https://github.com/kimlimjustin/xplorer) and create your branch from `master`. +2. Make changes and ensure your commit message is understandable. +3. Open a [PR](https://github.com/kimlimjustin/xplorer/pulls) and ensure to describe your pull request clearly. + +## Working on Xplorer resources + +### Locales + +We host our locales on the [crowdin](https://crwd.in/xplorer). To translate it, please follow these steps: + +- Sign up on [Crowdin](https://crowdin.com) and Join our project [here](https://crwd.in/xplorer). +- Make sure your locale exists there, if it does not exist, leave a comment in [this discussion](https://github.com/kimlimjustin/xplorer/discussions/30) and I'll add the language option :) +- Get familiar with the Crowdin translation UI, as you will need to use it to translate JSON and Markdown files +- Translate the content! + +#### Priority Files to translate on Crowdin + +1. `src/Locales` files +2. `docs/` files + +#### Production + +Once the files on `src/Locales` have been translated for more than 80%, we will add it into the Xplorer app, and for the docs, we will add it into production once the translation looks good! + +Please comment [here](https://github.com/kimlimjustin/xplorer/discussions/30) if you have any questions! + +### File Library + +The json library of file types and thumbnail are found under `lib` folder and the icons are found under `src/Icons` folder. You may add file types and icons for file extensions you want to use and submit a PR. diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/Community/support.md b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/Community/support.md new file mode 100644 index 00000000..8ea01be3 --- /dev/null +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/Community/support.md @@ -0,0 +1,42 @@ +--- +sidebar_position: 1 +--- + +# Support + +Xplorer is an open-source project which you can freely join and seek support 😊. + +On this page, we've listed some communities/forums you can participate in to seek support or help others. + +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). + +## Issues + +We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). + +## GitHub Discussions + +GitHub Discussions is used for multiple purposes, such as: + +1. Asking questions +2. Making feature requests and sharing ideas +3. Chat on Xplorer +4. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! + +### Feature Request + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) and [GitHub Issues](https://github.com/kimlimjustin/xplorer/issues) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + +### Help + +You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) or [Discord Channel](https://discord.gg/kK7rwxPt). + +:::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: + +## News + +For the latest news about Xplorer, you can see it through posts on [Forem](https://dev.to/t/xplorer). diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/common_problems.md b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/common_problems.md index 0329306c..ebdcac5f 100644 --- a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/common_problems.md +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/common_problems.md @@ -1,3 +1,7 @@ +- - - +sidebar_position: 3 +- - - + # Common Problems **NB: For common problems during installation, please open [here](/docs/install/#common-problems)** @@ -5,25 +9,6 @@
-### Xplorer keep loading and crashes. - - - -Try opening `cmd` by opening Win + R(Run) and type `cmd`. - -Enter following command: - -``` -wmic -``` - -If the output says the `wmic` is not recognized as internal or internal command, please follow the following steps given on [this](https://superuser.com/questions/1178674/wmic-is-not-recognized-as-an-internal-or-external-command-operable-program-or) or [this](https://knowledge.informatica.com/s/article/156865?language=en_US). Also, please make sure that Windows Defender isn't blocking Xplorer from accessing your documents. - -
- -
- - ### Opening folder like `Documents`, `Desktop`, `Downloads` make Xplorer crashes diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/_category_.json b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/_category_.json index 9154734a..a9722bc2 100644 --- a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/_category_.json +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/_category_.json @@ -1,4 +1,4 @@ { - "label": "Руководства", - "position": 3 -} \ No newline at end of file + "label": "Руководства", + "position": 4 +} diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/cli.md b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/cli.md index f827585c..08b86ec4 100644 --- a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/cli.md +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/cli.md @@ -1,7 +1,5 @@ # Запуск Xplorer из терминала -:::info This feature hasn't been optimized yet. It works but it might be laggy. This will be optimized in the feature release. ::: - ## Команды Xplorer CLI: @@ -12,26 +10,8 @@ xplorer [dir1] [dir2] [dir3] Xplorer will open `dir`, `dir2`, `dir3` as tabs on Xplorer. If there's no directory(dir) passed into the command, Xplorer will start at the Home page. -Параметры: - -| Команда | Сокращение | Описание | -| ----------- | ---------- | ----------------------------------------- | -| `--help` | `-h` | Справка | -| `--version` | `-v` | Показать номер версии | -| `--reveal` | `-r` | Открыть папку с содержимым и выбрать файл | - -
- -xplorer: command not found ошибка в Windows - - -Для начала вы должны зарегистрировать команду в системный путь. - -1. Open the `System Properties` on Windows. -2. Click the `Environment Variables` button, it will popup a window. -3. On the table, search for `Path` variable and click on it. -4. Click `Edit` button, it will popup a window. -5. Click `New` button -6. Add `%USERPROFILE%\AppData\Local\Programs\xplorer` +Options: -
+| Команда | Сокращение | Описание | +| ---------- | ---------- | ---------------------------------------------- | +| `--reveal` | `-r` | Open the containing folder and select the file | diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/operation.md b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/operation.md index 08de8361..5683f722 100644 --- a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/operation.md +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/operation.md @@ -6,47 +6,41 @@ You can copy files by right clicking it and click `Copy` option or select the fi :::info -On Windows and macOS, Xplorer will copy the file paths into the local clipboard, because of this, you can copy a file from Xplorer and paste it into any folder in another system. However, on Linux, we create a string of Xplorer commands and copy it into the user clipboard, Xplorer will read the user's clipboard when pasting the file (because we haven't found any idea to implement it, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us). The string of the Xplorer command looks like this: +For current implementation, Xplorer write down what to copy locally (not copying to clipboard). -``` -Xplorer command - COPY -~/xplorer -~/test -``` +TODO: implement copy to clipboard ::: ## Copy Location Path -You can copy a file/folder location path into your clipboard by right clicking it and click `Copy Location Path` or select the file then press `Alt + Shift + C` as shortcut. +You can copy a file/folder location path into your clipboard by right-clicking it and click `Copy Location Path` or select the file then press `Alt + Shift + C` as a shortcut. ## Cut files -You can cut files by right clicking it and click `Cut` option or select the file then press `Ctrl + X` as shortcut and paste it by clicking `Paste` option or press `Ctrl + V` on the destination folder. +You can cut files by right-clicking it and click the `Cut` option or select the file then press `Ctrl + X` as a shortcut and paste it by clicking the `Paste` option or press `Ctrl + V` on the destination folder. -:::info This is done by creating a string of Xplorer command and copies it into the user clipboard to be used when pasting file (this is not integrated with the platform because we haven't found any idea, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us.). The string of Xplorer command looks like this: +:::info -``` -Xplorer command - CUT -E://xplorer -E://test -``` +For current implementation, Xplorer write down what to cut locally (not copying to clipboard). ::: ## Delete files -You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. The trashed file can be accessed at `xplorer://Trash`. +You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. -:::info +### Trashed files -- On Windows, this is done by creating a `Trash` folder on `C:` drive and moving the file into it. -- On Linux, this feature is fully integrated with the sytem -- On macOS, this is done by creating a `.local/Trash` folder on `homedir` and moving the file into it. +The trashed file can be accessed at `xplorer://Trash` or your system trash folder. :::danger Open Issue -We are still working on Windows on macOS to integrate the `Trash` folder, which will be released before the stable version came out. Feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us. +Please note that Trash folder cannot be accessed on macos via Xplorer since the [trash crate](https://github.com/Byron/trash-rs) Xplorer relies to does not support it (see [this issue](https://github.com/Byron/trash-rs/issues/8) for more details). -::: +Any contributions to either the trash crate or Xplorer itself for this topic are welcome. ::: + +### Restore files + +You can restore files by opening the `xplorer://Trash` and right-clicking it and click the `Restore` option ### Permanently delete @@ -65,15 +59,15 @@ You can permanently delete a file by: ### New file -You can create a new file by right clicking the workspace, expand the `New` option and select `file` option or press `Alt + N` as shortcut. +You can create a new file by right-clicking the workspace, expand the `New` option and select the `file` option, or press `Alt + N` as a shortcut. ### New folder -You can create a new folder by right clicking the workspace, expand the `New` option and select `folder` option or press `Shift + N` as shortcut. +You can create a new folder by right-clicking the workspace, expand the `New` option and select the `folder` option, or press `Shift + N` as a shortcut. ## Open file -You can open a file on default application by double-clicking it or select the file then press `Enter` as shortcut. +You can open a file on the default application by double-clicking it or select the file then press `Enter` as a shortcut. ### Open in Terminal @@ -85,11 +79,11 @@ This is a built-in function by Xplorer. You can open a file/folder on VSCode by ## Pin to Sidebar -You can pin a file/folder into sidebar by right clicking it and click `Pin to Sidebar` or select the file then press `Alt + P` as shortcut. +You can pin a file/folder into the sidebar by right-clicking it and click `Pin to Sidebar` or select the file then press `Alt + P` as a shortcut. ## Preview file -You can preview a file directly from Xplorer by right-clicking it and click `Preview` otioin or select the file then press `Ctrl+O`. +You can preview a file directly from Xplorer by right-clicking it and click the `Preview` option or select the file then press `Ctrl+O`. ![Preview Demo](/img/docs/preview.png) @@ -100,71 +94,12 @@ You can preview a file directly from Xplorer by right-clicking it and click `Pre Files available to preview for now: -```json -[ - ".pdf", - ".html", - ".docx", - ".htm", - ".xlsx", - ".xls", - ".xlsb", - "xls", - ".ods", - ".fods", - ".csv", - ".txt", - ".py", - ".js", - ".bat", - ".css", - ".c++", - ".cpp", - ".cc", - ".c", - ".diff", - ".patch", - ".go", - ".java", - ".json", - ".php", - ".ts", - ".tsx", - ".jsx", - ".jpg", - ".png", - ".gif", - ".bmp", - ".jpeg", - ".jpe", - ".jif", - ".jfif", - ".jfi", - ".webp", - ".tiff", - ".tif", - ".ico", - ".svg", - ".webp", - ".mp4", - ".webm", - ".mpg", - ".mp2", - ".mpeg", - ".mpe", - ".mpv", - ".ocg", - ".m4p", - ".m4v", - ".avi", - ".wmv", - ".mov", - ".qt", - ".flv", - ".swf", - ".md" -] -``` +* Markdown files +* Image files +* Text files +* Video files +* Pdfs +* Almost all programming language with syntax highlighting
diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/setting.md b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/setting.md index 2afc6c84..e48188a6 100644 --- a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/setting.md +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/setting.md @@ -12,29 +12,63 @@ You can open settings on Xplorer by clicking the `Settings` button on the left d How to exit from Settings? -You can exit from Settings on Xplorer by clicking the Arrow Up button on the upside left of Xplorer. +You can exit from Settings on Xplorer by clicking on the upside left of Xplorer. ![Settings](/img/docs/exit-settings.png) -## App Theme +## Appearance + +### App Theme You can change Xplorer's app theme on the `Appearance` tab of the Settings. Available default themes are `light`, `light+`, `dark`, and `dark+`. Besides, there is a `System Default` theme that will automatically read your system preference. :::info Xplorer will support a custom app theme soon, stay tuned! ::: -### Acrylic Effect +### Font Family + +You can change Xplorer's font family on the `Appearance` tab of the Settings to one of installed font families installed on your system. + +### Font Size + +You can change Xplorer's font size on the `Appearance` tab of the Settings. Please note that an ideal font size is between 10px to 30px. + +### Window Transparency + +Make Xplorer window transparent on the `Appearance` tab of the Settings by combining following options. Please note that an ideal transparency is between 70% to 100%. You can disable transparency by disable all of the transparency options. + +#### Transparent Sidebar -The Acrylic Effect is the effect that gives the transparency effect on the sidebar. Only works on Windows 10 and higher. +Make the sidebar transparent ![Transparent Sidebar](/img/docs/transparent-sidebar.png) -## File Preview +#### Transparent Topbar -The file preview here means the preview that replaces the default icon of a file. +Make the topbar transparent ![Transparent Topbar](/img/docs/transparent-topbar.png) -### Play video file as preview +#### Transparent Workspace + +make the workspace transparent ![Transparent Workspace](/img/docs/transparent-workspace.png) + +### Frame Style + +You can choose the frame style on the `Appearance` tab of the Settings. The available options are `Default` and `System Default`. `Default` will use Xplorer's default style which is the same across platforms. `System Default` will use the system default frame style which is difference according to your platform. + +### File Preview + +File Preview here might means the file thumbnail. + +#### Automatically play video file as thumbnail This will automatically play the video file as a preview. :::caution THIS MIGHT CONSUME HIGH AMOUNT OF RAM This might consume a high amount of RAM because it's built on the HTML video player. You can just enable this setting and ignore this caution if you got a good-spec computer. ::: -### Extract `EXE` file icon and make it as preview +#### Preview image on hover + +This fill automatically show the image when you hovering it for 500ms. + +![Preview on hover](/img/docs/preview-on-hover.png) + +Some people might found it annoying and you can disable it by disabling this setting. + +#### Extract exe file icon and make it as the thumbnail This will parse and cache the icon from a `exe` file and make it a preview. Only on Windows. @@ -48,22 +82,43 @@ The way to fix it is to disable the setting. ::: -## Default file layout +:::info Open issue The current approach is by calling the powershell program which might pops up cmd windows. + +Any contribution to call it directly from Xplorer is welcome. ::: + +#### Show Image as Thumbnail + +This will show the image as a thumbnail of a file. Please note that this is not recommended for large directory as it reads the image to memory. + +#### Default file layout Default file layout of a directory. Just give it a try :) -## App Language +## Preference + +### App Language Localize Xplorer. Help us translate Xplorer [here](https://github.com/kimlimjustin/xplorer/discussions/30). -## Hide Hidden Files +### Hide Hidden Files Hide hidden files on Xplorer, you can find this setting on the `Preference` tab on Xplorer or by its shortcut, `Ctrl + H`. -## Hide System Files +### Hide System Files Hide Windows' system files on Xplorer. :::tip Learn what is system file [here](https://en.wikipedia.org/wiki/System_file). Just turn it off if you don't understand what it is. ::: -## List and sort directories alongside with files +### List and sort directories alongside files If disabled, Xplorer will prioritize directories above files. + +### Detect Drive Change + +Turning this on will detect drive change and update the sidebar and drives section. Please note that this will take high ammount of RAM as this is not stabilized yet. + +### On startup + +Option to do on starting Xplorer. Available options are: + +- New Tab +- Continue previous session diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/shortcut.md b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/shortcut.md index ee867ac2..d7ed792f 100644 --- a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/shortcut.md +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/shortcut.md @@ -1,35 +1,38 @@ # Горячие клавиши -| Клавиша | Описание | -| ------------------- | ------------------------------- | -| `Ctrl + A` | Выбрать всё | -| `Ctrl + C` | Копировать | -| `Ctrl + E` | Закрыть вкладку | -| `Ctrl + H` | Вкл./выкл. показ скрытых файлов | -| `Ctrl + O` | Предпросмотр файла | -| `Ctrl + P` | Свойства файлов и папок | -| `Ctrl + R` | Перезагрузить | -| `Ctrl + T` | Новая вкладка | -| `Ctrl + V` | Вставить | -| `Ctrl + X` | Вырезать | -| `Ctrl + W` | Выйти из Xplorer | -| `Alt + Left Arrow` | Назад | -| `Alt + Right Arrow` | Вперёд | -| `Alt + Up Arrow` | развернуть | -| `Alt + Down Arrow` | свернуть | -| `Alt + T` | Открыть в терминале | -| `Alt + P` | Закрепить в боковой панели | -| `Alt + Shift + C` | Скопировать путь | -| `F2` | Переименовать | -| `F5` | Обновить | -| `F10` | Свернуть | -| `F11` | Развернуть | -| `Shift + N` | Новая папка | -| `Shift + Del` | Удалить навсегда | -| `Shift + Enter` | Открыть в vscode | -| `Enter` | Открыть | -| `Del` | Удалить файл | +| Клавиша | Описание | +| ------------------- | ----------------------- | +| `Ctrl + A` | Выбрать всё | +| `Ctrl + C` | Копировать | +| `Ctrl + H` | Toggle Hidden Files | +| `Ctrl + N` | New window shortcut | +| `Ctrl + O` | Open file in preview | +| `Ctrl + P` | Свойства файлов и папок | +| `Ctrl + R` | Перезагрузить | +| `Ctrl + T` | Новая вкладка | +| `Ctrl + V` | Вставить | +| `Ctrl + X` | Вырезать | +| `Ctrl + W` | Exit Tab | +| `Ctrl + Y` | Redo | +| `Ctrl + Z` | Undo | +| `Ctrl + Shift + Z` | Redo | +| `Alt + Left Arrow` | Go Back | +| `Alt + Right Arrow` | Go Forward | +| `Alt + Up Arrow` | Go to parent directory | +| `Alt + N` | New File | +| `Alt + T` | Open in terminal | +| `Alt + P` | Pin to sidebar | +| `Alt + Shift + C` | Copy location path | +| `F2` | Rename | +| `F5` | Refresh | +| `F10` | Minimize | +| `F11` | Maximize | +| `Shift + N` | New Folders | +| `Shift + Del` | Permanent Delete | +| `Shift + Enter` | Open in vscode | +| `Enter` | Open | +| `Del` | Delete file | -:::note Difference between `reload` and `refresh` `Reload` refreshes the internal HTML while `Refresh` refreshes the whole Electron process. +:::note Difference between `reload` and `refresh` `Reload` refreshes the internal process while `Refresh` refreshes the whole process. ::: diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/xplorer as default.md b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/xplorer as default.md index 24fbd5e3..1622a512 100644 --- a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/xplorer as default.md +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/guides/xplorer as default.md @@ -12,7 +12,7 @@ 4. Navigate to `Computer\HKEY_CURRENT_USER\Software\Classes\Directory` 5. Create a key named `shell` if not existed by right and set the default key value to `openinxplorer` 6. Create a key named `openinxplorer` under `shell` -7. Create a key named `command` under `openinxplorer` and set the default key value to `"C:\Users\User\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"` +7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Program Files\Xplorer\Xplorer.exe" "%V"`. (You may have to change `C:\Program Files\Xplorer\` to the location you installed Xplorer) ![Registry Structure](/img/docs/registry.png) diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/intro.md b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/intro.md index 4c7d9fc5..859591eb 100644 --- a/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/intro.md +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-docs/current/intro.md @@ -8,14 +8,18 @@ sidebar_position: 1 Ласкаво просимо до Xplorer, безкоштовного та опенсорсного файлового менеджера. -Xplorer is a file explorer built from the ground up to be fully customizable and without customization, it also looks modern! It is cross-platform, built using Electron Technology that allowed our File Explorer to be run not only in Windows but also Linux and MacOS alike. It also allowed file preview directly inside it, not only pictures or documents but also videos! +Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern! -## Особливості +Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. -Xplorer включает у себе: +To summarize, Xplorer's features contain: -- Сучасний зовнішній вид +- It looks modern - Простоту використання - Кроссплатформенність -- Попередній перегляд файлів і навіть відео! -- Most importantly, it's Free and Open Source! Which mean you can change components inside if you see fit and you also don't need to make your wallet go dry or break the bank. +- [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos! +- Customizable +- Supports multiple tab +- Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit + +Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-pages/index.jsx b/docs/i18n/uk-UA/docusaurus-plugin-content-pages/index.jsx index a3df6202..38990cae 100644 --- a/docs/i18n/uk-UA/docusaurus-plugin-content-pages/index.jsx +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-pages/index.jsx @@ -5,102 +5,69 @@ import Slideshow from './slideshow'; import Link from '@docusaurus/Link'; export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - -
-
-
-

File Explorer.

-

Redefined.

-

- Free and Open Source Software. Runs everywhere. -

-
- - Download now - - - Xplorer the docs -{'>'} - -
-
-
- -
-
-
-

- Cross-platform File Explorer.{' '} - Powered by the web. -

- - Built using the{' '} - - Electron - {' '} - , based on{' '} - - Chromium - - , and written using{' '} - - TypeScript - {' '} - , Xplorer promises you an unprecedented experience. - -
-
- Xplorer designed out of the box -

Designed out of the box

-

- Say goodbye to the old design by traditional app - and say hello to this simple yet powerful - design. -

-
-
- Support tabs -

Supports Multiple Tabs

-

- Xplorer helps you organize you files easier by - supporting multiple tabs . -

-
-
- -

File Preview

-

- Xplorer supports files preview, even videos! - Learn more{' '} - - here - - . -

-
-
-
-
-
- ); + const { siteConfig } = useDocusaurusContext(); + return ( + +
+
+
+

File Explorer.

+

Redefined.

+

Free and Open Source Software. Runs everywhere.

+
+ + Download now + + + Xplorer the docs -{'>'} + +
+
+
+ +
+
+
+

+ Cross-platform File Explorer. Powered by the web. +

+ + Built using the{' '} + + Tauri Framework + {' '} + , and written using{' '} + + TypeScript + {' '} + for the frontend and{' '} + + Rust + {' '} + for the backend, Xplorer promises you an unprecedented experience. + +
+
+ Xplorer designed out of the box +

Designed out of the box

+

Say goodbye to the old design by traditional app and say hello to this simple yet powerful design.

+
+
+ Support tabs +

Supports Multiple Tabs

+

Xplorer helps you organize you files easier by supporting multiple tabs .

+
+
+ +

File Preview

+

+ Xplorer supports files preview, from images, code preview, pdfs, to videos. Learn more{' '} + here. +

+
+
+
+
+
+ ); } diff --git a/docs/i18n/uk-UA/docusaurus-plugin-content-pages/slideshow.jsx b/docs/i18n/uk-UA/docusaurus-plugin-content-pages/slideshow.jsx index d19300bf..f3957684 100644 --- a/docs/i18n/uk-UA/docusaurus-plugin-content-pages/slideshow.jsx +++ b/docs/i18n/uk-UA/docusaurus-plugin-content-pages/slideshow.jsx @@ -1,53 +1,47 @@ import React, { useEffect, useState } from 'react'; const slides = [ - { - name: 'Windows', - src: '/img/Xplorer%20win.png', - alt: 'Xplorer on Windows', - }, - { - name: 'Garuda Linux', - src: '/img/Xplorer%20linux.png', - alt: 'Xplorer on Linux', - }, - { - name: 'macOS Catalina', - src: '/img/Xplorer%20mac.png', - alt: 'Xplorer on macOS', - }, + { + name: 'Windows', + src: '/img/Xplorer_dark.png', + alt: 'Xplorer on Windows', + }, + { + name: 'Garuda Linux', + src: '/img/Xplorer%20linux.png', + alt: 'Xplorer on Linux', + }, + { + name: 'macOS Catalina', + src: '/img/Xplorer%20mac.png', + alt: 'Xplorer on macOS', + }, ]; export default function Slideshow() { - const [index, setIndex] = useState(0); - useEffect(() => { - const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); - return () => clearInterval(handle); - }, []); - return ( - <> -
- {slides.map((e, i) => ( -
-
- {i + 1} / {slides.length} -
- {e.alt} -
{e.name}
-
- ))} -
-
- {[0, 1, 2].map((e) => ( - - ))} -
- - ); + const [index, setIndex] = useState(0); + useEffect(() => { + const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); + return () => clearInterval(handle); + }, []); + return ( + <> +
+ {slides.map((e, i) => ( +
+
+ {i + 1} / {slides.length} +
+ {e.alt} +
{e.name}
+
+ ))} +
+
+ {[0, 1, 2].map((e) => ( + + ))} +
+ + ); } diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/Community/Contributing.md b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/Community/Contributing.md new file mode 100644 index 00000000..d8ffcd96 --- /dev/null +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/Community/Contributing.md @@ -0,0 +1,173 @@ +--- +sidebar_position: 2 +--- + +# 参与贡献 + +👍🎉 首先, 感谢您花时间来贡献! 🎉👍 + +Xplorer目前正在开发中。 我们欢迎您参与 Xplorer 的开发。 + +## 参与 + +您有诸多方式可以为 Xplorer 做出贡献,其中大多数无需您撰写甚至一行代码。 您可以从这些想法开始: + +- 开始使用 Xplorer ! 请转到入门指南。 每一步都如教程所写的能正常工作吗? 如果没有,我们总是在寻求改进。 通过提出一个 Issues,让我们了解情况。 +- 查看 [Xplorer Issues](https://github.com/kimlimjustin/xplorer/issues)。 若您有想修复的Issues,请[提交合并请求](#your-first-pull-request)。 标记为 [_头号好议题 (Good first issue)_](https://github.com/facebook/docusaurus/labels/Good%20first%20issue) 的都是好出发点。 +- 帮助我们改进文档。 如果您发现任何令人困惑的语文,或者任何语法错误,或者可以改进,请提交问题。 +- 查看 [GitHub 讨论](https://github.com/kimlimjustin/xplorer/discussions) 并将您的意见提交讨论,如果您看到一些你想要解决的问题,就考虑打开拉取请求。 + +我们十分欢迎您的贡献。 + +## 开发流程 + +Docusaurus 使用 [GitHub](https://github.com/facebook/docusaurus) 作为其万物根基。 核心团队将使用此平台。 自初始的任何更改均为公共可见。 + +### 提交新议题 {#issues} + +当[提交新议题时](https://github.com/facebook/docusaurus/issues/new/choose),请务必确保您填写了议题模板。 我们使用 GitHub 问题来跟踪公开的漏洞。 请确保您的描述清晰,并且有足够的指示来复制问题。 + +- **议题,一提:**请只对一个漏洞提交一个议题。 +- **提供重现步骤:**列出足以重现此问题的全部步骤。 阅读您漏洞反馈的人应能根据您所提供的步骤来重现问题。 + +### 建议新功能 {#feat} + +我们使用 [GitHub 讨论](https://github.com/kimlimjustin/xplorer/discussions) and [GitHub Issues](https://github.com/kimlimjustin/xplorer) 追踪用户的想法。 在这里建议一个新功能 [](https://github.com/kimlimjustin/xplorer/discussions/new)! 优秀的功能请求通常含有: + +- 功能概要 +- 什么 & 为何你想添加此功能 +- 附加附件,如图像,实现功能的资源链接等。 + +## 在 Xplorer 代码上工作 + +### 前提条件 + +- [Tauri 环境](https://tauri.studio/en/docs/getting-started/intro#setting-up-your-environment) +- [Node JS](https://nodejs.org/en/) +- [Git](https://git-scm.com/) +- [yarn](https://yarnpkg.com/) +- 代码编辑器,我们建议您使用 [VS Code](https://code.visualstudio.com/) + +### 安装 + +1. 在克隆仓库后, 在资源库的根目录下运行 `yarn` 并运行 `yarn` 在 `文档` 文件夹中(如果你想在 Xplorer 文档上工作的话)。 +2. 要在本地启动 Xplorer,请运行 `yarn dev`。 + + 要开启 Docusaurus 本地开发服务器,前往 `website` 目录并运行 `yarn start` + +### Gitpod {#gitpod-env} + +Gitpod is a Ready-to-Code environment in which you can get started immediately. Gitpod offers all dependencies pre-installed so you can just click and get started. + +To get started with Gitpod, click the button below and log in with your GitHub account. + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kimlimjustin/xplorer) + +:::note Remember to reload the Gitpod website after it loads up since it won't start the servers immediately, but by reloading, you can get it started. If you are developing the app, go to the Remote Explorer on the sidebar and visit port _6080_ which opens the noVNC app server. If you are developing the docs, go to the Remote explorer but instead of port 6080, visit port _3000_. You can edit normally as you do in VS Code, but if you want to use it locally, clik the hamburger menu button and click _Open in VS Code_. ::: + +### Semantic commit messages {#commit-msg} + +See how a minor change to your commit message style can make you a better programmer. + +Format: `(): ` + +`` is optional + +#### Example + +``` +feat: allow overriding of webpack config +^--^ ^------------^ +| | +| +-> Summary in present tense. +| ++-------> Type: chore, docs, feat, fix, refactor, style, or test. +``` + +the various types of commits: + +- `feat`: new feature for the user +- `fix`: bug fix for the user +- `docs`: changes to the documentation +- `style`: formatting, missing semi-colons, etc. +- `refactor`: refactoring production code, eg. renaming a variable +- `test`: adding missing tests, refactoring tests. +- `chore`: updating grunt tasks etc + +Use lower case not the upper case! + +## Working on Xplorer docs + +Xplorer documentation website is built using [Docusaurus 2](https://docusaurus.io/), and its code is located at [`docs`](https://github.com/kimlimjustin/xplorer/tree/master/docs) folder. + +### Prerequisite + +- [node js](https://nodejs.org/en/) +- [git](https://git-scm.com/downloads) +- [yarn](https://yarnpkg.com/getting-started/install#about-global-installs) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +After cloning the repository, run `yarn` in the `docs` folder (you can go into the `docs` folder by running the `cd docs` command). + +If you want to use Gitpod, click [here](#gitpod-env) for the guide on how to use Gitpod. + +### Local development + +1. Run the `yarn start` command in the `docs` folder. +2. Edit some markdown texts in the `docs` folder and the website will be hot reloaded. + +## Pull requests + +### Your first pull request. {#first-pull-request} + +So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at. + +Working on your first Pull Request? You can learn how from this free video series: + +How to Contribute to an Open Source Project on GitHub + +We have a list of [beginner-friendly issues](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) to help you get your feet wet in the Xplorer codebase and familiar with our contribution process. This is a great place to get started. + +### Proposing a change + +If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can also [open a discussion](#feat) and others will code it! + +If you intend to fix a bug, please discuss it through [Issues](#issues) before submitting a pull request. + +If you intend to add a new feature, please discuss it through [GitHub Discussions](#feat) to avoid multiple people working on the same feature request. + +### Sending a Pull Request + +make sure the PR does only one thing, otherwise please split it. It is recommended to follow this [commit message style](#commit-msg). + +1. Fork [the repository](https://github.com/kimlimjustin/xplorer) and create your branch from `master`. +2. Make changes and ensure your commit message is understandable. +3. Open a [PR](https://github.com/kimlimjustin/xplorer/pulls) and ensure to describe your pull request clearly. + +## Working on Xplorer resources + +### Locales + +We host our locales on the [crowdin](https://crwd.in/xplorer). To translate it, please follow these steps: + +- Sign up on [Crowdin](https://crowdin.com) and Join our project [here](https://crwd.in/xplorer). +- Make sure your locale exists there, if it does not exist, leave a comment in [this discussion](https://github.com/kimlimjustin/xplorer/discussions/30) and I'll add the language option :) +- Get familiar with the Crowdin translation UI, as you will need to use it to translate JSON and Markdown files +- Translate the content! + +#### Priority Files to translate on Crowdin + +1. `src/Locales` files +2. `docs/` files + +#### Production + +Once the files on `src/Locales` have been translated for more than 80%, we will add it into the Xplorer app, and for the docs, we will add it into production once the translation looks good! + +Please comment [here](https://github.com/kimlimjustin/xplorer/discussions/30) if you have any questions! + +### File Library + +The json library of file types and thumbnail are found under `lib` folder and the icons are found under `src/Icons` folder. You may add file types and icons for file extensions you want to use and submit a PR. diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/Community/support.md b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/Community/support.md new file mode 100644 index 00000000..8ea01be3 --- /dev/null +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/Community/support.md @@ -0,0 +1,42 @@ +--- +sidebar_position: 1 +--- + +# Support + +Xplorer is an open-source project which you can freely join and seek support 😊. + +On this page, we've listed some communities/forums you can participate in to seek support or help others. + +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). + +## Issues + +We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). + +## GitHub Discussions + +GitHub Discussions is used for multiple purposes, such as: + +1. Asking questions +2. Making feature requests and sharing ideas +3. Chat on Xplorer +4. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! + +### Feature Request + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) and [GitHub Issues](https://github.com/kimlimjustin/xplorer/issues) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + +### Help + +You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) or [Discord Channel](https://discord.gg/kK7rwxPt). + +:::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: + +## News + +For the latest news about Xplorer, you can see it through posts on [Forem](https://dev.to/t/xplorer). diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/common_problems.md b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/common_problems.md index 0329306c..ebdcac5f 100644 --- a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/common_problems.md +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/common_problems.md @@ -1,3 +1,7 @@ +- - - +sidebar_position: 3 +- - - + # Common Problems **NB: For common problems during installation, please open [here](/docs/install/#common-problems)** @@ -5,25 +9,6 @@
-### Xplorer keep loading and crashes. - - - -Try opening `cmd` by opening Win + R(Run) and type `cmd`. - -Enter following command: - -``` -wmic -``` - -If the output says the `wmic` is not recognized as internal or internal command, please follow the following steps given on [this](https://superuser.com/questions/1178674/wmic-is-not-recognized-as-an-internal-or-external-command-operable-program-or) or [this](https://knowledge.informatica.com/s/article/156865?language=en_US). Also, please make sure that Windows Defender isn't blocking Xplorer from accessing your documents. - -
- -
- - ### Opening folder like `Documents`, `Desktop`, `Downloads` make Xplorer crashes diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/_category_.json b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/_category_.json index 2a648072..b1419d2f 100644 --- a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/_category_.json +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/_category_.json @@ -1,4 +1,4 @@ { - "label": "Guides", - "position": 3 -} \ No newline at end of file + "label": "Guides", + "position": 4 +} diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/cli.md b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/cli.md index b1ea164c..e125b4f0 100644 --- a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/cli.md +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/cli.md @@ -1,7 +1,5 @@ # Launch Xplorer from Terminal -:::info This feature hasn't been optimized yet. It works but it might be laggy. This will be optimized in the feature release. ::: - ## Commands Xplorer CLI: @@ -14,24 +12,6 @@ Xplorer will open `dir`, `dir2`, `dir3` as tabs on Xplorer. If there's no direct Options: -| Command | Alias | Description | -| ----------- | ----- | ---------------------------------------------- | -| `--help` | `-h` | Show help | -| `--version` | `-v` | Show version number | -| `--reveal` | `-r` | Open the containing folder and select the file | - -
- -xplorer: command not found error on Windows - - -Firstly, you have to register the command into the system path. - -1. Open the `System Properties` on Windows. -2. Click the `Environment Variables` button, it will pop up a window. -3. On the table, search for the `Path` variable and click on it. -4. Click the `Edit` button, it will pop up a window. -5. Click the `New` button. -6. Add `%USERPROFILE%\AppData\Local\Programs\xplorer`. - -
+| Command | Alias | Description | +| ---------- | ----- | ---------------------------------------------- | +| `--reveal` | `-r` | Open the containing folder and select the file | diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/operation.md b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/operation.md index 4804e090..75cdea48 100644 --- a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/operation.md +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/operation.md @@ -6,13 +6,9 @@ You can copy files by right-clicking it and click the `Copy` option or select th :::info -On Windows and macOS, Xplorer will copy the file paths into the local clipboard, because of this, you can copy a file from Xplorer and paste it into any folder in another system. However, on Linux, we create a string of Xplorer commands and copy it into the user clipboard, Xplorer will read the user's clipboard when pasting the file (because we haven't found any idea to implement it, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us). The string of the Xplorer command looks like this: +For current implementation, Xplorer write down what to copy locally (not copying to clipboard). -``` -Xplorer command - COPY -~/xplorer -~/test -``` +TODO: implement copy to clipboard ::: @@ -24,29 +20,27 @@ You can copy a file/folder location path into your clipboard by right-clicking i You can cut files by right-clicking it and click the `Cut` option or select the file then press `Ctrl + X` as a shortcut and paste it by clicking the `Paste` option or press `Ctrl + V` on the destination folder. -:::info This is done by creating a string of Xplorer command and copies it into the user clipboard to be used when pasting file (this is not integrated with the platform because we haven't found any idea, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us.). The string of Xplorer command looks like this: +:::info -``` -Xplorer command - CUT -E://xplorer -E://test -``` +For current implementation, Xplorer write down what to cut locally (not copying to clipboard). ::: ## Delete files -You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. The trashed file can be accessed at `xplorer://Trash`. +You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. -:::info +### Trashed files -- On Windows, this is done by creating a `Trash` folder on the `C:` drive and moving the file into it. -- On Linux, this feature is fully integrated with the system. -- On macOS, this is done by creating a `.local/Trash` folder on `homedir` and moving the file into it. +The trashed file can be accessed at `xplorer://Trash` or your system trash folder. :::danger Open Issue -We are still working on Windows on macOS to integrate the `Trash` folder, which will be released before the stable version came out. Feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us. +Please note that Trash folder cannot be accessed on macos via Xplorer since the [trash crate](https://github.com/Byron/trash-rs) Xplorer relies to does not support it (see [this issue](https://github.com/Byron/trash-rs/issues/8) for more details). -::: +Any contributions to either the trash crate or Xplorer itself for this topic are welcome. ::: + +### Restore files + +You can restore files by opening the `xplorer://Trash` and right-clicking it and click the `Restore` option ### Permanently delete @@ -100,71 +94,12 @@ You can preview a file directly from Xplorer by right-clicking it and click the Files available to preview for now: -```json -[ - ".pdf", - ".html", - ".docx", - ".htm", - ".xlsx", - ".xls", - ".xlsb", - "xls", - ".ods", - ".fods", - ".csv", - ".txt", - ".py", - ".js", - ".bat", - ".css", - ".c++", - ".cpp", - ".cc", - ".c", - ".diff", - ".patch", - ".go", - ".java", - ".json", - ".php", - ".ts", - ".tsx", - ".jsx", - ".jpg", - ".png", - ".gif", - ".bmp", - ".jpeg", - ".jpe", - ".jif", - ".jfif", - ".jfi", - ".webp", - ".tiff", - ".tif", - ".ico", - ".svg", - ".webp", - ".mp4", - ".webm", - ".mpg", - ".mp2", - ".mpeg", - ".mpe", - ".mpv", - ".ocg", - ".m4p", - ".m4v", - ".avi", - ".wmv", - ".mov", - ".qt", - ".flv", - ".swf", - ".md" -] -``` +* Markdown files +* Image files +* Text files +* Video files +* Pdfs +* Almost all programming language with syntax highlighting
diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/setting.md b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/setting.md index 8219e5f5..e48188a6 100644 --- a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/setting.md +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/setting.md @@ -12,29 +12,63 @@ You can open settings on Xplorer by clicking the `Settings` button on the left d How to exit from Settings? -You can exit from Settings on Xplorer by clicking the Arrow Up button on the upside left of Xplorer. +You can exit from Settings on Xplorer by clicking on the upside left of Xplorer. ![Settings](/img/docs/exit-settings.png) -## App Theme +## Appearance + +### App Theme You can change Xplorer's app theme on the `Appearance` tab of the Settings. Available default themes are `light`, `light+`, `dark`, and `dark+`. Besides, there is a `System Default` theme that will automatically read your system preference. :::info Xplorer will support a custom app theme soon, stay tuned! ::: -### Acrylic Effect +### Font Family + +You can change Xplorer's font family on the `Appearance` tab of the Settings to one of installed font families installed on your system. + +### Font Size + +You can change Xplorer's font size on the `Appearance` tab of the Settings. Please note that an ideal font size is between 10px to 30px. + +### Window Transparency + +Make Xplorer window transparent on the `Appearance` tab of the Settings by combining following options. Please note that an ideal transparency is between 70% to 100%. You can disable transparency by disable all of the transparency options. + +#### Transparent Sidebar -The Acrylic Effect is the effect that gives the transparency effect on the sidebar. Only works on Windows 10 and higher. +Make the sidebar transparent ![Transparent Sidebar](/img/docs/transparent-sidebar.png) -## File Preview +#### Transparent Topbar -The file preview here means the preview that replaces the default icon of a file. +Make the topbar transparent ![Transparent Topbar](/img/docs/transparent-topbar.png) -### Play video file as a preview +#### Transparent Workspace + +make the workspace transparent ![Transparent Workspace](/img/docs/transparent-workspace.png) + +### Frame Style + +You can choose the frame style on the `Appearance` tab of the Settings. The available options are `Default` and `System Default`. `Default` will use Xplorer's default style which is the same across platforms. `System Default` will use the system default frame style which is difference according to your platform. + +### File Preview + +File Preview here might means the file thumbnail. + +#### Automatically play video file as thumbnail This will automatically play the video file as a preview. :::caution THIS MIGHT CONSUME HIGH AMOUNT OF RAM This might consume a high amount of RAM because it's built on the HTML video player. You can just enable this setting and ignore this caution if you got a good-spec computer. ::: -### Extract `EXE` file icon and make it a preview +#### Preview image on hover + +This fill automatically show the image when you hovering it for 500ms. + +![Preview on hover](/img/docs/preview-on-hover.png) + +Some people might found it annoying and you can disable it by disabling this setting. + +#### Extract exe file icon and make it as the thumbnail This will parse and cache the icon from a `exe` file and make it a preview. Only on Windows. @@ -48,22 +82,43 @@ The way to fix it is to disable the setting. ::: -## Default file layout +:::info Open issue The current approach is by calling the powershell program which might pops up cmd windows. + +Any contribution to call it directly from Xplorer is welcome. ::: + +#### Show Image as Thumbnail + +This will show the image as a thumbnail of a file. Please note that this is not recommended for large directory as it reads the image to memory. + +#### Default file layout Default file layout of a directory. Just give it a try :) -## App Language +## Preference + +### App Language Localize Xplorer. Help us translate Xplorer [here](https://github.com/kimlimjustin/xplorer/discussions/30). -## Hide Hidden Files +### Hide Hidden Files Hide hidden files on Xplorer, you can find this setting on the `Preference` tab on Xplorer or by its shortcut, `Ctrl + H`. -## Hide System Files +### Hide System Files Hide Windows' system files on Xplorer. :::tip Learn what is system file [here](https://en.wikipedia.org/wiki/System_file). Just turn it off if you don't understand what it is. ::: -## List and sort directories alongside files +### List and sort directories alongside files If disabled, Xplorer will prioritize directories above files. + +### Detect Drive Change + +Turning this on will detect drive change and update the sidebar and drives section. Please note that this will take high ammount of RAM as this is not stabilized yet. + +### On startup + +Option to do on starting Xplorer. Available options are: + +- New Tab +- Continue previous session diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/shortcut.md b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/shortcut.md index 5a2ac3cb..1dcb2c04 100644 --- a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/shortcut.md +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/shortcut.md @@ -4,19 +4,22 @@ | ------------------- | ------------------------ | | `Ctrl + A` | Select All | | `Ctrl + C` | Copy | -| `Ctrl + E` | Close Tab | | `Ctrl + H` | Toggle Hidden Files | -| `Ctrl + O` | Preview file | +| `Ctrl + N` | New window shortcut | +| `Ctrl + O` | Open file in preview | | `Ctrl + P` | Files/Folders Properties | | `Ctrl + R` | Reload | | `Ctrl + T` | New Tab | | `Ctrl + V` | Paste | | `Ctrl + X` | Cut | -| `Ctrl + W` | Exit Xplorer | +| `Ctrl + W` | Exit Tab | +| `Ctrl + Y` | Redo | +| `Ctrl + Z` | Undo | +| `Ctrl + Shift + Z` | Redo | | `Alt + Left Arrow` | Go Back | | `Alt + Right Arrow` | Go Forward | -| `Alt + Up Arrow` | maximize | -| `Alt + Down Arrow` | minimize | +| `Alt + Up Arrow` | Go to parent directory | +| `Alt + N` | New File | | `Alt + T` | Open in terminal | | `Alt + P` | Pin to sidebar | | `Alt + Shift + C` | Copy location path | @@ -30,6 +33,6 @@ | `Enter` | Open | | `Del` | Delete file | -:::note Difference between `reload` and `refresh` `Reload` refreshes the internal HTML while `Refresh` refreshes the whole Electron process. +:::note Difference between `reload` and `refresh` `Reload` refreshes the internal process while `Refresh` refreshes the whole process. ::: diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/xplorer as default.md b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/xplorer as default.md index f575bfa4..e69d60f6 100644 --- a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/xplorer as default.md +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/xplorer as default.md @@ -12,7 +12,7 @@ 4. Navigate to `Computer\HKEY_CURRENT_USER\Software\Classes\Directory` 5. Create a key named `shell` if not existed by right and set the default key-value to `openinxplorer` 6. Create a key named `openinxplorer` under `shell` -7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Users\User\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"` +7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Program Files\Xplorer\Xplorer.exe" "%V"`. (You may have to change `C:\Program Files\Xplorer\` to the location you installed Xplorer) ![Registry Structure](/img/docs/registry.png) diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/intro.md b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/intro.md index 84728f3d..e52c059e 100644 --- a/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/intro.md +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-docs/current/intro.md @@ -8,14 +8,18 @@ sidebar_position: 1 Welcome to Xplorer, A Free and Open Source (FOSS) File Explorer. -Xplorer is a file explorer built from the ground up to be fully customizable and without customization, it also looks modern! It is cross-platform, built using Electron Technology that allowed our File Explorer to be run not only in Windows but also Linux and MacOS alike. It also allowed file preview directly inside it, not only pictures or documents but also videos! +Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern! -## 特色 +Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. -So to summarize, Xplorer's features contain: +To summarize, Xplorer's features contain: -- 现代化 +- It looks modern - Easy to use - Cross-platform -- File Preview, even videos! -- Most importantly, it's Free and Open Source! Which mean you can change components inside if you see fit and you also don't need to make your wallet go dry or break the bank. +- [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos! +- Customizable +- Supports multiple tab +- Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit + +Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-pages/index.jsx b/docs/i18n/zh-CN/docusaurus-plugin-content-pages/index.jsx index a3df6202..38990cae 100644 --- a/docs/i18n/zh-CN/docusaurus-plugin-content-pages/index.jsx +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-pages/index.jsx @@ -5,102 +5,69 @@ import Slideshow from './slideshow'; import Link from '@docusaurus/Link'; export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - -
-
-
-

File Explorer.

-

Redefined.

-

- Free and Open Source Software. Runs everywhere. -

-
- - Download now - - - Xplorer the docs -{'>'} - -
-
-
- -
-
-
-

- Cross-platform File Explorer.{' '} - Powered by the web. -

- - Built using the{' '} - - Electron - {' '} - , based on{' '} - - Chromium - - , and written using{' '} - - TypeScript - {' '} - , Xplorer promises you an unprecedented experience. - -
-
- Xplorer designed out of the box -

Designed out of the box

-

- Say goodbye to the old design by traditional app - and say hello to this simple yet powerful - design. -

-
-
- Support tabs -

Supports Multiple Tabs

-

- Xplorer helps you organize you files easier by - supporting multiple tabs . -

-
-
- -

File Preview

-

- Xplorer supports files preview, even videos! - Learn more{' '} - - here - - . -

-
-
-
-
-
- ); + const { siteConfig } = useDocusaurusContext(); + return ( + +
+
+
+

File Explorer.

+

Redefined.

+

Free and Open Source Software. Runs everywhere.

+
+ + Download now + + + Xplorer the docs -{'>'} + +
+
+
+ +
+
+
+

+ Cross-platform File Explorer. Powered by the web. +

+ + Built using the{' '} + + Tauri Framework + {' '} + , and written using{' '} + + TypeScript + {' '} + for the frontend and{' '} + + Rust + {' '} + for the backend, Xplorer promises you an unprecedented experience. + +
+
+ Xplorer designed out of the box +

Designed out of the box

+

Say goodbye to the old design by traditional app and say hello to this simple yet powerful design.

+
+
+ Support tabs +

Supports Multiple Tabs

+

Xplorer helps you organize you files easier by supporting multiple tabs .

+
+
+ +

File Preview

+

+ Xplorer supports files preview, from images, code preview, pdfs, to videos. Learn more{' '} + here. +

+
+
+
+
+
+ ); } diff --git a/docs/i18n/zh-CN/docusaurus-plugin-content-pages/slideshow.jsx b/docs/i18n/zh-CN/docusaurus-plugin-content-pages/slideshow.jsx index d19300bf..f3957684 100644 --- a/docs/i18n/zh-CN/docusaurus-plugin-content-pages/slideshow.jsx +++ b/docs/i18n/zh-CN/docusaurus-plugin-content-pages/slideshow.jsx @@ -1,53 +1,47 @@ import React, { useEffect, useState } from 'react'; const slides = [ - { - name: 'Windows', - src: '/img/Xplorer%20win.png', - alt: 'Xplorer on Windows', - }, - { - name: 'Garuda Linux', - src: '/img/Xplorer%20linux.png', - alt: 'Xplorer on Linux', - }, - { - name: 'macOS Catalina', - src: '/img/Xplorer%20mac.png', - alt: 'Xplorer on macOS', - }, + { + name: 'Windows', + src: '/img/Xplorer_dark.png', + alt: 'Xplorer on Windows', + }, + { + name: 'Garuda Linux', + src: '/img/Xplorer%20linux.png', + alt: 'Xplorer on Linux', + }, + { + name: 'macOS Catalina', + src: '/img/Xplorer%20mac.png', + alt: 'Xplorer on macOS', + }, ]; export default function Slideshow() { - const [index, setIndex] = useState(0); - useEffect(() => { - const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); - return () => clearInterval(handle); - }, []); - return ( - <> -
- {slides.map((e, i) => ( -
-
- {i + 1} / {slides.length} -
- {e.alt} -
{e.name}
-
- ))} -
-
- {[0, 1, 2].map((e) => ( - - ))} -
- - ); + const [index, setIndex] = useState(0); + useEffect(() => { + const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); + return () => clearInterval(handle); + }, []); + return ( + <> +
+ {slides.map((e, i) => ( +
+
+ {i + 1} / {slides.length} +
+ {e.alt} +
{e.name}
+
+ ))} +
+
+ {[0, 1, 2].map((e) => ( + + ))} +
+ + ); } diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/Community/Contributing.md b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/Community/Contributing.md new file mode 100644 index 00000000..be326698 --- /dev/null +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/Community/Contributing.md @@ -0,0 +1,173 @@ +--- +sidebar_position: 2 +--- + +# Contribute + +👍🎉 First off, thanks for taking the time to contribute! 🎉👍 + +Xplorer is currently under heavy development. We are welcoming contributors to collaborate on Xplorer. + +## Get involved + +There are many ways to contribute to Xplorer, and many of them do not involve writing any code. Here are few ideas to get started: + +- Start using Xplorer! Go through the Tutorial guides. Does anything work as expected? If not, we're always looking for improvements. Let us know by opening an issue. +- Look through the [Xplorer issues](https://github.com/kimlimjustin/xplorer/issues). If you find an issue you would like to fix, [open a pull request](#first-pull-request). Issues tagged as [good first issue](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) are a good place to get started. +- Help us make the docs better. File an issue if you find anything that is confusing, any grammatical error, or can be improved. +- Take a look at [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and give your opinion into a discussion or consider opening a pull request if you see something you want to work on. + +Contributions are very welcome! + +## Our development process + +Xplorer uses [GitHub](https://github.com/kimlimjustin/xplorer) as its source of truth. The core team will work directly there. All changes will be public from the beginning. + +### Reporting new issues/bugs. {#issues} + +When [opening a new issue](https://github.com/kimlimjustin/xplorer/issues), always make sure to fill out the issue template. We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. + +- _One issue, one bug_: Please report a single bug per issue. +- _Provide reproduction steps_: List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort. + +### Feature Request {#feat} + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussions) and [GitHub Issues](https://github.com/kimlimjustin/xplorer) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional references like images, links of resources about the feature, etc. + +## Working on Xplorer code + +### Prerequisite + +- [Tauri environment](https://tauri.studio/en/docs/getting-started/intro#setting-up-your-environment) +- [Node JS](https://nodejs.org/en/) +- [Git](https://git-scm.com/) +- [yarn](https://yarnpkg.com/) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +1. After cloning the repository, run `yarn` in the root of the repository and run `yarn` in the `docs` folder (if you want to working on Xplorer Docs). +2. To start Xplorer locally, run `yarn dev`. + + To start a local development server serving the Docusaurus docs, go into the `docs` directory and run `yarn start` + +### Gitpod {#gitpod-env} + +Gitpod is a Ready-to-Code environment in which you can get started immediately. Gitpod offers all dependencies pre-installed so you can just click and get started. + +To get started with Gitpod, click the button below and log in with your GitHub account. + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kimlimjustin/xplorer) + +:::note Remember to reload the Gitpod website after it loads up since it won't start the servers immediately, but by reloading, you can get it started. If you are developing the app, go to the Remote Explorer on the sidebar and visit port _6080_ which opens the noVNC app server. If you are developing the docs, go to the Remote explorer but instead of port 6080, visit port _3000_. You can edit normally as you do in VS Code, but if you want to use it locally, clik the hamburger menu button and click _Open in VS Code_. ::: + +### Semantic commit messages {#commit-msg} + +See how a minor change to your commit message style can make you a better programmer. + +Format: `(): ` + +`` is optional + +#### Example + +``` +feat: allow overriding of webpack config +^--^ ^------------^ +| | +| +-> Summary in present tense. +| ++-------> Type: chore, docs, feat, fix, refactor, style, or test. +``` + +the various types of commits: + +- `feat`: new feature for the user +- `fix`: bug fix for the user +- `docs`: changes to the documentation +- `style`: formatting, missing semi-colons, etc. +- `refactor`: refactoring production code, eg. renaming a variable +- `test`: adding missing tests, refactoring tests. +- `chore`: updating grunt tasks etc + +Use lower case not the upper case! + +## Working on Xplorer docs + +Xplorer documentation website is built using [Docusaurus 2](https://docusaurus.io/), and its code is located at [`docs`](https://github.com/kimlimjustin/xplorer/tree/master/docs) folder. + +### Prerequisite + +- [node js](https://nodejs.org/en/) +- [git](https://git-scm.com/downloads) +- [yarn](https://yarnpkg.com/getting-started/install#about-global-installs) +- Code Editor, we recommend you to use [VS Code](https://code.visualstudio.com/) + +### Installation + +After cloning the repository, run `yarn` in the `docs` folder (you can go into the `docs` folder by running the `cd docs` command). + +If you want to use Gitpod, click [here](#gitpod-env) for the guide on how to use Gitpod. + +### Local development + +1. Run the `yarn start` command in the `docs` folder. +2. Edit some markdown texts in the `docs` folder and the website will be hot reloaded. + +## Pull requests + +### Your first pull request. {#first-pull-request} + +So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at. + +Working on your first Pull Request? You can learn how from this free video series: + +How to Contribute to an Open Source Project on GitHub + +We have a list of [beginner-friendly issues](https://github.com/kimlimjustin/xplorer/labels/good%20first%20issue) to help you get your feet wet in the Xplorer codebase and familiar with our contribution process. This is a great place to get started. + +### Proposing a change + +If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, you can also [open a discussion](#feat) and others will code it! + +If you intend to fix a bug, please discuss it through [Issues](#issues) before submitting a pull request. + +If you intend to add a new feature, please discuss it through [GitHub Discussions](#feat) to avoid multiple people working on the same feature request. + +### Sending a Pull Request + +make sure the PR does only one thing, otherwise please split it. It is recommended to follow this [commit message style](#commit-msg). + +1. Fork [the repository](https://github.com/kimlimjustin/xplorer) and create your branch from `master`. +2. Make changes and ensure your commit message is understandable. +3. Open a [PR](https://github.com/kimlimjustin/xplorer/pulls) and ensure to describe your pull request clearly. + +## Working on Xplorer resources + +### Locales + +We host our locales on the [crowdin](https://crwd.in/xplorer). To translate it, please follow these steps: + +- Sign up on [Crowdin](https://crowdin.com) and Join our project [here](https://crwd.in/xplorer). +- Make sure your locale exists there, if it does not exist, leave a comment in [this discussion](https://github.com/kimlimjustin/xplorer/discussions/30) and I'll add the language option :) +- Get familiar with the Crowdin translation UI, as you will need to use it to translate JSON and Markdown files +- Translate the content! + +#### Priority Files to translate on Crowdin + +1. `src/Locales` files +2. `docs/` files + +#### Production + +Once the files on `src/Locales` have been translated for more than 80%, we will add it into the Xplorer app, and for the docs, we will add it into production once the translation looks good! + +Please comment [here](https://github.com/kimlimjustin/xplorer/discussions/30) if you have any questions! + +### File Library + +The json library of file types and thumbnail are found under `lib` folder and the icons are found under `src/Icons` folder. You may add file types and icons for file extensions you want to use and submit a PR. diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/Community/support.md b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/Community/support.md new file mode 100644 index 00000000..8ea01be3 --- /dev/null +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/Community/support.md @@ -0,0 +1,42 @@ +--- +sidebar_position: 1 +--- + +# Support + +Xplorer is an open-source project which you can freely join and seek support 😊. + +On this page, we've listed some communities/forums you can participate in to seek support or help others. + +Before participating in Xplorer's communities, please read our [Code Of Conduct](/docs/community/CODE_OF_CONDUCT/). + +## Issues + +We use GitHub Issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. Report a bug by opening a new issue [here](https://github.com/kimlimjustin/xplorer/issues/new). + +## GitHub Discussions + +GitHub Discussions is used for multiple purposes, such as: + +1. Asking questions +2. Making feature requests and sharing ideas +3. Chat on Xplorer +4. Show and tell: Making custom themes/plug-ins for Xplorer and showing them there! + +### Feature Request + +We use [GitHub Discussions](https://github.com/kimlimjustin/xplorer/discussion) and [GitHub Issues](https://github.com/kimlimjustin/xplorer/issues) to track ideas from users. Suggest a new feature [here](https://github.com/kimlimjustin/xplorer/discussions/new)! Great Feature Requests tend to have: + +- A quick idea summary. +- What & why you wanted to add the specific feature. +- Additional context like images, links to resources to implement the feature, etc. + +### Help + +You can ask for help using [GitHub Discussion](https://github.com/kimlimjustin/xplorer/discussions) or [Discord Channel](https://discord.gg/kK7rwxPt). + +:::note Remember to choose the discussion category as Q&A so that your question will be published with answers enabled. ::: + +## News + +For the latest news about Xplorer, you can see it through posts on [Forem](https://dev.to/t/xplorer). diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/common_problems.md b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/common_problems.md index 0329306c..ebdcac5f 100644 --- a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/common_problems.md +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/common_problems.md @@ -1,3 +1,7 @@ +- - - +sidebar_position: 3 +- - - + # Common Problems **NB: For common problems during installation, please open [here](/docs/install/#common-problems)** @@ -5,25 +9,6 @@
-### Xplorer keep loading and crashes. - - - -Try opening `cmd` by opening Win + R(Run) and type `cmd`. - -Enter following command: - -``` -wmic -``` - -If the output says the `wmic` is not recognized as internal or internal command, please follow the following steps given on [this](https://superuser.com/questions/1178674/wmic-is-not-recognized-as-an-internal-or-external-command-operable-program-or) or [this](https://knowledge.informatica.com/s/article/156865?language=en_US). Also, please make sure that Windows Defender isn't blocking Xplorer from accessing your documents. - -
- -
- - ### Opening folder like `Documents`, `Desktop`, `Downloads` make Xplorer crashes diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/_category_.json b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/_category_.json index de66c189..fff5a263 100644 --- a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/_category_.json +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/_category_.json @@ -1,4 +1,4 @@ { - "label": "使用指南", - "position": 3 -} \ No newline at end of file + "label": "使用指南", + "position": 4 +} diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/cli.md b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/cli.md index bdd79bb4..635aba13 100644 --- a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/cli.md +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/cli.md @@ -1,7 +1,5 @@ # 從終端機啟動Xplorer -:::info This feature hasn't been optimized yet. 可以使用但可能反應較慢 This will be optimized in the feature release. ::: - ## 指令 Xplorer CLI: @@ -10,28 +8,10 @@ Xplorer CLI: xplorer [dir1] [dir2] [dir3] ``` -Xplorer會以分頁開啟`資料夾`, `資料夾2`, `資料夾3`。 If there's no directory(dir) passed into the command, Xplorer will start at the Home page. - -選項 - -| 指令 | 代稱 | 說明 | -| ----------- | ---- | ------------ | -| `--help` | `-h` | 顯示說明 | -| `--version` | `-v` | 顯示版本編號 | -| `--reveal` | `-r` | 打開包含文件夾並選擇文件 | - -
- -於Windows系統中使用時出現xplorer: command not found錯誤 - - -首先,您需要將指令新增至環境變數。 +Xplorer will open `dir`, `dir2`, `dir3` as tabs on Xplorer. If there's no directory(dir) passed into the command, Xplorer will start at the Home page. -1. 在Windows系統中開啟`系統內容` -2. Click the `Environment Variables` button, it will pop up a window. -3. On the table, search for the `Path` variable and click on it. -4. Click the `Edit` button, it will pop up a window. -5. Click the `New` button. -6. Add `%USERPROFILE%\AppData\Local\Programs\xplorer`. +Options: -
+| 指令 | 代稱 | 說明 | +| ---------- | ---- | ---------------------------------------------- | +| `--reveal` | `-r` | Open the containing folder and select the file | diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/operation.md b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/operation.md index 4804e090..75cdea48 100644 --- a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/operation.md +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/operation.md @@ -6,13 +6,9 @@ You can copy files by right-clicking it and click the `Copy` option or select th :::info -On Windows and macOS, Xplorer will copy the file paths into the local clipboard, because of this, you can copy a file from Xplorer and paste it into any folder in another system. However, on Linux, we create a string of Xplorer commands and copy it into the user clipboard, Xplorer will read the user's clipboard when pasting the file (because we haven't found any idea to implement it, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us). The string of the Xplorer command looks like this: +For current implementation, Xplorer write down what to copy locally (not copying to clipboard). -``` -Xplorer command - COPY -~/xplorer -~/test -``` +TODO: implement copy to clipboard ::: @@ -24,29 +20,27 @@ You can copy a file/folder location path into your clipboard by right-clicking i You can cut files by right-clicking it and click the `Cut` option or select the file then press `Ctrl + X` as a shortcut and paste it by clicking the `Paste` option or press `Ctrl + V` on the destination folder. -:::info This is done by creating a string of Xplorer command and copies it into the user clipboard to be used when pasting file (this is not integrated with the platform because we haven't found any idea, feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us.). The string of Xplorer command looks like this: +:::info -``` -Xplorer command - CUT -E://xplorer -E://test -``` +For current implementation, Xplorer write down what to cut locally (not copying to clipboard). ::: ## Delete files -You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. The trashed file can be accessed at `xplorer://Trash`. +You can cut files by right-clicking it and click the `Delete` option or select the file then press `Del` as a shortcut. -:::info +### Trashed files -- On Windows, this is done by creating a `Trash` folder on the `C:` drive and moving the file into it. -- On Linux, this feature is fully integrated with the system. -- On macOS, this is done by creating a `.local/Trash` folder on `homedir` and moving the file into it. +The trashed file can be accessed at `xplorer://Trash` or your system trash folder. :::danger Open Issue -We are still working on Windows on macOS to integrate the `Trash` folder, which will be released before the stable version came out. Feel free to [open a PR](/community/Contributing/#pull-requests) if you can help us. +Please note that Trash folder cannot be accessed on macos via Xplorer since the [trash crate](https://github.com/Byron/trash-rs) Xplorer relies to does not support it (see [this issue](https://github.com/Byron/trash-rs/issues/8) for more details). -::: +Any contributions to either the trash crate or Xplorer itself for this topic are welcome. ::: + +### Restore files + +You can restore files by opening the `xplorer://Trash` and right-clicking it and click the `Restore` option ### Permanently delete @@ -100,71 +94,12 @@ You can preview a file directly from Xplorer by right-clicking it and click the Files available to preview for now: -```json -[ - ".pdf", - ".html", - ".docx", - ".htm", - ".xlsx", - ".xls", - ".xlsb", - "xls", - ".ods", - ".fods", - ".csv", - ".txt", - ".py", - ".js", - ".bat", - ".css", - ".c++", - ".cpp", - ".cc", - ".c", - ".diff", - ".patch", - ".go", - ".java", - ".json", - ".php", - ".ts", - ".tsx", - ".jsx", - ".jpg", - ".png", - ".gif", - ".bmp", - ".jpeg", - ".jpe", - ".jif", - ".jfif", - ".jfi", - ".webp", - ".tiff", - ".tif", - ".ico", - ".svg", - ".webp", - ".mp4", - ".webm", - ".mpg", - ".mp2", - ".mpeg", - ".mpe", - ".mpv", - ".ocg", - ".m4p", - ".m4v", - ".avi", - ".wmv", - ".mov", - ".qt", - ".flv", - ".swf", - ".md" -] -``` +* Markdown files +* Image files +* Text files +* Video files +* Pdfs +* Almost all programming language with syntax highlighting
diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/setting.md b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/setting.md index 46b74be6..2186e202 100644 --- a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/setting.md +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/setting.md @@ -12,29 +12,63 @@ How to exit from Settings? -You can exit from Settings on Xplorer by clicking the Arrow Up button on the upside left of Xplorer. +You can exit from Settings on Xplorer by clicking on the upside left of Xplorer. ![Settings](/img/docs/exit-settings.png) -## 應用主題 +## Appearance + +### App Theme 你可以在設定中的`外觀`頁面變更Xplorer主題。 可以套用的預設主題有`light`、`light+`、`dark`和`dark+`。 Besides, there is a `System Default` theme that will automatically read your system preference. :::info Xplorer will support a custom app theme soon, stay tuned! ::: -### Acrylic Effect +### Font Family + +You can change Xplorer's font family on the `Appearance` tab of the Settings to one of installed font families installed on your system. + +### Font Size + +You can change Xplorer's font size on the `Appearance` tab of the Settings. Please note that an ideal font size is between 10px to 30px. + +### Window Transparency + +Make Xplorer window transparent on the `Appearance` tab of the Settings by combining following options. Please note that an ideal transparency is between 70% to 100%. You can disable transparency by disable all of the transparency options. + +#### Transparent Sidebar -The Acrylic Effect is the effect that gives the transparency effect on the sidebar. Only works on Windows 10 and higher. +Make the sidebar transparent ![Transparent Sidebar](/img/docs/transparent-sidebar.png) -## File Preview +#### Transparent Topbar -The file preview here means the preview that replaces the default icon of a file. +Make the topbar transparent ![Transparent Topbar](/img/docs/transparent-topbar.png) -### Play video file as a preview +#### Transparent Workspace + +make the workspace transparent ![Transparent Workspace](/img/docs/transparent-workspace.png) + +### Frame Style + +You can choose the frame style on the `Appearance` tab of the Settings. The available options are `Default` and `System Default`. `Default` will use Xplorer's default style which is the same across platforms. `System Default` will use the system default frame style which is difference according to your platform. + +### File Preview + +File Preview here might means the file thumbnail. + +#### Automatically play video file as thumbnail This will automatically play the video file as a preview. :::caution THIS MIGHT CONSUME HIGH AMOUNT OF RAM This might consume a high amount of RAM because it's built on the HTML video player. You can just enable this setting and ignore this caution if you got a good-spec computer. ::: -### Extract `EXE` file icon and make it a preview +#### Preview image on hover + +This fill automatically show the image when you hovering it for 500ms. + +![Preview on hover](/img/docs/preview-on-hover.png) + +Some people might found it annoying and you can disable it by disabling this setting. + +#### Extract exe file icon and make it as the thumbnail This will parse and cache the icon from a `exe` file and make it a preview. Only on Windows. @@ -48,22 +82,43 @@ The way to fix it is to disable the setting. ::: -## Default file layout +:::info Open issue The current approach is by calling the powershell program which might pops up cmd windows. + +Any contribution to call it directly from Xplorer is welcome. ::: + +#### Show Image as Thumbnail + +This will show the image as a thumbnail of a file. Please note that this is not recommended for large directory as it reads the image to memory. + +#### Default file layout Default file layout of a directory. Just give it a try :) -## App Language +## Preference + +### App Language Localize Xplorer. Help us translate Xplorer [here](https://github.com/kimlimjustin/xplorer/discussions/30). -## Hide Hidden Files +### Hide Hidden Files Hide hidden files on Xplorer, you can find this setting on the `Preference` tab on Xplorer or by its shortcut, `Ctrl + H`. -## Hide System Files +### Hide System Files Hide Windows' system files on Xplorer. :::tip Learn what is system file [here](https://en.wikipedia.org/wiki/System_file). Just turn it off if you don't understand what it is. ::: -## List and sort directories alongside files +### List and sort directories alongside files If disabled, Xplorer will prioritize directories above files. + +### Detect Drive Change + +Turning this on will detect drive change and update the sidebar and drives section. Please note that this will take high ammount of RAM as this is not stabilized yet. + +### On startup + +Option to do on starting Xplorer. Available options are: + +- New Tab +- Continue previous session diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/shortcut.md b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/shortcut.md index 5f012191..9ade2e8c 100644 --- a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/shortcut.md +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/shortcut.md @@ -1,35 +1,38 @@ # 快速鍵 -| 按鍵組合 | 功能 | -| ----------------- | -------------- | -| `Ctrl + A` | 全選 | -| `Ctrl + C` | 複製 | -| `Ctrl + E` | 關閉分頁 | -| `Ctrl + H` | 隱藏/顯示隱藏的檔案、資料夾 | -| `Ctrl + O` | 預覽檔案 | -| `Ctrl + P` | 檔案/資料夾屬性 | -| `Ctrl + R` | 重新載入 | -| `Ctrl + T` | 新分頁 | -| `Ctrl + V` | 貼上 | -| `Ctrl + X` | 剪下 | -| `Ctrl + W` | 離開Xplorer | -| `Alt + ←` | 上一頁 | -| `Alt + →` | 下一頁 | -| `Alt + ↑` | 視窗最大化 | -| `Alt + ↓` | 視窗最小化 | -| `Alt + T` | 在終端機開啟 | -| `Alt + P` | 釘選至側邊攔 | -| `Alt + Shift + C` | 複製路徑 | -| `F2` | 重新命名 | -| `F5` | 重新整理 | -| `F10` | 最小化視窗 | -| `F11` | 最大化視窗 | -| `Shift + N` | 新增資料夾 | -| `Shift + Del` | 永久刪除 | -| `Shift + Enter` | 以Code開啟 | -| `Enter` | 開啟 | -| `Del` | 刪除檔案 | +| 按鍵組合 | 功能 | +| ------------------- | ---------------------- | +| `Ctrl + A` | 全選 | +| `Ctrl + C` | 複製 | +| `Ctrl + H` | Toggle Hidden Files | +| `Ctrl + N` | New window shortcut | +| `Ctrl + O` | Open file in preview | +| `Ctrl + P` | 檔案/資料夾屬性 | +| `Ctrl + R` | 重新載入 | +| `Ctrl + T` | 新分頁 | +| `Ctrl + V` | 貼上 | +| `Ctrl + X` | 剪下 | +| `Ctrl + W` | Exit Tab | +| `Ctrl + Y` | Redo | +| `Ctrl + Z` | Undo | +| `Ctrl + Shift + Z` | Redo | +| `Alt + Left Arrow` | Go Back | +| `Alt + Right Arrow` | Go Forward | +| `Alt + Up Arrow` | Go to parent directory | +| `Alt + N` | New File | +| `Alt + T` | Open in terminal | +| `Alt + P` | Pin to sidebar | +| `Alt + Shift + C` | Copy location path | +| `F2` | Rename | +| `F5` | Refresh | +| `F10` | Minimize | +| `F11` | Maximize | +| `Shift + N` | New Folders | +| `Shift + Del` | Permanent Delete | +| `Shift + Enter` | Open in vscode | +| `Enter` | Open | +| `Del` | Delete file | -:::note `重新載入` 和 `重新整理`不同的地方在於: `重新載入` 刷新內部HTML,而`重新整理` 則會刷新整個Electron進程 +:::note Difference between `reload` and `refresh` `Reload` refreshes the internal process while `Refresh` refreshes the whole process. ::: diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/xplorer as default.md b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/xplorer as default.md index f575bfa4..e69d60f6 100644 --- a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/xplorer as default.md +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/guides/xplorer as default.md @@ -12,7 +12,7 @@ 4. Navigate to `Computer\HKEY_CURRENT_USER\Software\Classes\Directory` 5. Create a key named `shell` if not existed by right and set the default key-value to `openinxplorer` 6. Create a key named `openinxplorer` under `shell` -7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Users\User\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"` +7. Create a key named `command` under `openinxplorer` and set the default key-value to `"C:\Program Files\Xplorer\Xplorer.exe" "%V"`. (You may have to change `C:\Program Files\Xplorer\` to the location you installed Xplorer) ![Registry Structure](/img/docs/registry.png) diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/intro.md b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/intro.md index 0a6664b7..6ca0ff98 100644 --- a/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/intro.md +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-docs/current/intro.md @@ -8,14 +8,18 @@ sidebar_position: 1 Welcome to Xplorer, A Free and Open Source (FOSS) File Explorer. -Xplorer is a file explorer built from the ground up to be fully customizable and without customization, it also looks modern! It is cross-platform, built using Electron Technology that allowed our File Explorer to be run not only in Windows but also Linux and MacOS alike. It also allowed file preview directly inside it, not only pictures or documents but also videos! +Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern! -## 特色 +Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview. -So to summarize, Xplorer's features contain: +To summarize, Xplorer's features contain: -- 看起來現代 +- It looks modern - 簡單易用 - 跨平台 -- 檔案預覽,包括影片! -- 最重要的,它是免費且開源的! Which mean you can change components inside if you see fit and you also don't need to make your wallet go dry or break the bank. +- [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos! +- Customizable +- Supports multiple tab +- Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit + +Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/). diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-pages/index.jsx b/docs/i18n/zh-TW/docusaurus-plugin-content-pages/index.jsx index a3df6202..38990cae 100644 --- a/docs/i18n/zh-TW/docusaurus-plugin-content-pages/index.jsx +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-pages/index.jsx @@ -5,102 +5,69 @@ import Slideshow from './slideshow'; import Link from '@docusaurus/Link'; export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - -
-
-
-

File Explorer.

-

Redefined.

-

- Free and Open Source Software. Runs everywhere. -

-
- - Download now - - - Xplorer the docs -{'>'} - -
-
-
- -
-
-
-

- Cross-platform File Explorer.{' '} - Powered by the web. -

- - Built using the{' '} - - Electron - {' '} - , based on{' '} - - Chromium - - , and written using{' '} - - TypeScript - {' '} - , Xplorer promises you an unprecedented experience. - -
-
- Xplorer designed out of the box -

Designed out of the box

-

- Say goodbye to the old design by traditional app - and say hello to this simple yet powerful - design. -

-
-
- Support tabs -

Supports Multiple Tabs

-

- Xplorer helps you organize you files easier by - supporting multiple tabs . -

-
-
- -

File Preview

-

- Xplorer supports files preview, even videos! - Learn more{' '} - - here - - . -

-
-
-
-
-
- ); + const { siteConfig } = useDocusaurusContext(); + return ( + +
+
+
+

File Explorer.

+

Redefined.

+

Free and Open Source Software. Runs everywhere.

+
+ + Download now + + + Xplorer the docs -{'>'} + +
+
+
+ +
+
+
+

+ Cross-platform File Explorer. Powered by the web. +

+ + Built using the{' '} + + Tauri Framework + {' '} + , and written using{' '} + + TypeScript + {' '} + for the frontend and{' '} + + Rust + {' '} + for the backend, Xplorer promises you an unprecedented experience. + +
+
+ Xplorer designed out of the box +

Designed out of the box

+

Say goodbye to the old design by traditional app and say hello to this simple yet powerful design.

+
+
+ Support tabs +

Supports Multiple Tabs

+

Xplorer helps you organize you files easier by supporting multiple tabs .

+
+
+ +

File Preview

+

+ Xplorer supports files preview, from images, code preview, pdfs, to videos. Learn more{' '} + here. +

+
+
+
+
+
+ ); } diff --git a/docs/i18n/zh-TW/docusaurus-plugin-content-pages/slideshow.jsx b/docs/i18n/zh-TW/docusaurus-plugin-content-pages/slideshow.jsx index d19300bf..f3957684 100644 --- a/docs/i18n/zh-TW/docusaurus-plugin-content-pages/slideshow.jsx +++ b/docs/i18n/zh-TW/docusaurus-plugin-content-pages/slideshow.jsx @@ -1,53 +1,47 @@ import React, { useEffect, useState } from 'react'; const slides = [ - { - name: 'Windows', - src: '/img/Xplorer%20win.png', - alt: 'Xplorer on Windows', - }, - { - name: 'Garuda Linux', - src: '/img/Xplorer%20linux.png', - alt: 'Xplorer on Linux', - }, - { - name: 'macOS Catalina', - src: '/img/Xplorer%20mac.png', - alt: 'Xplorer on macOS', - }, + { + name: 'Windows', + src: '/img/Xplorer_dark.png', + alt: 'Xplorer on Windows', + }, + { + name: 'Garuda Linux', + src: '/img/Xplorer%20linux.png', + alt: 'Xplorer on Linux', + }, + { + name: 'macOS Catalina', + src: '/img/Xplorer%20mac.png', + alt: 'Xplorer on macOS', + }, ]; export default function Slideshow() { - const [index, setIndex] = useState(0); - useEffect(() => { - const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); - return () => clearInterval(handle); - }, []); - return ( - <> -
- {slides.map((e, i) => ( -
-
- {i + 1} / {slides.length} -
- {e.alt} -
{e.name}
-
- ))} -
-
- {[0, 1, 2].map((e) => ( - - ))} -
- - ); + const [index, setIndex] = useState(0); + useEffect(() => { + const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); + return () => clearInterval(handle); + }, []); + return ( + <> +
+ {slides.map((e, i) => ( +
+
+ {i + 1} / {slides.length} +
+ {e.alt} +
{e.name}
+
+ ))} +
+
+ {[0, 1, 2].map((e) => ( + + ))} +
+ + ); } diff --git a/docs/package.json b/docs/package.json index bc58e60a..bce03507 100644 --- a/docs/package.json +++ b/docs/package.json @@ -18,11 +18,11 @@ }, "dependencies": { "@crowdin/cli": "3.6.5", - "@docusaurus/core": "2.0.0-beta.6", - "@docusaurus/plugin-content-docs": "2.0.0-beta.6", - "@docusaurus/plugin-pwa": "2.0.0-beta.6", - "@docusaurus/preset-classic": "2.0.0-beta.6", - "@docusaurus/theme-search-algolia": "^2.0.0-beta.6", + "@docusaurus/core": "^2.0.0-beta.9", + "@docusaurus/plugin-content-docs": "^2.0.0-beta.9", + "@docusaurus/plugin-pwa": "^2.0.0-beta.9", + "@docusaurus/preset-classic": "^2.0.0-beta.9", + "@docusaurus/theme-search-algolia": "^2.0.0-beta.9", "@mdx-js/react": "^1.6.21", "@svgr/webpack": "^5.5.0", "animate.css": "^4.1.1", diff --git a/docs/src/pages/index.jsx b/docs/src/pages/index.jsx index a3df6202..38990cae 100644 --- a/docs/src/pages/index.jsx +++ b/docs/src/pages/index.jsx @@ -5,102 +5,69 @@ import Slideshow from './slideshow'; import Link from '@docusaurus/Link'; export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - -
-
-
-

File Explorer.

-

Redefined.

-

- Free and Open Source Software. Runs everywhere. -

-
- - Download now - - - Xplorer the docs -{'>'} - -
-
-
- -
-
-
-

- Cross-platform File Explorer.{' '} - Powered by the web. -

- - Built using the{' '} - - Electron - {' '} - , based on{' '} - - Chromium - - , and written using{' '} - - TypeScript - {' '} - , Xplorer promises you an unprecedented experience. - -
-
- Xplorer designed out of the box -

Designed out of the box

-

- Say goodbye to the old design by traditional app - and say hello to this simple yet powerful - design. -

-
-
- Support tabs -

Supports Multiple Tabs

-

- Xplorer helps you organize you files easier by - supporting multiple tabs . -

-
-
- -

File Preview

-

- Xplorer supports files preview, even videos! - Learn more{' '} - - here - - . -

-
-
-
-
-
- ); + const { siteConfig } = useDocusaurusContext(); + return ( + +
+
+
+

File Explorer.

+

Redefined.

+

Free and Open Source Software. Runs everywhere.

+
+ + Download now + + + Xplorer the docs -{'>'} + +
+
+
+ +
+
+
+

+ Cross-platform File Explorer. Powered by the web. +

+ + Built using the{' '} + + Tauri Framework + {' '} + , and written using{' '} + + TypeScript + {' '} + for the frontend and{' '} + + Rust + {' '} + for the backend, Xplorer promises you an unprecedented experience. + +
+
+ Xplorer designed out of the box +

Designed out of the box

+

Say goodbye to the old design by traditional app and say hello to this simple yet powerful design.

+
+
+ Support tabs +

Supports Multiple Tabs

+

Xplorer helps you organize you files easier by supporting multiple tabs .

+
+
+ +

File Preview

+

+ Xplorer supports files preview, from images, code preview, pdfs, to videos. Learn more{' '} + here. +

+
+
+
+
+
+ ); } diff --git a/docs/src/pages/slideshow.jsx b/docs/src/pages/slideshow.jsx index d19300bf..f3957684 100644 --- a/docs/src/pages/slideshow.jsx +++ b/docs/src/pages/slideshow.jsx @@ -1,53 +1,47 @@ import React, { useEffect, useState } from 'react'; const slides = [ - { - name: 'Windows', - src: '/img/Xplorer%20win.png', - alt: 'Xplorer on Windows', - }, - { - name: 'Garuda Linux', - src: '/img/Xplorer%20linux.png', - alt: 'Xplorer on Linux', - }, - { - name: 'macOS Catalina', - src: '/img/Xplorer%20mac.png', - alt: 'Xplorer on macOS', - }, + { + name: 'Windows', + src: '/img/Xplorer_dark.png', + alt: 'Xplorer on Windows', + }, + { + name: 'Garuda Linux', + src: '/img/Xplorer%20linux.png', + alt: 'Xplorer on Linux', + }, + { + name: 'macOS Catalina', + src: '/img/Xplorer%20mac.png', + alt: 'Xplorer on macOS', + }, ]; export default function Slideshow() { - const [index, setIndex] = useState(0); - useEffect(() => { - const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); - return () => clearInterval(handle); - }, []); - return ( - <> -
- {slides.map((e, i) => ( -
-
- {i + 1} / {slides.length} -
- {e.alt} -
{e.name}
-
- ))} -
-
- {[0, 1, 2].map((e) => ( - - ))} -
- - ); + const [index, setIndex] = useState(0); + useEffect(() => { + const handle = setInterval(() => setIndex((i) => (i + 1) % 3), 2500); + return () => clearInterval(handle); + }, []); + return ( + <> +
+ {slides.map((e, i) => ( +
+
+ {i + 1} / {slides.length} +
+ {e.alt} +
{e.name}
+
+ ))} +
+
+ {[0, 1, 2].map((e) => ( + + ))} +
+ + ); } diff --git a/docs/static/img/Xplorer linux.png b/docs/static/img/Xplorer linux.png index 049e931a..defa114a 100644 Binary files a/docs/static/img/Xplorer linux.png and b/docs/static/img/Xplorer linux.png differ diff --git a/docs/static/img/Xplorer win.png b/docs/static/img/Xplorer win.png deleted file mode 100644 index 8efd2624..00000000 Binary files a/docs/static/img/Xplorer win.png and /dev/null differ diff --git a/docs/static/img/Xplorer_dark+.png b/docs/static/img/Xplorer_dark+.png index 3ae67cf1..4fc7f096 100644 Binary files a/docs/static/img/Xplorer_dark+.png and b/docs/static/img/Xplorer_dark+.png differ diff --git a/docs/static/img/Xplorer_dark.png b/docs/static/img/Xplorer_dark.png index f6031b93..c5b27a32 100644 Binary files a/docs/static/img/Xplorer_dark.png and b/docs/static/img/Xplorer_dark.png differ diff --git a/docs/static/img/Xplorer_light+.png b/docs/static/img/Xplorer_light+.png index 10dbc688..5cbb82be 100644 Binary files a/docs/static/img/Xplorer_light+.png and b/docs/static/img/Xplorer_light+.png differ diff --git a/docs/static/img/Xplorer_light.png b/docs/static/img/Xplorer_light.png index 3dc7fffe..90bdd498 100644 Binary files a/docs/static/img/Xplorer_light.png and b/docs/static/img/Xplorer_light.png differ diff --git a/docs/static/img/docs/extract-exe-icon.png b/docs/static/img/docs/extract-exe-icon.png index 6af8eaa5..a9be5722 100644 Binary files a/docs/static/img/docs/extract-exe-icon.png and b/docs/static/img/docs/extract-exe-icon.png differ diff --git a/docs/static/img/docs/preview-on-hover.png b/docs/static/img/docs/preview-on-hover.png new file mode 100644 index 00000000..933b6d15 Binary files /dev/null and b/docs/static/img/docs/preview-on-hover.png differ diff --git a/docs/static/img/docs/preview.png b/docs/static/img/docs/preview.png index 13c68501..6c655234 100644 Binary files a/docs/static/img/docs/preview.png and b/docs/static/img/docs/preview.png differ diff --git a/docs/static/img/docs/transparent-sidebar.png b/docs/static/img/docs/transparent-sidebar.png new file mode 100644 index 00000000..15232457 Binary files /dev/null and b/docs/static/img/docs/transparent-sidebar.png differ diff --git a/docs/static/img/docs/transparent-topbar.png b/docs/static/img/docs/transparent-topbar.png new file mode 100644 index 00000000..0e2c49db Binary files /dev/null and b/docs/static/img/docs/transparent-topbar.png differ diff --git a/docs/static/img/docs/transparent-workspace.png b/docs/static/img/docs/transparent-workspace.png new file mode 100644 index 00000000..0314f1af Binary files /dev/null and b/docs/static/img/docs/transparent-workspace.png differ diff --git a/docs/static/img/favicon.ico b/docs/static/img/favicon.ico index d1ccff84..69330159 100644 Binary files a/docs/static/img/favicon.ico and b/docs/static/img/favicon.ico differ diff --git a/docs/static/img/home/preview-files.png b/docs/static/img/home/preview-files.png index f8278071..d58a5d9d 100644 Binary files a/docs/static/img/home/preview-files.png and b/docs/static/img/home/preview-files.png differ diff --git a/docs/static/img/icon.png b/docs/static/img/icon.png index b87a2472..885cdfd7 100644 Binary files a/docs/static/img/icon.png and b/docs/static/img/icon.png differ diff --git a/docs/static/img/icon.svg b/docs/static/img/icon.svg deleted file mode 100644 index c8a73232..00000000 --- a/docs/static/img/icon.svg +++ /dev/null @@ -1,195 +0,0 @@ - - - - diff --git a/docs/static/img/icons/icon-128x128.png b/docs/static/img/icons/icon-128x128.png index 76a72bd3..5083c00b 100644 Binary files a/docs/static/img/icons/icon-128x128.png and b/docs/static/img/icons/icon-128x128.png differ diff --git a/docs/static/img/icons/icon-144x144.png b/docs/static/img/icons/icon-144x144.png index b1c09fa9..7aa15d04 100644 Binary files a/docs/static/img/icons/icon-144x144.png and b/docs/static/img/icons/icon-144x144.png differ diff --git a/docs/static/img/icons/icon-152x152.png b/docs/static/img/icons/icon-152x152.png index 494bc6cc..8d158220 100644 Binary files a/docs/static/img/icons/icon-152x152.png and b/docs/static/img/icons/icon-152x152.png differ diff --git a/docs/static/img/icons/icon-192x192.png b/docs/static/img/icons/icon-192x192.png index c332bf1f..f6b485fd 100644 Binary files a/docs/static/img/icons/icon-192x192.png and b/docs/static/img/icons/icon-192x192.png differ diff --git a/docs/static/img/icons/icon-384x384.png b/docs/static/img/icons/icon-384x384.png index c7d50ab6..e8b0137e 100644 Binary files a/docs/static/img/icons/icon-384x384.png and b/docs/static/img/icons/icon-384x384.png differ diff --git a/docs/static/img/icons/icon-512x512.png b/docs/static/img/icons/icon-512x512.png index 747dd71d..8c57b084 100644 Binary files a/docs/static/img/icons/icon-512x512.png and b/docs/static/img/icons/icon-512x512.png differ diff --git a/docs/static/img/icons/icon-72x72.png b/docs/static/img/icons/icon-72x72.png index 9a3e87f4..940fcfe9 100644 Binary files a/docs/static/img/icons/icon-72x72.png and b/docs/static/img/icons/icon-72x72.png differ diff --git a/docs/static/img/icons/icon-96x96.png b/docs/static/img/icons/icon-96x96.png index 88d8ba96..df56591e 100644 Binary files a/docs/static/img/icons/icon-96x96.png and b/docs/static/img/icons/icon-96x96.png differ diff --git a/docs/yarn.lock b/docs/yarn.lock index ff229517..54712417 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -28,11 +28,23 @@ dependencies: "@algolia/cache-common" "4.10.5" +"@algolia/cache-browser-local-storage@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.11.0.tgz#1c168add00b398a860db6c86039e33b2843a9425" + integrity sha512-4sr9vHIG1fVA9dONagdzhsI/6M5mjs/qOe2xUP0yBmwsTsuwiZq3+Xu6D3dsxsuFetcJgC6ydQoCW8b7fDJHYQ== + dependencies: + "@algolia/cache-common" "4.11.0" + "@algolia/cache-common@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.10.5.tgz#9510419e9dfb6d8814582c6b20615196f213a9d6" integrity sha512-1mClwdmTHll+OnHkG+yeRoFM17kSxDs4qXkjf6rNZhoZGXDvfYLy3YcZ1FX4Kyz0DJv8aroq5RYGBDsWkHj6Tw== +"@algolia/cache-common@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.11.0.tgz#066fe6d58b18e4b028dbef9bb8de07c5e22a3594" + integrity sha512-lODcJRuPXqf+6mp0h6bOxPMlbNoyn3VfjBVcQh70EDP0/xExZbkpecgHyyZK4kWg+evu+mmgvTK3GVHnet/xKw== + "@algolia/cache-in-memory@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.10.5.tgz#de9331cb86734bf7f7624063cdaa639e43509be1" @@ -40,6 +52,13 @@ dependencies: "@algolia/cache-common" "4.10.5" +"@algolia/cache-in-memory@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.11.0.tgz#763c8cb655e6fd2261588e04214fca0959ac07c1" + integrity sha512-aBz+stMSTBOBaBEQ43zJXz2DnwS7fL6dR0e2myehAgtfAWlWwLDHruc/98VOy1ZAcBk1blE2LCU02bT5HekGxQ== + dependencies: + "@algolia/cache-common" "4.11.0" + "@algolia/client-account@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.10.5.tgz#82f7c330fc5f0625b5b559afe9c6b1aa6722b6cf" @@ -49,6 +68,15 @@ "@algolia/client-search" "4.10.5" "@algolia/transporter" "4.10.5" +"@algolia/client-account@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.11.0.tgz#67fadd3b0802b013ebaaa4b47bb7babae892374e" + integrity sha512-jwmFBoUSzoMwMqgD3PmzFJV/d19p1RJXB6C1ADz4ju4mU7rkaQLtqyZroQpheLoU5s5Tilmn/T8/0U2XLoJCRQ== + dependencies: + "@algolia/client-common" "4.11.0" + "@algolia/client-search" "4.11.0" + "@algolia/transporter" "4.11.0" + "@algolia/client-analytics@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.10.5.tgz#269e47c9de7e53e9e05e4a2d3c380607c3d2631f" @@ -59,6 +87,16 @@ "@algolia/requester-common" "4.10.5" "@algolia/transporter" "4.10.5" +"@algolia/client-analytics@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.11.0.tgz#cbdc8128205e2da749cafc79e54708d14c413974" + integrity sha512-v5U9585aeEdYml7JqggHAj3E5CQ+jPwGVztPVhakBk8H/cmLyPS2g8wvmIbaEZCHmWn4TqFj3EBHVYxAl36fSA== + dependencies: + "@algolia/client-common" "4.11.0" + "@algolia/client-search" "4.11.0" + "@algolia/requester-common" "4.11.0" + "@algolia/transporter" "4.11.0" + "@algolia/client-common@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.10.5.tgz#a7d0833796a9a2da68be16be76b6dc3962bf2f18" @@ -67,6 +105,14 @@ "@algolia/requester-common" "4.10.5" "@algolia/transporter" "4.10.5" +"@algolia/client-common@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.11.0.tgz#9a2d1f6f8eaad25ba5d6d4ce307ba5bd84e6f999" + integrity sha512-Qy+F+TZq12kc7tgfC+FM3RvYH/Ati7sUiUv/LkvlxFwNwNPwWGoZO81AzVSareXT/ksDDrabD4mHbdTbBPTRmQ== + dependencies: + "@algolia/requester-common" "4.11.0" + "@algolia/transporter" "4.11.0" + "@algolia/client-personalization@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.10.5.tgz#78a8fb8161bdbeaa66b400b3283640ef689e155b" @@ -76,6 +122,15 @@ "@algolia/requester-common" "4.10.5" "@algolia/transporter" "4.10.5" +"@algolia/client-personalization@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.11.0.tgz#d3bf0e760f85df876b4baf5b81996f0aa3a59940" + integrity sha512-mI+X5IKiijHAzf9fy8VSl/GTT67dzFDnJ0QAM8D9cMPevnfX4U72HRln3Mjd0xEaYUOGve8TK/fMg7d3Z5yG6g== + dependencies: + "@algolia/client-common" "4.11.0" + "@algolia/requester-common" "4.11.0" + "@algolia/transporter" "4.11.0" + "@algolia/client-search@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.10.5.tgz#47907232a3e4ecf2aa4459b8de17242afd88147c" @@ -85,11 +140,25 @@ "@algolia/requester-common" "4.10.5" "@algolia/transporter" "4.10.5" +"@algolia/client-search@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.11.0.tgz#c1105d715a2a04ba27231eca86f5d6620f68f4ae" + integrity sha512-iovPLc5YgiXBdw2qMhU65sINgo9umWbHFzInxoNErWnYoTQWfXsW6P54/NlKx5uscoLVjSf+5RUWwFu5BX+lpw== + dependencies: + "@algolia/client-common" "4.11.0" + "@algolia/requester-common" "4.11.0" + "@algolia/transporter" "4.11.0" + "@algolia/logger-common@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.10.5.tgz#cf807107e755ad4a72c5afc787e968ff1196f1cc" integrity sha512-gRJo9zt1UYP4k3woEmZm4iuEBIQd/FrArIsjzsL/b+ihNoOqIxZKTSuGFU4UUZOEhvmxDReiA4gzvQXG+TMTmA== +"@algolia/logger-common@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.11.0.tgz#bac1c2d59d29dee378b57412c8edd435b97de663" + integrity sha512-pRMJFeOY8hoWKIxWuGHIrqnEKN/kqKh7UilDffG/+PeEGxBuku+Wq5CfdTFG0C9ewUvn8mAJn5BhYA5k8y0Jqg== + "@algolia/logger-console@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.10.5.tgz#f961a7a7c6718c3f3842fb9b522d47b03b9df8ad" @@ -97,6 +166,13 @@ dependencies: "@algolia/logger-common" "4.10.5" +"@algolia/logger-console@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.11.0.tgz#ced19e3abb22eb782ed5268d51efb5aa9ef109ef" + integrity sha512-wXztMk0a3VbNmYP8Kpc+F7ekuvaqZmozM2eTLok0XIshpAeZ/NJDHDffXK2Pw+NF0wmHqurptLYwKoikjBYvhQ== + dependencies: + "@algolia/logger-common" "4.11.0" + "@algolia/requester-browser-xhr@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.10.5.tgz#7063e3bc6d9c72bc535e1794352eddf47459dfe6" @@ -104,11 +180,23 @@ dependencies: "@algolia/requester-common" "4.10.5" +"@algolia/requester-browser-xhr@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.11.0.tgz#f9e1ad56f185432aa8dde8cad53ae271fd5d6181" + integrity sha512-Fp3SfDihAAFR8bllg8P5ouWi3+qpEVN5e7hrtVIYldKBOuI/qFv80Zv/3/AMKNJQRYglS4zWyPuqrXm58nz6KA== + dependencies: + "@algolia/requester-common" "4.11.0" + "@algolia/requester-common@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.10.5.tgz#52abfbf10b743d26afd3ce20f62771bc393ff4f0" integrity sha512-UkVa1Oyuj6NPiAEt5ZvrbVopEv1m/mKqjs40KLB+dvfZnNcj+9Fry4Oxnt15HMy/HLORXsx4UwcthAvBuOXE9Q== +"@algolia/requester-common@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.11.0.tgz#d16de98d3ff72434bac39e4d915eab08035946a9" + integrity sha512-+cZGe/9fuYgGuxjaBC+xTGBkK7OIYdfapxhfvEf03dviLMPmhmVYFJtJlzAjQ2YmGDJpHrGgAYj3i/fbs8yhiA== + "@algolia/requester-node-http@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.10.5.tgz#db7e9ece1fda1b71a28c8e623666aaa096320b5c" @@ -116,6 +204,13 @@ dependencies: "@algolia/requester-common" "4.10.5" +"@algolia/requester-node-http@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.11.0.tgz#beb2b6b68d5f4ce15aec80ede623f0ac96991368" + integrity sha512-qJIk9SHRFkKDi6dMT9hba8X1J1z92T5AZIgl+tsApjTGIRQXJLTIm+0q4yOefokfu4CoxYwRZ9QAq+ouGwfeOg== + dependencies: + "@algolia/requester-common" "4.11.0" + "@algolia/transporter@4.10.5": version "4.10.5" resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.10.5.tgz#9354989f12af3e2ce7d3109a94f519d467a960e0" @@ -125,6 +220,15 @@ "@algolia/logger-common" "4.10.5" "@algolia/requester-common" "4.10.5" +"@algolia/transporter@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.11.0.tgz#a8de3c173093ceceb02b26b577395ce3b3d4b96f" + integrity sha512-k4dyxiaEfYpw4UqybK9q7lrFzehygo6KV3OCYJMMdX0IMWV0m4DXdU27c1zYRYtthaFYaBzGF4Kjcl8p8vxCKw== + dependencies: + "@algolia/cache-common" "4.11.0" + "@algolia/logger-common" "4.11.0" + "@algolia/requester-common" "4.11.0" + "@apideck/better-ajv-errors@^0.2.4": version "0.2.5" resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.2.5.tgz#b9c0092b7f7f23c356a0a31600334f7b8958458b" @@ -134,25 +238,30 @@ jsonpointer "^4.1.0" leven "^3.1.0" -"@babel/code-frame@7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.5.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== dependencies: "@babel/highlight" "^7.14.5" +"@babel/code-frame@^7.16.0", "@babel/code-frame@^7.8.3": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" + integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== + dependencies: + "@babel/highlight" "^7.16.0" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== +"@babel/compat-data@^7.16.0", "@babel/compat-data@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" + integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== + "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" @@ -205,6 +314,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" + integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== + dependencies: + "@babel/types" "^7.16.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz#3d0e43b00c5e49fdb6c57e421601a7a658d5f835" @@ -212,6 +330,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-annotate-as-pure@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" + integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz#21ad815f609b84ee0e3058676c33cf6d1670525f" @@ -220,6 +345,14 @@ "@babel/helper-explode-assignable-expression" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz#f1a686b92da794020c26582eb852e9accd0d7882" + integrity sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9" @@ -230,6 +363,16 @@ browserslist "^4.16.6" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" + integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== + dependencies: + "@babel/compat-data" "^7.16.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.17.5" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz#7f977c17bd12a5fba363cb19bea090394bf37d2e" @@ -242,6 +385,18 @@ "@babel/helper-replace-supers" "^7.15.4" "@babel/helper-split-export-declaration" "^7.15.4" +"@babel/helper-create-class-features-plugin@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz#090d4d166b342a03a9fec37ef4fd5aeb9c7c6a4b" + integrity sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-create-regexp-features-plugin@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" @@ -250,6 +405,14 @@ "@babel/helper-annotate-as-pure" "^7.14.5" regexpu-core "^4.7.1" +"@babel/helper-create-regexp-features-plugin@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz#06b2348ce37fccc4f5e18dcd8d75053f2a7c44ff" + integrity sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + regexpu-core "^4.7.1" + "@babel/helper-define-polyfill-provider@^0.2.2": version "0.2.3" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" @@ -264,6 +427,20 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-define-polyfill-provider@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" + integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + "@babel/helper-explode-assignable-expression@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz#f9aec9d219f271eaf92b9f561598ca6b2682600c" @@ -271,6 +448,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-explode-assignable-expression@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" + integrity sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-function-name@^7.14.5", "@babel/helper-function-name@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc" @@ -280,6 +464,15 @@ "@babel/template" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-function-name@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" + integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== + dependencies: + "@babel/helper-get-function-arity" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-get-function-arity@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b" @@ -287,6 +480,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-get-function-arity@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" + integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-hoist-variables@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df" @@ -294,6 +494,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-hoist-variables@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" + integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-member-expression-to-functions@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef" @@ -301,6 +508,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-member-expression-to-functions@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz#29287040efd197c77636ef75188e81da8bccd5a4" + integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f" @@ -308,6 +522,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-module-imports@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" + integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz#962cc629a7f7f9a082dd62d0307fa75fe8788d7c" @@ -322,6 +543,20 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-module-transforms@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz#1c82a8dd4cb34577502ebd2909699b194c3e9bb5" + integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== + dependencies: + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-simple-access" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-validator-identifier" "^7.15.7" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-optimise-call-expression@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz#f310a5121a3b9cc52d9ab19122bd729822dee171" @@ -329,6 +564,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-optimise-call-expression@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" + integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-plugin-utils@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" @@ -348,6 +590,15 @@ "@babel/helper-wrap-function" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-remap-async-to-generator@^7.16.0", "@babel/helper-remap-async-to-generator@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" + integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-wrap-function" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a" @@ -358,6 +609,16 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-replace-supers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" + integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-simple-access@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b" @@ -365,6 +626,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-simple-access@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" + integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-skip-transparent-expression-wrappers@^7.14.5", "@babel/helper-skip-transparent-expression-wrappers@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz#707dbdba1f4ad0fa34f9114fc8197aec7d5da2eb" @@ -372,6 +640,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-split-export-declaration@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257" @@ -379,11 +654,23 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-split-export-declaration@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" + integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": version "7.14.9" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== +"@babel/helper-validator-identifier@^7.15.7": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== + "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" @@ -399,6 +686,16 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-wrap-function@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz#b3cf318afce774dfe75b86767cd6d68f3482e57c" + integrity sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g== + dependencies: + "@babel/helper-function-name" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helpers@^7.12.5", "@babel/helpers@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43" @@ -408,7 +705,7 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": +"@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== @@ -417,11 +714,32 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" + integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.12.16", "@babel/parser@^7.12.7", "@babel/parser@^7.15.4", "@babel/parser@^7.15.5": version "7.15.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.5.tgz#d33a58ca69facc05b26adfe4abebfed56c1c2dac" integrity sha512-2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg== +"@babel/parser@^7.16.0", "@babel/parser@^7.16.3": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": + version "7.16.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" + integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz#dbdeabb1e80f622d9f0b583efb2999605e0a567e" @@ -431,6 +749,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.15.4" "@babel/plugin-proposal-optional-chaining" "^7.14.5" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz#358972eaab006f5eb0826183b0c93cbcaf13e1e2" + integrity sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-async-generator-functions@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz#f82aabe96c135d2ceaa917feb9f5fca31635277e" @@ -440,6 +767,15 @@ "@babel/helper-remap-async-to-generator" "^7.15.4" "@babel/plugin-syntax-async-generators" "^7.8.4" +"@babel/plugin-proposal-async-generator-functions@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz#e606eb6015fec6fa5978c940f315eae4e300b081" + integrity sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.16.4" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-proposal-class-properties@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" @@ -448,6 +784,14 @@ "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-proposal-class-properties@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz#c029618267ddebc7280fa286e0f8ca2a278a2d1a" + integrity sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-proposal-class-static-block@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz#3e7ca6128453c089e8b477a99f970c63fc1cb8d7" @@ -457,6 +801,15 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" +"@babel/plugin-proposal-class-static-block@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz#5296942c564d8144c83eea347d0aa8a0b89170e7" + integrity sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" @@ -465,6 +818,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" +"@babel/plugin-proposal-dynamic-import@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz#783eca61d50526202f9b296095453977e88659f1" + integrity sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-export-namespace-from@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" @@ -473,6 +834,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" +"@babel/plugin-proposal-export-namespace-from@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz#9c01dee40b9d6b847b656aaf4a3976a71740f222" + integrity sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-proposal-json-strings@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" @@ -481,6 +850,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-json-strings" "^7.8.3" +"@babel/plugin-proposal-json-strings@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz#cae35a95ed1d2a7fa29c4dc41540b84a72e9ab25" + integrity sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-proposal-logical-assignment-operators@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" @@ -489,6 +866,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" +"@babel/plugin-proposal-logical-assignment-operators@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz#a711b8ceb3ffddd3ef88d3a49e86dbd3cc7db3fd" + integrity sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.13", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" @@ -497,6 +882,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz#44e1cce08fe2427482cf446a91bb451528ed0596" + integrity sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" @@ -505,6 +898,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" +"@babel/plugin-proposal-numeric-separator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz#5d418e4fbbf8b9b7d03125d3a52730433a373734" + integrity sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" @@ -525,6 +926,17 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.14.5" +"@babel/plugin-proposal-object-rest-spread@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz#5fb32f6d924d6e6712810362a60e12a2609872e6" + integrity sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg== + dependencies: + "@babel/compat-data" "^7.16.0" + "@babel/helper-compilation-targets" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.16.0" + "@babel/plugin-proposal-optional-catch-binding@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" @@ -533,6 +945,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" +"@babel/plugin-proposal-optional-catch-binding@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz#5910085811ab4c28b00d6ebffa4ab0274d1e5f16" + integrity sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining@^7.12.16", "@babel/plugin-proposal-optional-chaining@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" @@ -542,6 +962,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" +"@babel/plugin-proposal-optional-chaining@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz#56dbc3970825683608e9efb55ea82c2a2d6c8dc0" + integrity sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-private-methods@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" @@ -550,6 +979,14 @@ "@babel/helper-create-class-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-proposal-private-methods@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz#b4dafb9c717e4301c5776b30d080d6383c89aff6" + integrity sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz#55c5e3b4d0261fd44fe637e3f624cfb0f484e3e5" @@ -560,6 +997,16 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" +"@babel/plugin-proposal-private-property-in-object@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz#69e935b2c5c79d2488112d886f0c4e2790fee76f" + integrity sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" @@ -568,6 +1015,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-proposal-unicode-property-regex@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz#890482dfc5ea378e42e19a71e709728cabf18612" + integrity sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -694,6 +1149,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-arrow-functions@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz#951706f8b449c834ed07bd474c0924c944b95a8e" + integrity sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-async-to-generator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" @@ -703,6 +1165,15 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-remap-async-to-generator" "^7.14.5" +"@babel/plugin-transform-async-to-generator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz#df12637f9630ddfa0ef9d7a11bc414d629d38604" + integrity sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw== + dependencies: + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.16.0" + "@babel/plugin-transform-block-scoped-functions@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" @@ -710,6 +1181,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-block-scoped-functions@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz#c618763233ad02847805abcac4c345ce9de7145d" + integrity sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-block-scoping@^7.15.3": version "7.15.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" @@ -717,6 +1195,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-block-scoping@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz#bcf433fb482fe8c3d3b4e8a66b1c4a8e77d37c16" + integrity sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-classes@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz#50aee17aaf7f332ae44e3bce4c2e10534d5d3bf1" @@ -730,6 +1215,19 @@ "@babel/helper-split-export-declaration" "^7.15.4" globals "^11.1.0" +"@babel/plugin-transform-classes@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz#54cf5ff0b2242c6573d753cd4bfc7077a8b282f5" + integrity sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + globals "^11.1.0" + "@babel/plugin-transform-computed-properties@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" @@ -737,6 +1235,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-computed-properties@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz#e0c385507d21e1b0b076d66bed6d5231b85110b7" + integrity sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-destructuring@^7.14.7": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" @@ -744,6 +1249,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-destructuring@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz#ad3d7e74584ad5ea4eadb1e6642146c590dee33c" + integrity sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" @@ -752,6 +1264,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-dotall-regex@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz#50bab00c1084b6162d0a58a818031cf57798e06f" + integrity sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-duplicate-keys@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" @@ -759,6 +1279,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-duplicate-keys@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz#8bc2e21813e3e89e5e5bf3b60aa5fc458575a176" + integrity sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" @@ -767,6 +1294,14 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-exponentiation-operator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz#a180cd2881e3533cef9d3901e48dad0fbeff4be4" + integrity sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-for-of@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz#25c62cce2718cfb29715f416e75d5263fb36a8c2" @@ -774,6 +1309,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-for-of@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz#f7abaced155260e2461359bbc7c7248aca5e6bd2" + integrity sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-function-name@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" @@ -782,6 +1324,14 @@ "@babel/helper-function-name" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-function-name@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz#02e3699c284c6262236599f751065c5d5f1f400e" + integrity sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg== + dependencies: + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-literals@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" @@ -789,6 +1339,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-literals@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz#79711e670ffceb31bd298229d50f3621f7980cac" + integrity sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-member-expression-literals@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" @@ -796,6 +1353,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-member-expression-literals@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz#5251b4cce01eaf8314403d21aedb269d79f5e64b" + integrity sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-modules-amd@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" @@ -805,6 +1369,15 @@ "@babel/helper-plugin-utils" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-amd@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz#09abd41e18dcf4fd479c598c1cef7bd39eb1337e" + integrity sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw== + dependencies: + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-commonjs@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz#8201101240eabb5a76c08ef61b2954f767b6b4c1" @@ -815,6 +1388,16 @@ "@babel/helper-simple-access" "^7.15.4" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-commonjs@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz#add58e638c8ddc4875bd9a9ecb5c594613f6c922" + integrity sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ== + dependencies: + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.16.0" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-systemjs@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz#b42890c7349a78c827719f1d2d0cd38c7d268132" @@ -826,6 +1409,17 @@ "@babel/helper-validator-identifier" "^7.14.9" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-systemjs@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz#a92cf240afeb605f4ca16670453024425e421ea4" + integrity sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg== + dependencies: + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.15.7" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-umd@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" @@ -834,6 +1428,14 @@ "@babel/helper-module-transforms" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-modules-umd@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz#195f26c2ad6d6a391b70880effce18ce625e06a7" + integrity sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg== + dependencies: + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": version "7.14.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" @@ -841,6 +1443,13 @@ dependencies: "@babel/helper-create-regexp-features-plugin" "^7.14.5" +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz#d3db61cc5d5b97986559967cd5ea83e5c32096ca" + integrity sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.0" + "@babel/plugin-transform-new-target@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" @@ -848,6 +1457,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-new-target@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz#af823ab576f752215a49937779a41ca65825ab35" + integrity sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-object-super@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" @@ -856,6 +1472,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" +"@babel/plugin-transform-object-super@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz#fb20d5806dc6491a06296ac14ea8e8d6fedda72b" + integrity sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.14.5", "@babel/plugin-transform-parameters@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz#5f2285cc3160bf48c8502432716b48504d29ed62" @@ -863,6 +1487,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz#fa9e4c874ee5223f891ee6fa8d737f4766d31d15" + integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-property-literals@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" @@ -870,6 +1501,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-property-literals@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz#a95c552189a96a00059f6776dc4e00e3690c78d1" + integrity sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-react-constant-elements@^7.12.1": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.14.5.tgz#41790d856f7c5cec82d2bcf5d0e5064d682522ed" @@ -917,6 +1555,13 @@ dependencies: regenerator-transform "^0.14.2" +"@babel/plugin-transform-regenerator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz#eaee422c84b0232d03aea7db99c97deeaf6125a4" + integrity sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg== + dependencies: + regenerator-transform "^0.14.2" + "@babel/plugin-transform-reserved-words@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" @@ -924,16 +1569,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-runtime@^7.12.15": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" - integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw== +"@babel/plugin-transform-reserved-words@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz#fff4b9dcb19e12619394bda172d14f2d04c0379c" + integrity sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg== dependencies: - "@babel/helper-module-imports" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" + +"@babel/plugin-transform-runtime@^7.15.0": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz#f9ba3c7034d429c581e1bd41b4952f3db3c2c7e8" + integrity sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A== + dependencies: + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-regenerator "^0.3.0" semver "^6.3.0" "@babel/plugin-transform-shorthand-properties@^7.14.5": @@ -943,6 +1595,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-shorthand-properties@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz#090372e3141f7cc324ed70b3daf5379df2fa384d" + integrity sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-spread@^7.14.6": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" @@ -951,6 +1610,14 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" +"@babel/plugin-transform-spread@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz#d21ca099bbd53ab307a8621e019a7bd0f40cdcfb" + integrity sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-transform-sticky-regex@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" @@ -958,6 +1625,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-sticky-regex@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz#c35ea31a02d86be485f6aa510184b677a91738fd" + integrity sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-template-literals@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" @@ -965,6 +1639,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-template-literals@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz#a8eced3a8e7b8e2d40ec4ec4548a45912630d302" + integrity sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-typeof-symbol@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" @@ -972,6 +1653,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-typeof-symbol@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz#8b19a244c6f8c9d668dca6a6f754ad6ead1128f2" + integrity sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-typescript@^7.15.0": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz#db7a062dcf8be5fc096bc0eeb40a13fbfa1fa251" @@ -988,6 +1676,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-transform-unicode-escapes@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz#1a354064b4c45663a32334f46fa0cf6100b5b1f3" + integrity sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-unicode-regex@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" @@ -996,7 +1691,15 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.12.16": +"@babel/plugin-transform-unicode-regex@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz#293b80950177c8c85aede87cef280259fb995402" + integrity sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.4.tgz#197e7f99a755c488f0af411af179cbd10de6e815" integrity sha512-4f2nLw+q6ht8gl3sHCmNhmA5W6b1ItLzbH3UrKuJxACHr2eCpk96jwjrAfCAaXaaVwTQGnyUYHY2EWXJGt7TUQ== @@ -1075,6 +1778,86 @@ core-js-compat "^3.16.0" semver "^6.3.0" +"@babel/preset-env@^7.15.6": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.4.tgz#4f6ec33b2a3fe72d6bfdcdf3859500232563a2e3" + integrity sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA== + dependencies: + "@babel/compat-data" "^7.16.4" + "@babel/helper-compilation-targets" "^7.16.3" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-async-generator-functions" "^7.16.4" + "@babel/plugin-proposal-class-properties" "^7.16.0" + "@babel/plugin-proposal-class-static-block" "^7.16.0" + "@babel/plugin-proposal-dynamic-import" "^7.16.0" + "@babel/plugin-proposal-export-namespace-from" "^7.16.0" + "@babel/plugin-proposal-json-strings" "^7.16.0" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" + "@babel/plugin-proposal-numeric-separator" "^7.16.0" + "@babel/plugin-proposal-object-rest-spread" "^7.16.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-private-methods" "^7.16.0" + "@babel/plugin-proposal-private-property-in-object" "^7.16.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.16.0" + "@babel/plugin-transform-async-to-generator" "^7.16.0" + "@babel/plugin-transform-block-scoped-functions" "^7.16.0" + "@babel/plugin-transform-block-scoping" "^7.16.0" + "@babel/plugin-transform-classes" "^7.16.0" + "@babel/plugin-transform-computed-properties" "^7.16.0" + "@babel/plugin-transform-destructuring" "^7.16.0" + "@babel/plugin-transform-dotall-regex" "^7.16.0" + "@babel/plugin-transform-duplicate-keys" "^7.16.0" + "@babel/plugin-transform-exponentiation-operator" "^7.16.0" + "@babel/plugin-transform-for-of" "^7.16.0" + "@babel/plugin-transform-function-name" "^7.16.0" + "@babel/plugin-transform-literals" "^7.16.0" + "@babel/plugin-transform-member-expression-literals" "^7.16.0" + "@babel/plugin-transform-modules-amd" "^7.16.0" + "@babel/plugin-transform-modules-commonjs" "^7.16.0" + "@babel/plugin-transform-modules-systemjs" "^7.16.0" + "@babel/plugin-transform-modules-umd" "^7.16.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.0" + "@babel/plugin-transform-new-target" "^7.16.0" + "@babel/plugin-transform-object-super" "^7.16.0" + "@babel/plugin-transform-parameters" "^7.16.3" + "@babel/plugin-transform-property-literals" "^7.16.0" + "@babel/plugin-transform-regenerator" "^7.16.0" + "@babel/plugin-transform-reserved-words" "^7.16.0" + "@babel/plugin-transform-shorthand-properties" "^7.16.0" + "@babel/plugin-transform-spread" "^7.16.0" + "@babel/plugin-transform-sticky-regex" "^7.16.0" + "@babel/plugin-transform-template-literals" "^7.16.0" + "@babel/plugin-transform-typeof-symbol" "^7.16.0" + "@babel/plugin-transform-unicode-escapes" "^7.16.0" + "@babel/plugin-transform-unicode-regex" "^7.16.0" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.0" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.19.1" + semver "^6.3.0" + "@babel/preset-modules@^0.1.4": version "0.1.4" resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" @@ -1086,6 +1869,17 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + "@babel/preset-react@^7.12.13", "@babel/preset-react@^7.12.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.14.5.tgz#0fbb769513f899c2c56f3a882fa79673c2d4ab3c" @@ -1107,21 +1901,28 @@ "@babel/helper-validator-option" "^7.14.5" "@babel/plugin-transform-typescript" "^7.15.0" -"@babel/runtime-corejs3@^7.12.13": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz#403139af262b9a6e8f9ba04a6fdcebf8de692bf1" - integrity sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg== +"@babel/runtime-corejs3@^7.15.4": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.16.3.tgz#1e25de4fa994c57c18e5fdda6cc810dac70f5590" + integrity sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ== dependencies: - core-js-pure "^3.16.0" + core-js-pure "^3.19.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.8.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.15.4": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" + integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@^7.12.7", "@babel/template@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194" @@ -1131,6 +1932,15 @@ "@babel/parser" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/template@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" + integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/traverse@^7.12.13", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" @@ -1146,6 +1956,21 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.16.0": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" + integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/parser" "^7.16.3" + "@babel/types" "^7.16.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.14.9", "@babel/types@^7.15.4", "@babel/types@^7.4.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.4.tgz#74eeb86dbd6748d2741396557b9860e57fce0a0d" @@ -1154,6 +1979,14 @@ "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" +"@babel/types@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" + integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + to-fast-properties "^2.0.0" + "@crowdin/cli@3.6.5": version "3.6.5" resolved "https://registry.yarnpkg.com/@crowdin/cli/-/cli-3.6.5.tgz#8aa0e8cc2af14ce9998b075e6f3e2eb475e1de86" @@ -1176,135 +2009,133 @@ "@docsearch/css" "3.0.0-alpha.40" algoliasearch "^4.0.0" -"@docusaurus/core@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.6.tgz#9847ae211a04f1d2b057f8e5ba650e76b9c2df83" - integrity sha512-XMeI+lJKeJBGYBNOfO/Tc+5FMf21E5p1xZjfe75cgYcfZdERZ+W7aemXquwReno8xxHb4Rnfmi9dxkbOLDjqDA== +"@docusaurus/core@2.0.0-beta.9", "@docusaurus/core@^2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.9.tgz#59b57c5e60fe83ef9e3c6aa7000d470eb0c52656" + integrity sha512-Bf9c6+yftZfAJk2h4HyaDvzBp5TLhqYtfnfWKKNi0Gdw9vRLXhi7IaiGaLWIuNAIJLTi++Ql0BAn+C0OO8EsWA== dependencies: "@babel/core" "^7.12.16" "@babel/generator" "^7.12.15" "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.12.15" - "@babel/preset-env" "^7.12.16" + "@babel/plugin-transform-runtime" "^7.15.0" + "@babel/preset-env" "^7.15.6" "@babel/preset-react" "^7.12.13" "@babel/preset-typescript" "^7.12.16" - "@babel/runtime" "^7.12.5" - "@babel/runtime-corejs3" "^7.12.13" + "@babel/runtime" "^7.15.4" + "@babel/runtime-corejs3" "^7.15.4" "@babel/traverse" "^7.12.13" - "@docusaurus/cssnano-preset" "2.0.0-beta.6" - "@docusaurus/react-loadable" "5.5.0" - "@docusaurus/types" "2.0.0-beta.6" - "@docusaurus/utils" "2.0.0-beta.6" - "@docusaurus/utils-common" "2.0.0-beta.6" - "@docusaurus/utils-validation" "2.0.0-beta.6" + "@docusaurus/cssnano-preset" "2.0.0-beta.9" + "@docusaurus/react-loadable" "5.5.2" + "@docusaurus/types" "2.0.0-beta.9" + "@docusaurus/utils" "2.0.0-beta.9" + "@docusaurus/utils-common" "2.0.0-beta.9" + "@docusaurus/utils-validation" "2.0.0-beta.9" "@slorber/static-site-generator-webpack-plugin" "^4.0.0" "@svgr/webpack" "^5.5.0" - autoprefixer "^10.2.5" + autoprefixer "^10.3.5" babel-loader "^8.2.2" babel-plugin-dynamic-import-node "2.3.0" boxen "^5.0.1" - chalk "^4.1.1" - chokidar "^3.5.1" + chalk "^4.1.2" + chokidar "^3.5.2" clean-css "^5.1.5" commander "^5.1.0" - copy-webpack-plugin "^9.0.0" - core-js "^3.9.1" + copy-webpack-plugin "^9.0.1" + core-js "^3.18.0" css-loader "^5.1.1" - css-minimizer-webpack-plugin "^3.0.1" - cssnano "^5.0.4" + css-minimizer-webpack-plugin "^3.0.2" + cssnano "^5.0.8" del "^6.0.0" detect-port "^1.3.0" escape-html "^1.0.3" - eta "^1.12.1" - express "^4.17.1" + eta "^1.12.3" file-loader "^6.2.0" fs-extra "^10.0.0" - github-slugger "^1.3.0" + github-slugger "^1.4.0" globby "^11.0.2" - html-minifier-terser "^5.1.1" + html-minifier-terser "^6.0.2" html-tags "^3.1.0" - html-webpack-plugin "^5.3.2" + html-webpack-plugin "^5.4.0" import-fresh "^3.3.0" is-root "^2.1.0" leven "^3.1.0" lodash "^4.17.20" mini-css-extract-plugin "^1.6.0" - module-alias "^2.2.2" nprogress "^0.2.0" - postcss "^8.2.15" - postcss-loader "^5.3.0" + postcss "^8.3.7" + postcss-loader "^6.1.1" prompts "^2.4.1" - react-dev-utils "^11.0.1" + react-dev-utils "12.0.0-next.47" react-error-overlay "^6.0.9" react-helmet "^6.1.0" - react-loadable "^5.5.0" + react-loadable "npm:@docusaurus/react-loadable@5.5.2" react-loadable-ssr-addon-v5-slorber "^1.0.1" react-router "^5.2.0" react-router-config "^5.1.1" react-router-dom "^5.2.0" remark-admonitions "^1.2.1" resolve-pathname "^3.0.0" - rtl-detect "^1.0.3" + rtl-detect "^1.0.4" semver "^7.3.4" serve-handler "^6.1.3" shelljs "^0.8.4" std-env "^2.2.1" strip-ansi "^6.0.0" - terser-webpack-plugin "^5.1.3" - tslib "^2.2.0" + terser-webpack-plugin "^5.2.4" + tslib "^2.3.1" update-notifier "^5.1.0" url-loader "^4.1.1" - wait-on "^5.3.0" - webpack "^5.40.0" + wait-on "^6.0.0" + webpack "^5.61.0" webpack-bundle-analyzer "^4.4.2" - webpack-dev-server "^3.11.2" + webpack-dev-server "^4.4.0" webpack-merge "^5.8.0" webpackbar "^5.0.0-3" -"@docusaurus/cssnano-preset@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.6.tgz#0c277854f0262dca7bcb3daf99866e8a49e29118" - integrity sha512-RCizp2NAbADopkX5nUz1xrAbU6hGZzziQk9RdSDGJLzMgVCN6RDotq9odS8VgzNa9x2Lx3WN527UxeEbzc2GVQ== +"@docusaurus/cssnano-preset@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.9.tgz#4ad9079c68b79744c08be6e48e51d2c12907f71f" + integrity sha512-oIdoiZ/i4LXRxmuLN2ZmvGpMqtwba+ck9TlaQDWC7wvHx+EA9mvvcewKWgc7e4dxPA00+777cQvrDctAreAqLw== dependencies: - cssnano-preset-advanced "^5.1.1" - postcss "^8.2.15" - postcss-sort-media-queries "^3.10.11" + cssnano-preset-advanced "^5.1.4" + postcss "^8.3.7" + postcss-sort-media-queries "^4.1.0" -"@docusaurus/mdx-loader@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.6.tgz#a5aeee5be0d04bb273752c893366cc6cffeb2b32" - integrity sha512-yO6N+OESR77WZ/pXz7muOJGLletYYksx7s7wrwrr0x+A8tzdSwiHZ9op0NyjjpW5AnItU/WQQfcjv37qv4K6HA== +"@docusaurus/mdx-loader@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.9.tgz#e87a1ff22fdabcb6bea59beae8b2d999dfb6eb81" + integrity sha512-qb+/Ew69kaAIiot+1lJ13ozsyCY+7/VryzopDTgr60BDCsLUvuDzjNKreBqo1xdC4JxYD/hJMV7UAHkZ8rWB8Q== dependencies: "@babel/parser" "^7.12.16" "@babel/traverse" "^7.12.13" - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/utils" "2.0.0-beta.6" + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/utils" "2.0.0-beta.9" "@mdx-js/mdx" "^1.6.21" "@mdx-js/react" "^1.6.21" - chalk "^4.1.1" + chalk "^4.1.2" escape-html "^1.0.3" file-loader "^6.2.0" fs-extra "^10.0.0" - github-slugger "^1.3.0" + github-slugger "^1.4.0" gray-matter "^4.0.3" mdast-util-to-string "^2.0.0" remark-emoji "^2.1.0" stringify-object "^3.3.0" unist-util-visit "^2.0.2" url-loader "^4.1.1" - webpack "^5.40.0" - -"@docusaurus/plugin-content-blog@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.6.tgz#54ae1c96a8e95dbc58484157c259e8aaf47a3fcb" - integrity sha512-ohfMt7+rPiFQImc4Clpvc9m/1yWUQAjpG3e/coJywlJYbDXvi1pmH0VKkDUMBSe/35Wtz9457DYgNFG81lhV7Q== - dependencies: - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/mdx-loader" "2.0.0-beta.6" - "@docusaurus/types" "2.0.0-beta.6" - "@docusaurus/utils" "2.0.0-beta.6" - "@docusaurus/utils-validation" "2.0.0-beta.6" - chalk "^4.1.1" + webpack "^5.61.0" + +"@docusaurus/plugin-content-blog@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.9.tgz#d72a32013232610552cbc45509ba2ddaea653690" + integrity sha512-KZ6UmUa/P4SSX8/xnZpwSt7krnAfRg3S/ghZ7zeIzcp12iumSZBmLNi5rIIXcsFVH0IPOnIofEoWEaEIwaNerg== + dependencies: + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/mdx-loader" "2.0.0-beta.9" + "@docusaurus/types" "2.0.0-beta.9" + "@docusaurus/utils" "2.0.0-beta.9" + "@docusaurus/utils-validation" "2.0.0-beta.9" + chalk "^4.1.2" escape-string-regexp "^4.0.0" feed "^4.2.2" fs-extra "^10.0.0" @@ -1312,22 +2143,23 @@ js-yaml "^4.0.0" loader-utils "^2.0.0" lodash "^4.17.20" - reading-time "^1.3.0" + reading-time "^1.5.0" remark-admonitions "^1.2.1" - tslib "^2.2.0" - webpack "^5.40.0" - -"@docusaurus/plugin-content-docs@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.6.tgz#38fd58e42fe39e2a0cc738df077917a6fcd4e7ee" - integrity sha512-cM5WWogWmX+qKPKv332eDWGRVVT5OjskbmFKe2QimwoaON3Cv6XY8Fo2xdYopqGIU0r0z8dVtRmoGS0ji7zB7w== - dependencies: - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/mdx-loader" "2.0.0-beta.6" - "@docusaurus/types" "2.0.0-beta.6" - "@docusaurus/utils" "2.0.0-beta.6" - "@docusaurus/utils-validation" "2.0.0-beta.6" - chalk "^4.1.1" + tslib "^2.3.1" + utility-types "^3.10.0" + webpack "^5.61.0" + +"@docusaurus/plugin-content-docs@2.0.0-beta.9", "@docusaurus/plugin-content-docs@^2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.9.tgz#53ac2b43beb0f183c8a9b8fab6201e5e8f444a67" + integrity sha512-GC+CvqKuravPpK5fqlYJVmj9hc6nkd/c/rM2ONueFCqw2wyuH7esWL8RpMqgS0JM1qwwuRpi0Dd3R/zdOptHIQ== + dependencies: + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/mdx-loader" "2.0.0-beta.9" + "@docusaurus/types" "2.0.0-beta.9" + "@docusaurus/utils" "2.0.0-beta.9" + "@docusaurus/utils-validation" "2.0.0-beta.9" + chalk "^4.1.2" combine-promises "^1.1.0" escape-string-regexp "^4.0.0" execa "^5.0.0" @@ -1335,221 +2167,227 @@ globby "^11.0.2" import-fresh "^3.2.2" js-yaml "^4.0.0" - loader-utils "^1.2.3" + loader-utils "^2.0.0" lodash "^4.17.20" remark-admonitions "^1.2.1" shelljs "^0.8.4" - tslib "^2.2.0" + tslib "^2.3.1" utility-types "^3.10.0" - webpack "^5.40.0" - -"@docusaurus/plugin-content-pages@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.6.tgz#254e6ee60a8a2b4d85c4fa8408388d585eea0507" - integrity sha512-N6wARzOA8gTFeBXZSKbAN5s1Ej6R/pVg+J946E8GCYefXTFikTNRQ8+OPhax4MRzgzoOvhTQbLbRCSoAzSmjig== - dependencies: - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/mdx-loader" "2.0.0-beta.6" - "@docusaurus/types" "2.0.0-beta.6" - "@docusaurus/utils" "2.0.0-beta.6" - "@docusaurus/utils-validation" "2.0.0-beta.6" + webpack "^5.61.0" + +"@docusaurus/plugin-content-pages@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.9.tgz#115309f03bae2864bb9e4cd8fae646ea2e1f31dc" + integrity sha512-27nFHhPpZEWra6izyWgY+EkBspr3OAUUHojRXzMUKplYLZ5gIciM224PXbwLyECjpn51eaf8/2Ay+/H9BdTCBw== + dependencies: + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/mdx-loader" "2.0.0-beta.9" + "@docusaurus/types" "2.0.0-beta.9" + "@docusaurus/utils" "2.0.0-beta.9" + "@docusaurus/utils-validation" "2.0.0-beta.9" globby "^11.0.2" lodash "^4.17.20" remark-admonitions "^1.2.1" - tslib "^2.1.0" - webpack "^5.40.0" - -"@docusaurus/plugin-debug@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.6.tgz#dc5ebc3c5c1c144b924ab3282fedbfc44cc78be0" - integrity sha512-TJXDBR2Gr/mhBrcj+/4+rTShSm/Qg56Jfezbm/2fFvuPgVlUwy6oj08s2/kYSTmkfG7G+c4iX1GBHjtyo1KxZA== - dependencies: - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/types" "2.0.0-beta.6" - "@docusaurus/utils" "2.0.0-beta.6" - fs-extra "^9.1.0" + tslib "^2.3.1" + webpack "^5.61.0" + +"@docusaurus/plugin-debug@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.9.tgz#97920e6ba333f99537bd72ae97a8999beeb39a3b" + integrity sha512-uVnLfNE7YBMCWVcfoy6NgAxbqfG3bXfrLozM2RMafPmsCitaw+wrTdnba/irM364wPFFursF9lDrNLwSrYiRbw== + dependencies: + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/types" "2.0.0-beta.9" + "@docusaurus/utils" "2.0.0-beta.9" + fs-extra "^10.0.0" react-json-view "^1.21.3" - tslib "^2.1.0" + tslib "^2.3.1" -"@docusaurus/plugin-google-analytics@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.6.tgz#fcb8608c09920131e4dd56b5b343f23cd07a7eee" - integrity sha512-AHbMNPN3gkWXYFnmHL9MBcRODByAgzHZoH/5v3xwbSV2FOZo6kx4Hp94I6oFM0o5mp+i6X7slDncgGTWSGxCMg== +"@docusaurus/plugin-google-analytics@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.9.tgz#5584d20b2e64cc3f84978d42cb0edeeabaf49123" + integrity sha512-fYnunrefFko2jF/M973FONZjn9QHzNnt7+uMokR4frK/BX/zEyW2Yw6vh7dC0oo+ml5625Pv5OfwwlOJ9DRmHw== dependencies: - "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/core" "2.0.0-beta.9" -"@docusaurus/plugin-google-gtag@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.6.tgz#ccde43934d5a193711d118058092d4251965079d" - integrity sha512-uJyQ30sXbVRS3TGtVJFA0s1ozrluuREu6NK2Z3TLtKpeT2NTe5iaqXN0Xp749hr3bjbgpEe6gMixVh//jg503w== +"@docusaurus/plugin-google-gtag@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.9.tgz#70de97bb5a25bc10969941ec257d694db0abed79" + integrity sha512-AlVhbjN0OEiM8r8BncdiP82B9I7Dw3fN4cj2pPLtcOmvcRPQM2BfdzxbXPBUHgyT50Rd6hxS+R2Fl/s2RpUAHA== dependencies: - "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/core" "2.0.0-beta.9" -"@docusaurus/plugin-pwa@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-pwa/-/plugin-pwa-2.0.0-beta.6.tgz#ddf40a8f735e701d8f9531eb1f39d0ababef6a75" - integrity sha512-+sV0D5Sw5Zuu1esgUz+Z2NPTtMu8ygJNg92UGPdwNEcqkCC9CXsy/YoxQq/JzWsWYb3zee8HmEpzyikCvMn7Lg== +"@docusaurus/plugin-pwa@^2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-pwa/-/plugin-pwa-2.0.0-beta.9.tgz#48546e1a47c2887535948ea5095dfc42ac1d9646" + integrity sha512-UjdUkfhIYohTMvjpW1mbLEtEua7Up1xXB8LnuFLOKKIypJVlr219f5S1wnok1T0zvXADsed9nc+InR4LBVYILw== dependencies: "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.13" "@babel/plugin-proposal-optional-chaining" "^7.12.16" - "@babel/preset-env" "^7.12.16" - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/theme-common" "2.0.0-beta.6" - "@docusaurus/utils" "2.0.0-beta.6" - "@docusaurus/utils-validation" "2.0.0-beta.6" + "@babel/preset-env" "^7.15.6" + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/theme-common" "2.0.0-beta.9" + "@docusaurus/utils" "2.0.0-beta.9" + "@docusaurus/utils-validation" "2.0.0-beta.9" babel-loader "^8.2.2" clsx "^1.1.1" core-js "^2.6.5" - terser-webpack-plugin "^5.1.3" - webpack "^5.40.0" + terser-webpack-plugin "^5.2.4" + webpack "^5.61.0" webpack-merge "^5.7.3" workbox-build "^6.1.1" workbox-precaching "^6.1.1" workbox-window "^6.1.1" -"@docusaurus/plugin-sitemap@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.6.tgz#5dd74bc8a5845c0e7eac7bfce05a18f57e0b3ed2" - integrity sha512-jpTaODqyCgg+20RtMw8gSvCKQOvH18FpKhIu6FG+z4zgHP33qaJouVM7/1ZKPrfNt4z7xDOyBNUzzdmpssHA8A== +"@docusaurus/plugin-sitemap@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.9.tgz#4c944b6fc4e8fa4625a6fd985ec21d6455c31647" + integrity sha512-p6Qc1vo/yb1v767/u0E72inkGKayx77HDKsDOGrNj2IH0db0cMsskBLeKYcDfVz5+dtmFrR+lubINp7TyofkvA== dependencies: - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/types" "2.0.0-beta.6" - "@docusaurus/utils" "2.0.0-beta.6" - "@docusaurus/utils-common" "2.0.0-beta.6" - "@docusaurus/utils-validation" "2.0.0-beta.6" + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/types" "2.0.0-beta.9" + "@docusaurus/utils" "2.0.0-beta.9" + "@docusaurus/utils-common" "2.0.0-beta.9" + "@docusaurus/utils-validation" "2.0.0-beta.9" fs-extra "^10.0.0" sitemap "^7.0.0" - tslib "^2.2.0" - -"@docusaurus/preset-classic@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.6.tgz#528c98939589ae5edfc2a7e01e9f87561e5d5c01" - integrity sha512-riqQRcNssNH7oto8nAjYIO79/ZucidexHTDlgD+trP56ploHLJp4kIlxb44IGOmx3es8/z4egWtM+acY/39N2Q== - dependencies: - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/plugin-content-blog" "2.0.0-beta.6" - "@docusaurus/plugin-content-docs" "2.0.0-beta.6" - "@docusaurus/plugin-content-pages" "2.0.0-beta.6" - "@docusaurus/plugin-debug" "2.0.0-beta.6" - "@docusaurus/plugin-google-analytics" "2.0.0-beta.6" - "@docusaurus/plugin-google-gtag" "2.0.0-beta.6" - "@docusaurus/plugin-sitemap" "2.0.0-beta.6" - "@docusaurus/theme-classic" "2.0.0-beta.6" - "@docusaurus/theme-search-algolia" "2.0.0-beta.6" - -"@docusaurus/react-loadable@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.0.tgz#6d6f0c8fd9a434b62a1ab1f8645ee7bde5a9ec21" - integrity sha512-Ld/kwUE6yATIOTLq3JCsWiTa/drisajwKqBQ2Rw6IcT+sFsKfYek8F2jSH8f68AT73xX97UehduZeCSlnuCBIg== - dependencies: + tslib "^2.3.1" + +"@docusaurus/preset-classic@^2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.9.tgz#853e6fa376eb389a2f06c0c85f2bc823b26b3010" + integrity sha512-wm4x+jOKYaBL+7ckJwskyiITayNm3127e42kz4CtvmjjccpZu68JCfjehqkpnoPDTByBYnaeOKyga4azeAQLSA== + dependencies: + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/plugin-content-blog" "2.0.0-beta.9" + "@docusaurus/plugin-content-docs" "2.0.0-beta.9" + "@docusaurus/plugin-content-pages" "2.0.0-beta.9" + "@docusaurus/plugin-debug" "2.0.0-beta.9" + "@docusaurus/plugin-google-analytics" "2.0.0-beta.9" + "@docusaurus/plugin-google-gtag" "2.0.0-beta.9" + "@docusaurus/plugin-sitemap" "2.0.0-beta.9" + "@docusaurus/theme-classic" "2.0.0-beta.9" + "@docusaurus/theme-search-algolia" "2.0.0-beta.9" + +"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" + integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== + dependencies: + "@types/react" "*" prop-types "^15.6.2" -"@docusaurus/theme-classic@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.6.tgz#4ae476e90cf875bb13eba5daedbd71d0cfdd8194" - integrity sha512-fMb6gAKUdaojInZabimIJE+yPWs8dQfmZII7v/LHmgxafh/FylmrBkKhyJfa2ix4QRibo9E01LGX44/aKzemxw== - dependencies: - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/plugin-content-blog" "2.0.0-beta.6" - "@docusaurus/plugin-content-docs" "2.0.0-beta.6" - "@docusaurus/plugin-content-pages" "2.0.0-beta.6" - "@docusaurus/theme-common" "2.0.0-beta.6" - "@docusaurus/types" "2.0.0-beta.6" - "@docusaurus/utils" "2.0.0-beta.6" - "@docusaurus/utils-common" "2.0.0-beta.6" - "@docusaurus/utils-validation" "2.0.0-beta.6" +"@docusaurus/theme-classic@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.9.tgz#d4d246c295e91938bb4ae9745104e352bc5dfe94" + integrity sha512-vTijCGrkFkaqzpOu7w1AaXOBFOo6wirkNEN0+TMkx3oTu95Yj7h98rt/9Z60f6L9HVjOFQ18h3fU6cWloNG+Bg== + dependencies: + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/plugin-content-blog" "2.0.0-beta.9" + "@docusaurus/plugin-content-docs" "2.0.0-beta.9" + "@docusaurus/plugin-content-pages" "2.0.0-beta.9" + "@docusaurus/theme-common" "2.0.0-beta.9" + "@docusaurus/types" "2.0.0-beta.9" + "@docusaurus/utils" "2.0.0-beta.9" + "@docusaurus/utils-common" "2.0.0-beta.9" + "@docusaurus/utils-validation" "2.0.0-beta.9" "@mdx-js/mdx" "^1.6.21" "@mdx-js/react" "^1.6.21" - chalk "^4.1.1" + chalk "^4.1.2" clsx "^1.1.1" copy-text-to-clipboard "^3.0.1" fs-extra "^10.0.0" globby "^11.0.2" - infima "0.2.0-alpha.33" + infima "0.2.0-alpha.34" lodash "^4.17.20" - parse-numeric-range "^1.2.0" - postcss "^8.2.15" + parse-numeric-range "^1.3.0" + postcss "^8.3.7" prism-react-renderer "^1.2.1" prismjs "^1.23.0" prop-types "^15.7.2" react-router-dom "^5.2.0" - rtlcss "^3.1.2" - -"@docusaurus/theme-common@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-beta.6.tgz#17cbf38400d752e264cdbebbc57a92f2bdfc7052" - integrity sha512-53nFWMjpFdyHEvBfQQQoDm9rNKgGangy7vSp1B/F3+uRyYAItE7O4l8MdOALXFALlddiiPYvCtI1qGx2dnzndA== - dependencies: - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/plugin-content-blog" "2.0.0-beta.6" - "@docusaurus/plugin-content-docs" "2.0.0-beta.6" - "@docusaurus/plugin-content-pages" "2.0.0-beta.6" - "@docusaurus/types" "2.0.0-beta.6" + rtlcss "^3.3.0" + +"@docusaurus/theme-common@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-beta.9.tgz#a2bd5eb242baa38b110a191126f9054740267925" + integrity sha512-ZsFP+wH1CY6SBqkBGAdj9kHZHkV/7Y77Jw0rnEVbVU4zX2Jh6apWRCOJVaPrroDES8/9D6WWKQgQifeoJ2EeIA== + dependencies: + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/plugin-content-blog" "2.0.0-beta.9" + "@docusaurus/plugin-content-docs" "2.0.0-beta.9" + "@docusaurus/plugin-content-pages" "2.0.0-beta.9" + "@docusaurus/types" "2.0.0-beta.9" clsx "^1.1.1" fs-extra "^10.0.0" - tslib "^2.1.0" + tslib "^2.3.1" + utility-types "^3.10.0" -"@docusaurus/theme-search-algolia@2.0.0-beta.6", "@docusaurus/theme-search-algolia@^2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.6.tgz#c92214a075a23fe9fb87cfbc6f037ca07e83f628" - integrity sha512-GaaYdf6EEKL3jwmt9LRyiMtNvobOhw4vGuYJKbJcgba/M75kOJSbZPRrhALBAe6o4gOYbV44afzFC/jUUp7dsA== +"@docusaurus/theme-search-algolia@2.0.0-beta.9", "@docusaurus/theme-search-algolia@^2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.9.tgz#ccece22535b91e83757c21d895817c5f577fcc36" + integrity sha512-pbpA18kqr5H7A7snmHf4dzMYV+3nsTDYMhV9f2Tms7yP9cxW7ZMHJwaEKXh1myE58Nbkv84AF734TR1UgYrziw== dependencies: "@docsearch/react" "^3.0.0-alpha.39" - "@docusaurus/core" "2.0.0-beta.6" - "@docusaurus/theme-common" "2.0.0-beta.6" - "@docusaurus/utils" "2.0.0-beta.6" - "@docusaurus/utils-validation" "2.0.0-beta.6" - algoliasearch "^4.8.4" - algoliasearch-helper "^3.3.4" + "@docusaurus/core" "2.0.0-beta.9" + "@docusaurus/theme-common" "2.0.0-beta.9" + "@docusaurus/utils" "2.0.0-beta.9" + "@docusaurus/utils-validation" "2.0.0-beta.9" + algoliasearch "^4.10.5" + algoliasearch-helper "^3.5.5" clsx "^1.1.1" - eta "^1.12.1" + eta "^1.12.3" lodash "^4.17.20" -"@docusaurus/types@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.6.tgz#f92a61cc42e5921d325114ebc7b30c5e8c368683" - integrity sha512-TrwxyI93XTZEhOmdEI8FPKDbGV61zE9PzXCdE1alwz1NOV+YXwcv+9sRTZEVLqBpr+TIja+IeeS6mxnyen/Ptg== +"@docusaurus/types@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.9.tgz#3561a0e3ce9bcb0892d02a025161bb854a189d10" + integrity sha512-7qK7PCwRImHzv9RMi5HJ7RoHKQ8r7oqZK79UucmzBXl5nyfZridBC7JQ+LG7GBqYVaIjfOHUflOOLIVn+gK2/g== dependencies: commander "^5.1.0" - joi "^17.4.0" + joi "^17.4.2" querystring "0.2.0" - webpack "^5.40.0" + utility-types "^3.10.0" + webpack "^5.61.0" webpack-merge "^5.8.0" -"@docusaurus/utils-common@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.6.tgz#afd26a9f67b16479058ead66a310738c21293ae5" - integrity sha512-MKm6bJxvsYWRl072jLR60z+71tTWSxoERh2eTmCYlegFnu3Tby3HOC8I3jDcC6VpVuoDGsBGNoQbOgy2LqQbXQ== +"@docusaurus/utils-common@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.9.tgz#3c61db4dd87b4644266e9c240024049cd991f338" + integrity sha512-ftVRifnVXW9eQjwOSuTzhEb9P55KSVfqEbQHgUlMm8KYXHC4NNdn4V+9sHmdJ8rDWNU+PA/+FMjGxWLVejMkxg== dependencies: - "@docusaurus/types" "2.0.0-beta.6" - tslib "^2.2.0" + "@docusaurus/types" "2.0.0-beta.9" + tslib "^2.3.1" -"@docusaurus/utils-validation@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.6.tgz#7b98216de844138e9606a128c09182185ed84621" - integrity sha512-v0nk9bpawUd2JFDFyiHDmZuMG+/O1UvxtxvcRbvrxrul+rlzD7Q9CGxMgW3Grp2OCKQ4yFXRidBIccwqON5AVw== +"@docusaurus/utils-validation@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.9.tgz#7a4e4ab29627b618a784e8b59fbe4b4bab736594" + integrity sha512-8XZ2wdg+HPSVqgFzhfvntPLwX0+sCypvODatXR8A3YUraZYqQU0NK7SLqD1epLpmHjT/bztSq5DydoGoFRJdIA== dependencies: - "@docusaurus/utils" "2.0.0-beta.6" - chalk "^4.1.1" - joi "^17.4.0" - tslib "^2.1.0" + "@docusaurus/utils" "2.0.0-beta.9" + chalk "^4.1.2" + joi "^17.4.2" + tslib "^2.3.1" -"@docusaurus/utils@2.0.0-beta.6": - version "2.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.6.tgz#1438df9f28b632fe7a4f50663340b463cff07cab" - integrity sha512-S72/o7VDaTvrXJy+NpfuctghGGoMW30m94PMkrL3I6V+o5eE2Uzax7dbM++moclmHvi0/Khv+TXmRIQs6ZvwgQ== +"@docusaurus/utils@2.0.0-beta.9": + version "2.0.0-beta.9" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.9.tgz#b9d2b5e2baaed94b5041288fa759438e0164c408" + integrity sha512-f5TUY72Qux0wv1tjxsvjFDjfRnsWtQjsjR5Q/gJ5V021H9lycC9YCk0cEReg3bI3+IVL2iGvQqNnH3R1G7NcRw== dependencies: - "@docusaurus/types" "2.0.0-beta.6" + "@docusaurus/types" "2.0.0-beta.9" + "@mdx-js/runtime" "^1.6.22" "@types/github-slugger" "^1.3.0" - chalk "^4.1.1" + chalk "^4.1.2" escape-string-regexp "^4.0.0" fs-extra "^10.0.0" globby "^11.0.4" gray-matter "^4.0.3" lodash "^4.17.20" micromatch "^4.0.4" + remark-mdx-remove-exports "^1.6.22" + remark-mdx-remove-imports "^1.6.22" resolve-pathname "^3.0.0" - tslib "^2.2.0" + tslib "^2.3.1" "@hapi/hoek@^9.0.0": version "9.2.0" @@ -1563,7 +2401,7 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@mdx-js/mdx@^1.6.21": +"@mdx-js/mdx@1.6.22", "@mdx-js/mdx@^1.6.21": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== @@ -1588,11 +2426,20 @@ unist-builder "2.0.3" unist-util-visit "2.0.3" -"@mdx-js/react@^1.6.21": +"@mdx-js/react@1.6.22", "@mdx-js/react@^1.6.21": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== +"@mdx-js/runtime@^1.6.22": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/runtime/-/runtime-1.6.22.tgz#3edd388bf68a519ffa1aaf9c446b548165102345" + integrity sha512-p17spaO2+55VLCuxXA3LVHC4phRx60NR2XMdZ+qgVU1lKvEX4y88dmFNOzGDCPLJ03IZyKrJ/rPWWRiBrd9JrQ== + dependencies: + "@mdx-js/mdx" "1.6.22" + "@mdx-js/react" "1.6.22" + buble-jsx-only "^0.19.8" + "@mdx-js/util@1.6.22": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" @@ -1817,6 +2664,11 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + "@types/eslint-scope@^3.7.0": version "3.7.1" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" @@ -1848,14 +2700,6 @@ resolved "https://registry.yarnpkg.com/@types/github-slugger/-/github-slugger-1.3.0.tgz#16ab393b30d8ae2a111ac748a015ac05a1fc5524" integrity sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g== -"@types/glob@^7.1.1": - version "7.1.4" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" - integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - "@types/hast@^2.0.0": version "2.3.4" resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" @@ -1863,12 +2707,19 @@ dependencies: "@types/unist" "*" -"@types/html-minifier-terser@^5.0.0": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" - integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== +"@types/html-minifier-terser@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.0.0.tgz#563c1c6c132cd204e71512f9c0b394ff90d3fae7" + integrity sha512-NZwaaynfs1oIoLAV1vg18e7QMVDvw+6SQrdJc8w3BwUaoroVSf6EBj/Sk4PBWGxsq0dzhA2drbsuMC1/6C6KgQ== + +"@types/http-proxy@^1.17.5": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f" + integrity sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w== + dependencies: + "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== @@ -1880,11 +2731,6 @@ dependencies: "@types/unist" "*" -"@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - "@types/node@*": version "16.7.10" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.10.tgz#7aa732cc47341c12a16b7d562f519c2383b6d4fc" @@ -1905,11 +2751,25 @@ resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== +"@types/prop-types@*": + version "15.7.4" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" + integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== + "@types/q@^1.5.1": version "1.5.5" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== +"@types/react@*": + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.35.tgz#217164cf830267d56cd1aec09dcf25a541eedd4c" + integrity sha512-r3C8/TJuri/SLZiiwwxQoLAoavaczARfT9up9b4Jr65+ErAUX3MIkU0oMOQnrpfgHme8zIqZLX7O5nnjm5Wayw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" @@ -1917,6 +2777,11 @@ dependencies: "@types/node" "*" +"@types/retry@^0.12.0": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" + integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== + "@types/sax@^1.2.1": version "1.2.3" resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.3.tgz#b630ac1403ebd7812e0bf9a10de9bf5077afb348" @@ -1924,6 +2789,11 @@ dependencies: "@types/node" "*" +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + "@types/trusted-types@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" @@ -2073,22 +2943,37 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== + acorn-import-assertions@^1.7.6: version "1.7.6" resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== +acorn-jsx@^5.0.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + acorn-walk@^8.0.0: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== +acorn@^6.1.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + acorn@^8.0.4, acorn@^8.4.1: version "8.5.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== -address@1.1.2, address@^1.0.1: +address@^1.0.1, address@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== @@ -2101,17 +2986,26 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" -ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.12.4, ajv@^6.12.5: +ajv-keywords@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.0.0.tgz#d01b3b21715b2f63d02aa511b82fc6eb3b30083c" + integrity sha512-ULd1QMjRoH6JDNUQIfDLrlE+OgZlFaxyYCjzt58uNuUQtKXt8/U+vK/8Ql0gyn/C5mqZzUWtKMqr/4YquvTrWA== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2121,6 +3015,16 @@ ajv@^6.1.0, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.0, ajv@^8.8.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.8.1.tgz#e73dd88eeb4b10bbcd82bee136e6fbe801664d18" + integrity sha512-6CiMNDrzv0ZR916u2T+iRunnD60uWmNn8SkdB44/6stVORUg0aAkWO7PkOhpCmjmW8f2I/G/xnowD66fxGyQJg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ajv@^8.6.0: version "8.6.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" @@ -2131,14 +3035,14 @@ ajv@^8.6.0: require-from-string "^2.0.2" uri-js "^4.2.2" -algoliasearch-helper@^3.3.4: - version "3.5.5" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.5.5.tgz#05263869d3c8a7292278d7e49630f52520f204d7" - integrity sha512-JDH14gMpSj8UzEaKwVkrqKOeAOyK0dDWsFlKvWhk0Xl5yw9FyafYf1xZPb4uSXaPBAFQtUouFlR1Zt68BCY0/w== +algoliasearch-helper@^3.5.5: + version "3.6.2" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.6.2.tgz#45e19b12589cfa0c611b573287f65266ea2cc14a" + integrity sha512-Xx0NOA6k4ySn+R2l3UMSONAaMkyfmrZ3AP1geEMo32MxDJQJesZABZYsldO9fa6FKQxH91afhi4hO1G0Zc2opg== dependencies: events "^1.1.1" -algoliasearch@^4.0.0, algoliasearch@^4.8.4: +algoliasearch@^4.0.0: version "4.10.5" resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.10.5.tgz#1faf34a3ae5ac3bef27282eb141251c70c7f5db2" integrity sha512-KmH2XkiN+8FxhND4nWFbQDkIoU6g2OjfeU9kIv4Lb+EiOOs3Gpp7jvd+JnatsCisAZsnWQdjd7zVlW7I/85QvQ== @@ -2158,6 +3062,26 @@ algoliasearch@^4.0.0, algoliasearch@^4.8.4: "@algolia/requester-node-http" "4.10.5" "@algolia/transporter" "4.10.5" +algoliasearch@^4.10.5: + version "4.11.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.11.0.tgz#234befb3ac355c094077f0edf3777240b1ee013c" + integrity sha512-IXRj8kAP2WrMmj+eoPqPc6P7Ncq1yZkFiyDrjTBObV1ADNL8Z/KdZ+dWC5MmYcBLAbcB/mMCpak5N/D1UIZvsA== + dependencies: + "@algolia/cache-browser-local-storage" "4.11.0" + "@algolia/cache-common" "4.11.0" + "@algolia/cache-in-memory" "4.11.0" + "@algolia/client-account" "4.11.0" + "@algolia/client-analytics" "4.11.0" + "@algolia/client-common" "4.11.0" + "@algolia/client-personalization" "4.11.0" + "@algolia/client-search" "4.11.0" + "@algolia/logger-common" "4.11.0" + "@algolia/logger-console" "4.11.0" + "@algolia/requester-browser-xhr" "4.11.0" + "@algolia/requester-common" "4.11.0" + "@algolia/requester-node-http" "4.11.0" + "@algolia/transporter" "4.11.0" + alphanum-sort@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -2175,11 +3099,6 @@ ansi-align@^3.0.0: dependencies: string-width "^3.0.0" -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - ansi-escapes@^4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -2187,15 +3106,10 @@ ansi-escapes@^4.3.1: dependencies: type-fest "^0.21.3" -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== ansi-regex@^4.1.0: version "4.1.0" @@ -2207,7 +3121,17 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -2221,14 +3145,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -2254,21 +3170,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -2279,48 +3180,16 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -2333,21 +3202,16 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^10.2.0, autoprefixer@^10.2.5: - version "10.3.4" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.4.tgz#29efe5d19f51c281953178ddb5b84c5f1ca24c86" - integrity sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw== +autoprefixer@^10.3.5, autoprefixer@^10.3.7: + version "10.4.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.0.tgz#c3577eb32a1079a440ec253e404eaf1eb21388c8" + integrity sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA== dependencies: - browserslist "^4.16.8" - caniuse-lite "^1.0.30001252" - colorette "^1.3.0" + browserslist "^4.17.5" + caniuse-lite "^1.0.30001272" fraction.js "^4.1.1" normalize-range "^0.1.2" + picocolors "^1.0.0" postcss-value-parser "^4.1.0" axios@^0.21.1: @@ -2405,6 +3269,15 @@ babel-plugin-polyfill-corejs2@^0.2.2: "@babel/helper-define-polyfill-provider" "^0.2.2" semver "^6.1.1" +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" + integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.0" + semver "^6.1.1" + babel-plugin-polyfill-corejs3@^0.2.2: version "0.2.4" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" @@ -2413,6 +3286,14 @@ babel-plugin-polyfill-corejs3@^0.2.2: "@babel/helper-define-polyfill-provider" "^0.2.2" core-js-compat "^3.14.0" +babel-plugin-polyfill-corejs3@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" + integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.0" + core-js-compat "^3.18.0" + babel-plugin-polyfill-regenerator@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" @@ -2420,6 +3301,13 @@ babel-plugin-polyfill-regenerator@^0.2.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" + integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.0" + bail@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" @@ -2435,19 +3323,6 @@ base16@^1.0.0: resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA= -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -2458,23 +3333,11 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - bluebird@^3.7.1: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -2535,22 +3398,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -2558,16 +3405,6 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@4.14.2: - version "4.14.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce" - integrity sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw== - dependencies: - caniuse-lite "^1.0.30001125" - electron-to-chromium "^1.3.564" - escalade "^3.0.2" - node-releases "^1.1.61" - browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6, browserslist@^4.16.8: version "4.17.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.0.tgz#1fcd81ec75b41d6d4994fb0831b92ac18c01649c" @@ -2579,6 +3416,30 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4 escalade "^3.1.1" node-releases "^1.1.75" +browserslist@^4.16.5, browserslist@^4.17.5, browserslist@^4.17.6: + version "4.18.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" + integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== + dependencies: + caniuse-lite "^1.0.30001280" + electron-to-chromium "^1.3.896" + escalade "^3.1.1" + node-releases "^2.0.1" + picocolors "^1.0.0" + +buble-jsx-only@^0.19.8: + version "0.19.8" + resolved "https://registry.yarnpkg.com/buble-jsx-only/-/buble-jsx-only-0.19.8.tgz#6e3524aa0f1c523de32496ac9aceb9cc2b493867" + integrity sha512-7AW19pf7PrKFnGTEDzs6u9+JZqQwM1VnLS19OlqYDhXomtFFknnoQJAPHeg84RMFWAvOhYrG7harizJNwUKJsA== + dependencies: + acorn "^6.1.1" + acorn-dynamic-import "^4.0.0" + acorn-jsx "^5.0.1" + chalk "^2.4.2" + magic-string "^0.25.3" + minimist "^1.2.0" + regexpu-core "^4.5.4" + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -2604,21 +3465,6 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -2645,7 +3491,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camel-case@^4.1.1: +camel-case@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== @@ -2658,11 +3504,6 @@ camelcase-css@2.0.1: resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - camelcase@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" @@ -2678,17 +3519,22 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001252, caniuse-lite@^1.0.30001254: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001254: version "1.0.30001255" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz#f3b09b59ab52e39e751a569523618f47c4298ca0" integrity sha512-F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ== +caniuse-lite@^1.0.30001272, caniuse-lite@^1.0.30001280: + version "1.0.30001282" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz#38c781ee0a90ccfe1fe7fefd00e43f5ffdcb96fd" + integrity sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg== + ccount@^1.0.0, ccount@^1.0.3: version "1.1.0" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2697,7 +3543,7 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2742,26 +3588,7 @@ cheerio@^0.22.0: lodash.reject "^4.4.0" lodash.some "^4.4.0" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.5.1: +chokidar@^3.4.2, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -2791,23 +3618,6 @@ ci-info@^3.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" - clean-css@^5.1.5: version "5.1.5" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.1.5.tgz#3b0af240dcfc9a3779a08c2332df3ebd4474f232" @@ -2825,15 +3635,6 @@ cli-boxes@^2.2.1: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -2878,14 +3679,6 @@ collapse-white-space@^1.0.2: resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2915,11 +3708,21 @@ colord@^2.0.1, colord@^2.6: resolved "https://registry.yarnpkg.com/colord/-/colord-2.7.0.tgz#706ea36fe0cd651b585eb142fe64b6480185270e" integrity sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q== +colord@^2.9.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" + integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== + colorette@^1.2.2, colorette@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== +colorette@^2.0.10: + version "2.0.16" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + combine-promises@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.1.0.tgz#72db90743c0ca7aab7d0d8d2052fd7b0f674de71" @@ -2935,11 +3738,6 @@ commander@^2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - commander@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" @@ -2955,6 +3753,11 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" @@ -2965,11 +3768,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -3051,27 +3849,21 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - copy-text-to-clipboard@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz#8cbf8f90e0a47f12e4a24743736265d157bce69c" integrity sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q== -copy-webpack-plugin@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz#b71d21991599f61a4ee00ba79087b8ba279bbb59" - integrity sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw== +copy-webpack-plugin@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz#2d2c460c4c4695ec0a58afb2801a1205256c4e6b" + integrity sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA== dependencies: - fast-glob "^3.2.5" - glob-parent "^6.0.0" + fast-glob "^3.2.7" + glob-parent "^6.0.1" globby "^11.0.3" normalize-path "^3.0.0" - p-limit "^3.1.0" - schema-utils "^3.0.0" + schema-utils "^3.1.1" serialize-javascript "^6.0.0" core-js-compat@^3.14.0, core-js-compat@^3.16.0: @@ -3082,26 +3874,45 @@ core-js-compat@^3.14.0, core-js-compat@^3.16.0: browserslist "^4.16.8" semver "7.0.0" -core-js-pure@^3.16.0: - version "3.17.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.17.2.tgz#ba6311b6aa1e2f2adeba4ac6ec51a9ff40bdc1af" - integrity sha512-2VV7DlIbooyTI7Bh+yzOOWL9tGwLnQKHno7qATE+fqZzDKYr6llVjVQOzpD/QLZFgXDPb8T71pJokHEZHEYJhQ== +core-js-compat@^3.18.0, core-js-compat@^3.19.1: + version "3.19.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476" + integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== + dependencies: + browserslist "^4.17.6" + semver "7.0.0" + +core-js-pure@^3.19.0: + version "3.19.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.19.1.tgz#edffc1fc7634000a55ba05e95b3f0fe9587a5aa4" + integrity sha512-Q0Knr8Es84vtv62ei6/6jXH/7izKmOrtrxH9WJTHLCMAVeU+8TF8z8Nr08CsH4Ot0oJKzBzJJL9SJBYIv7WlfQ== core-js@^2.6.5: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.9.1: - version "3.17.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.17.2.tgz#f960eae710dc62c29cca93d5332e3660e289db10" - integrity sha512-XkbXqhcXeMHPRk2ItS+zQYliAMilea2euoMsnpRRdDad6b2VY6CQQcwz1K8AnWesfw4p165RzY0bTnr3UrbYiA== +core-js@^3.18.0: + version "3.19.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.1.tgz#f6f173cae23e73a7d88fa23b6e9da329276c6641" + integrity sha512-Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg== core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + cosmiconfig@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" @@ -3120,7 +3931,7 @@ cross-fetch@^3.0.4: dependencies: node-fetch "2.6.1" -cross-spawn@7.0.3, cross-spawn@^7.0.3: +cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3129,17 +3940,6 @@ cross-spawn@7.0.3, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" @@ -3173,16 +3973,15 @@ css-loader@^5.1.1: schema-utils "^3.0.0" semver "^7.3.5" -css-minimizer-webpack-plugin@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.2.tgz#8fadbdf10128cb40227bff275a4bb47412534245" - integrity sha512-B3I5e17RwvKPJwsxjjWcdgpU/zqylzK1bPVghcmpFHRL48DXiBgrtqz1BJsn68+t/zzaLp9kYAaEDvQ7GyanFQ== +css-minimizer-webpack-plugin@^3.0.2: + version "3.1.4" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.4.tgz#8cbcbb31c946b143ad4d10ba5d6f3164d018fcaa" + integrity sha512-JXnwBEA+a3FrmuBIJz7tKnCYGyraP86nuvX+wAqik1Lc8Ne9Ql8h5RpFbM3HjMpjXfhnqRBoTYIfArji5mteOg== dependencies: cssnano "^5.0.6" jest-worker "^27.0.2" - p-limit "^3.0.2" postcss "^8.3.5" - schema-utils "^3.0.0" + schema-utils "^4.0.0" serialize-javascript "^6.0.0" source-map "^0.6.1" @@ -3258,13 +4057,13 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-advanced@^5.1.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.1.4.tgz#b492d03756550f75cd8131d59105efdea88c2f7e" - integrity sha512-pFtIM15OzryDk09RcK+bBBtwSl80+g/POTAf/sVPqPmnOAleK6vBkY5wTmPjqGyV5/UTPjEzWMtbOQ3Z0kCBXA== +cssnano-preset-advanced@^5.1.4: + version "5.1.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.1.7.tgz#3ee2a72b0653e49a426626ad767a29a310ded207" + integrity sha512-ber3aZxajguRaVOjngCPUwbodAUiiEhYwmU2s4IY4Xs2YVCcGgSnIahzLYk0v/XxPhfUwhBlfnKTYJrCNgHKDw== dependencies: - autoprefixer "^10.2.0" - cssnano-preset-default "^5.1.4" + autoprefixer "^10.3.7" + cssnano-preset-default "^5.1.7" postcss-discard-unused "^5.0.1" postcss-merge-idents "^5.0.1" postcss-reduce-idents "^5.0.1" @@ -3305,12 +4104,47 @@ cssnano-preset-default@^5.1.4: postcss-svgo "^5.0.2" postcss-unique-selectors "^5.0.1" +cssnano-preset-default@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.7.tgz#68c3ad1ec6a810482ec7d06b2d70fc34b6b0d70c" + integrity sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA== + dependencies: + css-declaration-sorter "^6.0.3" + cssnano-utils "^2.0.1" + postcss-calc "^8.0.0" + postcss-colormin "^5.2.1" + postcss-convert-values "^5.0.2" + postcss-discard-comments "^5.0.1" + postcss-discard-duplicates "^5.0.1" + postcss-discard-empty "^5.0.1" + postcss-discard-overridden "^5.0.1" + postcss-merge-longhand "^5.0.4" + postcss-merge-rules "^5.0.3" + postcss-minify-font-values "^5.0.1" + postcss-minify-gradients "^5.0.3" + postcss-minify-params "^5.0.2" + postcss-minify-selectors "^5.1.0" + postcss-normalize-charset "^5.0.1" + postcss-normalize-display-values "^5.0.1" + postcss-normalize-positions "^5.0.1" + postcss-normalize-repeat-style "^5.0.1" + postcss-normalize-string "^5.0.1" + postcss-normalize-timing-functions "^5.0.1" + postcss-normalize-unicode "^5.0.1" + postcss-normalize-url "^5.0.3" + postcss-normalize-whitespace "^5.0.1" + postcss-ordered-values "^5.0.2" + postcss-reduce-initial "^5.0.1" + postcss-reduce-transforms "^5.0.1" + postcss-svgo "^5.0.3" + postcss-unique-selectors "^5.0.2" + cssnano-utils@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== -cssnano@^5.0.4, cssnano@^5.0.6: +cssnano@^5.0.6: version "5.0.8" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.8.tgz#39ad166256980fcc64faa08c9bb18bb5789ecfa9" integrity sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg== @@ -3320,6 +4154,16 @@ cssnano@^5.0.4, cssnano@^5.0.6: lilconfig "^2.0.3" yaml "^1.10.2" +cssnano@^5.0.8: + version "5.0.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.11.tgz#743397a05e04cb87e9df44b7659850adfafc3646" + integrity sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg== + dependencies: + cssnano-preset-default "^5.1.7" + is-resolvable "^1.1.0" + lilconfig "^2.0.3" + yaml "^1.10.2" + csso@^4.0.2, csso@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" @@ -3327,14 +4171,19 @@ csso@^4.0.2, csso@^4.2.0: dependencies: css-tree "^1.1.2" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: +csstype@^3.0.2: + version "3.0.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" + integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== + +debug@2.6.9, debug@^2.6.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.1.1, debug@^3.2.6: +debug@^3.1.1: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -3348,16 +4197,6 @@ debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "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@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" @@ -3387,19 +4226,23 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== +default-gateway@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" + execa "^5.0.0" defer-to-connect@^1.0.1: version "1.1.3" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -3407,41 +4250,6 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - del@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" @@ -3478,7 +4286,7 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -detect-port-alt@1.1.6: +detect-port-alt@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== @@ -3637,11 +4445,16 @@ ejs@^2.6.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== -electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.830: +electron-to-chromium@^1.3.830: version "1.3.830" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.830.tgz#40e3144204f8ca11b2cebec83cf14c20d3499236" integrity sha512-gBN7wNAxV5vl1430dG+XRcQhD4pIeYeak6p6rjdCtlz5wWNwDad8jwvphe5oi1chL5MV6RNRikfffBBiFuj+rQ== +electron-to-chromium@^1.3.896: + version "1.3.903" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.903.tgz#e2d3c3809f4ef05fdbe5cc88969dfc94b1bd15b9" + integrity sha512-+PnYAyniRRTkNq56cqYDLq9LyklZYk0hqoDy9GpcU11H5QjRmFZVDbxtgHUMK/YzdNTcn1XWP5gb+hFlSCr20g== + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -3674,10 +4487,10 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^5.8.0: - version "5.8.2" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" - integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== +enhanced-resolve@^5.8.3: + version "5.8.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" + integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -3692,13 +4505,6 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -errno@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -3729,10 +4535,10 @@ es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" -es-module-lexer@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" - integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== es-to-primitive@^1.2.1: version "1.2.1" @@ -3743,7 +4549,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.0.2, escalade@^3.1.1: +escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== @@ -3758,16 +4564,16 @@ escape-html@^1.0.3, escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -3813,7 +4619,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -eta@^1.12.1: +eta@^1.12.3: version "1.12.3" resolved "https://registry.yarnpkg.com/eta/-/eta-1.12.3.tgz#2982d08adfbef39f9fa50e2fbd42d7337e7338b1" integrity sha512-qHixwbDLtekO/d51Yr4glcaUJCIjGVJyTzuqV4GPlgZo1YpgOKG+avQynErZIYrfM6JIJdtiG2Kox8tbb+DoGg== @@ -3845,26 +4651,6 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^1.0.7: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" - integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== - dependencies: - original "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -3880,19 +4666,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -3936,39 +4709,17 @@ extend-shallow@^2.0.1: dependencies: is-extendable "^0.1.0" -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.1.1, fast-glob@^3.2.5: +fast-glob@^3.1.1, fast-glob@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== @@ -4052,25 +4803,10 @@ file-loader@^6.2.0: loader-utils "^2.0.0" schema-utils "^3.0.0" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filesize@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" - integrity sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" +filesize@^6.1.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.4.0.tgz#914f50471dd66fdca3cefe628bd0cde4ef769bcd" + integrity sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ== fill-range@^7.0.1: version "7.0.1" @@ -4101,14 +4837,6 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@4.1.0, find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -4116,6 +4844,14 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -4137,23 +4873,24 @@ follow-redirects@^1.0.0, follow-redirects@^1.14.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.3.tgz#6ada78118d8d24caee595595accdc0ac6abd022e" integrity sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw== -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -fork-ts-checker-webpack-plugin@4.1.6: - version "4.1.6" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" - integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== +fork-ts-checker-webpack-plugin@^6.0.5: + version "6.4.0" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.4.0.tgz#057e477cf1d8b013b2ed2669437f818680289c4c" + integrity sha512-3I3wFkc4DbzaUDPWEi96wdYGu4EKtxBafhZYm0o4mX51d9bphAY4P3mBl8K5mFXFJqVzHfmdbm9kLGnm7vwwBg== dependencies: - "@babel/code-frame" "^7.5.5" - chalk "^2.4.1" - micromatch "^3.1.10" + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" minimatch "^3.0.4" - semver "^5.6.0" + schema-utils "2.7.0" + semver "^7.3.2" tapable "^1.0.0" - worker-rpc "^0.1.0" forwarded@0.2.0: version "0.2.0" @@ -4165,13 +4902,6 @@ fraction.js@^4.1.1: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.1.tgz#ac4e520473dae67012d618aab91eda09bcb400ff" integrity sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg== -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -4186,7 +4916,7 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.0.0, fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -4196,19 +4926,16 @@ fs-extra@^9.0.1, fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-monkey@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -4224,7 +4951,7 @@ gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -4243,7 +4970,7 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-stream@^4.0.0, get-stream@^4.1.0: +get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -4262,24 +4989,11 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -github-slugger@^1.3.0: +github-slugger@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e" integrity sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ== -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -4287,19 +5001,19 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.1.tgz#42054f685eb6a44e7a7d189a96efa40a54971aa7" - integrity sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog== +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: - is-glob "^4.0.1" + is-glob "^4.0.3" glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.0, glob@^7.0.3, glob@^7.1.3, glob@^7.1.6: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== @@ -4318,7 +5032,7 @@ global-dirs@^3.0.0: dependencies: ini "2.0.0" -global-modules@2.0.0: +global-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== @@ -4339,18 +5053,6 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globby@11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" - integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - globby@^11.0.1, globby@^11.0.2, globby@^11.0.3, globby@^11.0.4: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" @@ -4363,17 +5065,6 @@ globby@^11.0.1, globby@^11.0.2, globby@^11.0.3, globby@^11.0.4: merge2 "^1.3.0" slash "^3.0.0" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -4391,7 +5082,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== @@ -4406,7 +5097,7 @@ gray-matter@^4.0.3: section-matter "^1.0.0" strip-bom-string "^1.0.0" -gzip-size@5.1.1: +gzip-size@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== @@ -4453,37 +5144,6 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - has-yarn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" @@ -4619,23 +5279,23 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +html-entities@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" + integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== -html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" - integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== +html-minifier-terser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.0.2.tgz#14059ad64b69bf9f8b8a33f25b53411d8321e75d" + integrity sha512-AgYO3UGhMYQx2S/FBJT3EM0ZYcKmH6m9XL9c1v77BeK/tYJxGPxT1/AtsdUi4FcP8kZGmqqnItCcjFPcX9hk6A== dependencies: - camel-case "^4.1.1" - clean-css "^4.2.3" - commander "^4.1.1" + camel-case "^4.1.2" + clean-css "^5.1.5" + commander "^8.1.0" he "^1.2.0" - param-case "^3.0.3" + param-case "^3.0.4" relateurl "^0.2.7" - terser "^4.6.3" + terser "^5.7.2" html-tags@^3.1.0: version "3.1.0" @@ -4647,15 +5307,15 @@ html-void-elements@^1.0.0: resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== -html-webpack-plugin@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz#7b04bf80b1f6fe84a6d3f66c8b79d64739321b08" - integrity sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ== +html-webpack-plugin@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50" + integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw== dependencies: - "@types/html-minifier-terser" "^5.0.0" - html-minifier-terser "^5.0.1" + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" lodash "^4.17.21" - pretty-error "^3.0.4" + pretty-error "^4.0.0" tapable "^2.0.0" htmlparser2@^3.9.1: @@ -4727,17 +5387,18 @@ http-parser-js@>=0.5.1: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== +http-proxy-middleware@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz#7ef3417a479fb7666a571e09966c66a39bd2c15f" + integrity sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg== dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" -http-proxy@^1.17.0: +http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -4773,12 +5434,12 @@ ignore@^5.1.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== -immer@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" - integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== +immer@^9.0.6: + version "9.0.6" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.6.tgz#7a96bf2674d06c8143e327cbf73539388ddf1a73" + integrity sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ== -import-fresh@^3.2.1, import-fresh@^3.2.2, import-fresh@^3.3.0: +import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.2.2, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -4791,14 +5452,6 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -4809,10 +5462,10 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -infima@0.2.0-alpha.33: - version "0.2.0-alpha.33" - resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.33.tgz#8d1a77ea916bedcebffa60dcd2dffbe382e09abf" - integrity sha512-iLZI8/vGTbbhbeFhlWv1zwvrqfNDLAayuEdqZqNqCyGuh0IW469dRIRm0FLZ98YyLikt2njzuKfy6xUrBWRXcg== +infima@0.2.0-alpha.34: + version "0.2.0-alpha.34" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.34.tgz#14a900d79a4de2013e025ac95749a4592f16ef6e" + integrity sha512-Na6A2Tl56i1p9dzu7VOAT1Kmu3f5buz63Wvd+D9ZZWL6siQ47L7wkEZUICVKFgc5gERFZVZ/PoPB57Kl++h37Q== inflight@^1.0.4: version "1.0.6" @@ -4822,7 +5475,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, 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== @@ -4847,13 +5500,15 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== +internal-ip@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-6.2.0.tgz#d5541e79716e406b74ac6b07b856ef18dc1621c1" + integrity sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg== dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" + default-gateway "^6.0.0" + ipaddr.js "^1.9.1" + is-ip "^3.1.0" + p-event "^4.2.0" internal-slot@^1.0.3: version "1.0.3" @@ -4869,40 +5524,31 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== -ip@^1.1.0, ip@^1.1.5: +ip@^1.1.0: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: +ipaddr.js@1.9.1, ipaddr.js@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + is-absolute-url@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - is-alphabetical@1.0.4, is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" @@ -4936,13 +5582,6 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -4958,11 +5597,6 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-buffer@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" @@ -4987,20 +5621,6 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -5013,42 +5633,17 @@ is-decimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-docker@^2.0.0: +is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-extendable@^0.1.0, is-extendable@^0.1.1: +is-extendable@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= @@ -5063,20 +5658,20 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" +is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + is-hexadecimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" @@ -5090,6 +5685,13 @@ is-installed-globally@^0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -5112,13 +5714,6 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -5134,25 +5729,11 @@ is-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== -is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: +is-path-cwd@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -5163,7 +5744,12 @@ is-plain-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -5188,16 +5774,11 @@ is-resolvable@^1.1.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-root@2.1.0, is-root@^2.1.0: +is-root@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -5227,22 +5808,12 @@ is-whitespace-character@^1.0.0: resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - is-word-character@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1: +is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -5259,7 +5830,7 @@ isarray@0.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@1.0.0, isarray@~1.0.0: +isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -5269,14 +5840,7 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: +isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= @@ -5299,7 +5863,7 @@ jest-worker@^27.0.2, jest-worker@^27.0.6: merge-stream "^2.0.0" supports-color "^8.0.0" -joi@^17.3.0, joi@^17.4.0: +joi@^17.4.0, joi@^17.4.2: version "17.4.2" resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.2.tgz#02f4eb5cf88e515e614830239379dcbbe28ce7f7" integrity sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw== @@ -5370,11 +5934,6 @@ json-schema@^0.3.0: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.3.0.tgz#90a9c5054bd065422c00241851ce8d59475b701b" integrity sha512-TYfxx36xfl52Rf1LU9HyWSLGPdYLL+SQ8/E/0yVyKG8wCCDaSrhPap0vEdlsZWRaS6tnKKLPGiEJGiREVC8kxQ== -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -5410,30 +5969,6 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -5476,16 +6011,7 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== -loader-utils@2.0.0, loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -5494,6 +6020,15 @@ loader-utils@^1.2.3, loader-utils@^1.4.0: emojis-list "^3.0.0" json5 "^1.0.1" +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -5606,16 +6141,11 @@ lodash.uniq@4.5.0, lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== - loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -5647,7 +6177,7 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@^0.25.0, magic-string@^0.25.7: +magic-string@^0.25.0, magic-string@^0.25.3, magic-string@^0.25.7: version "0.25.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== @@ -5661,18 +6191,6 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - markdown-escapes@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" @@ -5736,13 +6254,12 @@ medium-zoom@^1.0.4: resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.0.6.tgz#9247f21ca9313d8bbe9420aca153a410df08d027" integrity sha512-UdiUWfvz9fZMg1pzf4dcuqA0W079o0mpqbTnOz5ip4VGYX96QjmbM+OgOU/0uOzAytxC0Ny4z+VcYQnhdifimg== -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= +memfs@^3.1.2, memfs@^3.2.2: + version "3.3.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.3.0.tgz#4da2d1fc40a04b170a56622c7164c6be2c4cbef2" + integrity sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg== dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" + fs-monkey "1.0.3" merge-descriptors@1.0.1: version "1.0.1" @@ -5764,31 +6281,7 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -microevent.ts@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" - integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.4: +micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -5801,6 +6294,11 @@ mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@1.51.0: + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== + mime-db@~1.33.0: version "1.33.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" @@ -5820,12 +6318,19 @@ mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24: dependencies: mime-db "1.49.0" +mime-types@^2.1.31: + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.3.1, mime@^2.4.4: +mime@^2.3.1: version "2.5.2" resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== @@ -5874,31 +6379,13 @@ minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -module-alias@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/module-alias/-/module-alias-2.2.2.tgz#151cdcecc24e25739ff0aa6e51e1c5716974c0e0" - integrity sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q== - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -5932,32 +6419,15 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -nan@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - nanoid@^3.1.23: version "3.1.25" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" +nanoid@^3.1.30: + version "3.1.30" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" + integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== negotiator@0.6.2: version "0.6.2" @@ -5969,11 +6439,6 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - no-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" @@ -5999,17 +6464,15 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-releases@^1.1.61, node-releases@^1.1.75: +node-releases@^1.1.75: version "1.1.75" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" +node-releases@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" + integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -6031,13 +6494,6 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -6064,20 +6520,11 @@ nth-check@^2.0.0: dependencies: boolbase "^1.0.0" -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.11.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" @@ -6096,13 +6543,6 @@ object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" @@ -6122,13 +6562,6 @@ object.getownpropertydescriptors@^2.1.0: define-properties "^1.1.3" es-abstract "^1.18.0-next.2" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - object.values@^1.1.0: version "1.1.4" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" @@ -6177,30 +6610,32 @@ open@^7.0.2: is-docker "^2.0.0" is-wsl "^2.1.1" +open@^8.0.9: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-event@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -6241,11 +6676,6 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - p-map@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" @@ -6253,12 +6683,20 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== +p-retry@^4.5.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" + integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== + dependencies: + "@types/retry" "^0.12.0" + retry "^0.13.1" + +p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== dependencies: - retry "^0.12.0" + p-finally "^1.0.0" p-try@^2.0.0: version "2.2.0" @@ -6275,7 +6713,7 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" -param-case@^3.0.3: +param-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== @@ -6312,7 +6750,7 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-numeric-range@^1.2.0: +parse-numeric-range@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== @@ -6340,16 +6778,6 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -6365,16 +6793,11 @@ 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= -path-is-inside@1.0.2, path-is-inside@^1.0.2: +path-is-inside@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -6407,40 +6830,21 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - pkg-dir@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -6448,7 +6852,7 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" -pkg-up@3.1.0: +pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== @@ -6461,7 +6865,7 @@ plugin-image-zoom@ataft/plugin-image-zoom: dependencies: medium-zoom "^1.0.4" -portfinder@^1.0.26: +portfinder@^1.0.28: version "1.0.28" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== @@ -6470,11 +6874,6 @@ portfinder@^1.0.26: debug "^3.1.1" mkdirp "^0.5.5" -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - postcss-calc@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" @@ -6493,6 +6892,16 @@ postcss-colormin@^5.2.0: colord "^2.0.1" postcss-value-parser "^4.1.0" +postcss-colormin@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.1.tgz#6e444a806fd3c578827dbad022762df19334414d" + integrity sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.1.0" + postcss-convert-values@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz#4ec19d6016534e30e3102fdf414e753398645232" @@ -6500,6 +6909,13 @@ postcss-convert-values@^5.0.1: dependencies: postcss-value-parser "^4.1.0" +postcss-convert-values@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059" + integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg== + dependencies: + postcss-value-parser "^4.1.0" + postcss-discard-comments@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" @@ -6527,14 +6943,14 @@ postcss-discard-unused@^5.0.1: dependencies: postcss-selector-parser "^6.0.5" -postcss-loader@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-5.3.0.tgz#1657f869e48d4fdb018a40771c235e499ee26244" - integrity sha512-/+Z1RAmssdiSLgIZwnJHwBMnlABPgF7giYzTN2NOfr9D21IJZ4mQC1R2miwp80zno9M4zMD/umGI8cR+2EL5zw== +postcss-loader@^6.1.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.0.tgz#714370a3f567141cf4cadcdf9575f5234d186bc5" + integrity sha512-H9hv447QjQJVDbHj3OUdciyAXY3v5+UDduzEytAlZCVHCpNAAg/mCSwhYYqZr9BiGYhmYspU8QXxZwiHTLn3yA== dependencies: cosmiconfig "^7.0.0" klona "^2.0.4" - semver "^7.3.4" + semver "^7.3.5" postcss-merge-idents@^5.0.1: version "5.0.1" @@ -6553,6 +6969,14 @@ postcss-merge-longhand@^5.0.2: postcss-value-parser "^4.1.0" stylehacks "^5.0.1" +postcss-merge-longhand@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz#41f4f3270282ea1a145ece078b7679f0cef21c32" + integrity sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw== + dependencies: + postcss-value-parser "^4.1.0" + stylehacks "^5.0.1" + postcss-merge-rules@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz#d6e4d65018badbdb7dcc789c4f39b941305d410a" @@ -6562,7 +6986,17 @@ postcss-merge-rules@^5.0.2: caniuse-api "^3.0.0" cssnano-utils "^2.0.1" postcss-selector-parser "^6.0.5" - vendors "^1.0.3" + vendors "^1.0.3" + +postcss-merge-rules@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz#b5cae31f53129812a77e3eb1eeee448f8cf1a1db" + integrity sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + cssnano-utils "^2.0.1" + postcss-selector-parser "^6.0.5" postcss-minify-font-values@^5.0.1: version "5.0.1" @@ -6580,6 +7014,15 @@ postcss-minify-gradients@^5.0.2: cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" +postcss-minify-gradients@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e" + integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q== + dependencies: + colord "^2.9.1" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + postcss-minify-params@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c" @@ -6591,6 +7034,16 @@ postcss-minify-params@^5.0.1: postcss-value-parser "^4.1.0" uniqs "^2.0.0" +postcss-minify-params@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz#1b644da903473fbbb18fbe07b8e239883684b85c" + integrity sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg== + dependencies: + alphanum-sort "^1.0.2" + browserslist "^4.16.6" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + postcss-minify-selectors@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" @@ -6687,6 +7140,15 @@ postcss-normalize-url@^5.0.2: normalize-url "^6.0.1" postcss-value-parser "^4.1.0" +postcss-normalize-url@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz#42eca6ede57fe69075fab0f88ac8e48916ef931c" + integrity sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg== + dependencies: + is-absolute-url "^3.0.3" + normalize-url "^6.0.1" + postcss-value-parser "^4.1.0" + postcss-normalize-whitespace@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" @@ -6733,12 +7195,12 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-sort-media-queries@^3.10.11: - version "3.11.12" - resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-3.11.12.tgz#bfc449fadedfe2765ca4566c30b24694635ad182" - integrity sha512-PNhEOWR/btZ0bNNRqqdW4TWxBPQ1mu2I6/Zpco80vBUDSyEjtduUAorY0Vm68rvDlGea3+sgEnQ36iQ1A/gG8Q== +postcss-sort-media-queries@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-4.1.0.tgz#c2ca1374189259049dc039a9e95ba72a31b57bc7" + integrity sha512-pPiw94cMOqGFSlp4QGzOKrhYr8O3VyMNQnb7qlGM25H4EDEii3iKtIUMoFe5gKiCEAt/Iyk2ah47eoRhGqSBGA== dependencies: - sort-css-media-queries "1.5.4" + sort-css-media-queries "2.0.4" postcss-svgo@^5.0.2: version "5.0.2" @@ -6748,6 +7210,14 @@ postcss-svgo@^5.0.2: postcss-value-parser "^4.1.0" svgo "^2.3.0" +postcss-svgo@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" + integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== + dependencies: + postcss-value-parser "^4.1.0" + svgo "^2.7.0" + postcss-unique-selectors@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc" @@ -6757,6 +7227,14 @@ postcss-unique-selectors@^5.0.1: postcss-selector-parser "^6.0.5" uniqs "^2.0.0" +postcss-unique-selectors@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz#5d6893daf534ae52626708e0d62250890108c0c1" + integrity sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" @@ -6767,7 +7245,7 @@ postcss-zindex@^5.0.1: resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-5.0.1.tgz#c585724beb69d356af8c7e68847b28d6298ece03" integrity sha512-nwgtJJys+XmmSGoYCcgkf/VczP8Mp/0OfSv3v0+fw0uABY4yxw+eFs0Xp9nAZHIKnS5j+e9ywQ+RD+ONyvl5pA== -postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.5: +postcss@^8.2.15, postcss@^8.3.5: version "8.3.6" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== @@ -6776,6 +7254,15 @@ postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.5: nanoid "^3.1.23" source-map-js "^0.6.2" +postcss@^8.3.11, postcss@^8.3.7: + version "8.3.11" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" + integrity sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA== + dependencies: + nanoid "^3.1.30" + picocolors "^1.0.0" + source-map-js "^0.6.2" + prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -6786,13 +7273,13 @@ pretty-bytes@^5.3.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-error@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e" - integrity sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ== +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== dependencies: lodash "^4.17.20" - renderkid "^2.0.6" + renderkid "^3.0.0" pretty-time@^1.1.0: version "1.1.0" @@ -6821,10 +7308,10 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prompts@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" - integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== +prompts@^2.4.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== dependencies: kleur "^3.0.3" sisteransi "^1.0.5" @@ -6837,7 +7324,7 @@ prompts@^2.4.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.5.0, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -6861,11 +7348,6 @@ proxy-addr@~2.0.5: forwarded "0.2.0" ipaddr.js "1.9.1" -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -6916,11 +7398,6 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -6973,35 +7450,35 @@ react-base16-styling@^0.6.0: lodash.flow "^3.3.0" pure-color "^1.2.0" -react-dev-utils@^11.0.1: - version "11.0.4" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" - integrity sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A== - dependencies: - "@babel/code-frame" "7.10.4" - address "1.1.2" - browserslist "4.14.2" - chalk "2.4.2" - cross-spawn "7.0.3" - detect-port-alt "1.1.6" - escape-string-regexp "2.0.0" - filesize "6.1.0" - find-up "4.1.0" - fork-ts-checker-webpack-plugin "4.1.6" - global-modules "2.0.0" - globby "11.0.1" - gzip-size "5.1.1" - immer "8.0.1" - is-root "2.1.0" - loader-utils "2.0.0" +react-dev-utils@12.0.0-next.47: + version "12.0.0-next.47" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.0-next.47.tgz#e55c31a05eb30cfd69ca516e8b87d61724e880fb" + integrity sha512-PsE71vP15TZMmp/RZKOJC4fYD5Pvt0+wCoyG3QHclto0d4FyIJI78xGRICOOThZFROqgXYlZP6ddmeybm+jO4w== + dependencies: + "@babel/code-frame" "^7.10.4" + address "^1.1.2" + browserslist "^4.16.5" + chalk "^2.4.2" + cross-spawn "^7.0.3" + detect-port-alt "^1.1.6" + escape-string-regexp "^2.0.0" + filesize "^6.1.0" + find-up "^4.1.0" + fork-ts-checker-webpack-plugin "^6.0.5" + global-modules "^2.0.0" + globby "^11.0.1" + gzip-size "^5.1.1" + immer "^9.0.6" + is-root "^2.1.0" + loader-utils "^2.0.0" open "^7.0.2" - pkg-up "3.1.0" - prompts "2.4.0" - react-error-overlay "^6.0.9" - recursive-readdir "2.2.2" - shell-quote "1.7.2" - strip-ansi "6.0.0" - text-table "0.2.0" + pkg-up "^3.1.0" + prompts "^2.4.0" + react-error-overlay "7.0.0-next.54+1465357b" + recursive-readdir "^2.2.2" + shell-quote "^1.7.2" + strip-ansi "^6.0.0" + text-table "^0.2.0" react-dom@^17.0.1: version "17.0.2" @@ -7012,6 +7489,11 @@ react-dom@^17.0.1: object-assign "^4.1.1" scheduler "^0.20.2" +react-error-overlay@7.0.0-next.54+1465357b: + version "7.0.0-next.54" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-7.0.0-next.54.tgz#c1eb5ab86aee15e9552e6d97897b08f2bd06d140" + integrity sha512-b96CiTnZahXPDNH9MKplvt5+jD+BkxDw7q5R3jnkUXze/ux1pLv32BBZmlj0OfCUeMqyz4sAmF+0ccJGVMlpXw== + react-error-overlay@^6.0.9: version "6.0.9" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" @@ -7059,13 +7541,6 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" -react-loadable@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/react-loadable/-/react-loadable-5.5.0.tgz#582251679d3da86c32aae2c8e689c59f1196d8c4" - integrity sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg== - dependencies: - prop-types "^15.5.0" - react-router-config@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" @@ -7124,7 +7599,7 @@ react@^17.0.1: loose-envify "^1.1.0" object-assign "^4.1.1" -readable-stream@^2.0.1, readable-stream@^2.0.2: +readable-stream@^2.0.1: 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== @@ -7146,15 +7621,6 @@ readable-stream@^3.0.6, readable-stream@^3.1.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -7162,10 +7628,10 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -reading-time@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.4.0.tgz#53fd822ceed6ca44e07497b3e975af1712ba5a86" - integrity sha512-0I9aP583rqQhm6T6Y+pYgYaM4w649VHgQPC24xSWXpn/4qRs08Zu6KgXRf0da6/k7IHoC6idm76fU6vz4mmzHQ== +reading-time@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" + integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== rechoir@^0.6.2: version "0.6.2" @@ -7174,7 +7640,7 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" -recursive-readdir@2.2.2: +recursive-readdir@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== @@ -7188,7 +7654,14 @@ regenerate-unicode-properties@^8.2.0: dependencies: regenerate "^1.4.0" -regenerate@^1.4.0: +regenerate-unicode-properties@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" + integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.0, regenerate@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== @@ -7205,14 +7678,6 @@ regenerator-transform@^0.14.2: dependencies: "@babel/runtime" "^7.8.4" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - regexp.prototype.flags@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" @@ -7221,6 +7686,18 @@ regexp.prototype.flags@^1.2.0: call-bind "^1.0.2" define-properties "^1.1.3" +regexpu-core@^4.5.4: + version "4.8.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0" + integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^9.0.0" + regjsgen "^0.5.2" + regjsparser "^0.7.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + regexpu-core@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" @@ -7247,7 +7724,7 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" -regjsgen@^0.5.1: +regjsgen@^0.5.1, regjsgen@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== @@ -7259,6 +7736,13 @@ regjsparser@^0.6.4: dependencies: jsesc "~0.5.0" +regjsparser@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968" + integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== + dependencies: + jsesc "~0.5.0" + rehype-parse@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-6.0.2.tgz#aeb3fdd68085f9f796f1d3137ae2b85a98406964" @@ -7296,6 +7780,20 @@ remark-footnotes@2.0.0: resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== +remark-mdx-remove-exports@^1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/remark-mdx-remove-exports/-/remark-mdx-remove-exports-1.6.22.tgz#9e34f3d02c9c54b02ca0a1fde946449338d06ecb" + integrity sha512-7g2uiTmTGfz5QyVb+toeX25frbk1Y6yd03RXGPtqx0+DVh86Gb7MkNYbk7H2X27zdZ3CQv1W/JqlFO0Oo8IxVA== + dependencies: + unist-util-remove "2.0.0" + +remark-mdx-remove-imports@^1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/remark-mdx-remove-imports/-/remark-mdx-remove-imports-1.6.22.tgz#79f711c95359cff437a120d1fbdc1326ec455826" + integrity sha512-lmjAXD8Ltw0TsvBzb45S+Dxx7LTJAtDaMneMAv8LAUIPEyYoKkmGbmVsiF0/pY6mhM1Q16swCmu1TN+ie/vn/A== + dependencies: + unist-util-remove "2.0.0" + remark-mdx@1.6.22: version "1.6.22" resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" @@ -7339,28 +7837,18 @@ remark-squeeze-paragraphs@4.0.0: dependencies: mdast-squeeze-paragraphs "^4.0.0" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" - integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== dependencies: css-select "^4.1.3" dom-converter "^0.2.0" htmlparser2 "^6.1.0" lodash "^4.17.21" - strip-ansi "^3.0.1" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + strip-ansi "^6.0.1" -repeat-string@^1.5.4, repeat-string@^1.6.1: +repeat-string@^1.5.4: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= @@ -7380,28 +7868,11 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" integrity sha1-rW8wwTvs15cBDEaK+ndcDAprR/o= -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -7412,11 +7883,6 @@ resolve-pathname@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - resolve@^1.1.6, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.3.2: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" @@ -7432,28 +7898,16 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -7478,20 +7932,19 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" -rtl-detect@^1.0.3: +rtl-detect@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.0.4.tgz#40ae0ea7302a150b96bc75af7d749607392ecac6" integrity sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ== -rtlcss@^3.1.2: - version "3.3.0" - resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.3.0.tgz#fa9d29b071a863fe959704da6a93de3076aeeca4" - integrity sha512-XZ2KEatH2nU5yPlts1Wu8SGIuZ3ndN025HQX5MqtUCUiOn5WkCDbcpJ2VJWjpuFmM2cUTQ1xtH21fhMCSseI5A== +rtlcss@^3.3.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.5.0.tgz#c9eb91269827a102bac7ae3115dd5d049de636c3" + integrity sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A== dependencies: - chalk "^4.1.0" find-up "^5.0.0" - mkdirp "^1.0.4" - postcss "^8.2.4" + picocolors "^1.0.0" + postcss "^8.3.11" strip-json-comments "^3.1.1" run-parallel@^1.1.9: @@ -7501,12 +7954,12 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^6.6.3: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== +rxjs@^7.1.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" + integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== dependencies: - tslib "^1.9.0" + tslib "~2.1.0" safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" @@ -7518,13 +7971,6 @@ safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -7543,14 +7989,14 @@ scheduler@^0.20.2: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" schema-utils@^2.6.5: version "2.7.1" @@ -7570,6 +8016,16 @@ schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" + integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.8.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.0.0" + section-matter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" @@ -7583,7 +8039,7 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^1.10.8: +selfsigned@^1.10.11: version "1.10.11" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== @@ -7602,7 +8058,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: +semver@^5.4.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -7612,7 +8068,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.4, semver@^7.3.5: +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -7689,21 +8145,6 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -7726,13 +8167,6 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -7740,20 +8174,15 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== +shell-quote@^1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" + integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== shelljs@^0.8.4: version "0.8.4" @@ -7773,7 +8202,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -7807,48 +8236,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.2.tgz#4bc48c2da9ce4769f19dc723396b50f5c12330a3" - integrity sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ== - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.5.3" - sockjs@^0.3.21: version "0.3.21" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" @@ -7858,10 +8245,10 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" -sort-css-media-queries@1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-1.5.4.tgz#24182b12002a13d01ba943ddf74f5098d7c244ce" - integrity sha512-YP5W/h4Sid/YP7Lp87ejJ5jP13/Mtqt2vx33XyhO+IAugKlufRPbOrPlIiEUuxmpNBSBd3EeeQpFhdu3RfI2Ag== +sort-css-media-queries@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.0.4.tgz#b2badfa519cb4a938acbc6d3aaa913d4949dc908" + integrity sha512-PAIsEK/XupCQwitjv7XxoMvYhT7EAfyzI3hsy/MyDgTvc+Ft55ctdkctJLOy6cQejaIC+zjpUL4djFVm2ivOOw== source-list-map@^2.0.0: version "2.0.1" @@ -7873,18 +8260,7 @@ source-map-js@^0.6.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@~0.5.12, source-map-support@~0.5.19: +source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -7897,7 +8273,7 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -7952,13 +8328,6 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -7974,14 +8343,6 @@ state-toggle@^1.0.0: resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" @@ -7994,7 +8355,7 @@ std-env@^2.2.1: dependencies: ci-info "^3.0.0" -string-width@^3.0.0, string-width@^3.1.0: +string-width@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== @@ -8051,26 +8412,33 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@6.0.0, strip-ansi@^6.0.0: +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: ansi-regex "^5.0.0" -strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - ansi-regex "^2.0.0" + ansi-regex "^5.0.1" -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== +strip-ansi@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== dependencies: - ansi-regex "^4.1.0" + ansi-regex "^6.0.1" strip-bom-string@^1.0.0: version "1.0.0" @@ -8082,11 +8450,6 @@ strip-comments@^2.0.1: resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -8124,13 +8487,6 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -8182,6 +8538,19 @@ svgo@^2.3.0: csso "^4.2.0" stable "^0.1.8" +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + tapable@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -8219,14 +8588,16 @@ terser-webpack-plugin@^5.1.3: source-map "^0.6.1" terser "^5.7.2" -terser@^4.6.3: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== +terser-webpack-plugin@^5.2.4: + version "5.2.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz#ce65b9880a0c36872555c4874f45bbdb02ee32c9" + integrity sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g== dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + jest-worker "^27.0.6" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + terser "^5.7.2" terser@^5.0.0, terser@^5.7.2: version "5.7.2" @@ -8237,7 +8608,7 @@ terser@^5.0.0, terser@^5.7.2: source-map "~0.7.2" source-map-support "~0.5.19" -text-table@0.2.0, text-table@^0.2.0: +text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= @@ -8267,26 +8638,11 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - to-readable-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -8294,16 +8650,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - toidentifier@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" @@ -8341,16 +8687,16 @@ ts-essentials@^2.0.3: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0: +tslib@^2.0.3, tslib@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + type-fest@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" @@ -8409,6 +8755,11 @@ unicode-canonical-property-names-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + unicode-match-property-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" @@ -8417,16 +8768,34 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + unicode-property-aliases-ecmascript@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + unified@9.2.0: version "9.2.0" resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" @@ -8450,16 +8819,6 @@ unified@^8.4.2: trough "^1.0.0" vfile "^4.0.0" -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" @@ -8499,6 +8858,13 @@ unist-util-remove-position@^2.0.0: dependencies: unist-util-visit "^2.0.0" +unist-util-remove@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.0.0.tgz#32c2ad5578802f2ca62ab808173d505b2c898488" + integrity sha512-HwwWyNHKkeg/eXRnE11IpzY8JT55JNM1YCwwU9YNCnfzk6s8GhPXrVBBZWiwLeATJbI7euvoGSzcy9M29UeW3g== + dependencies: + unist-util-is "^4.0.0" + unist-util-remove@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" @@ -8545,15 +8911,7 @@ unquote@~1.1.1: resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1, upath@^1.2.0: +upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== @@ -8585,11 +8943,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - url-loader@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" @@ -8606,14 +8959,6 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.4.3, url-parse@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" - integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -8641,11 +8986,6 @@ use-latest@^1.0.0: dependencies: use-isomorphic-layout-effect "^1.0.0" -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -8676,7 +9016,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -8719,16 +9059,16 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" -wait-on@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-5.3.0.tgz#584e17d4b3fe7b46ac2b9f8e5e102c005c2776c7" - integrity sha512-DwrHrnTK+/0QFaB9a8Ol5Lna3k7WvUR4jzSKmz0YaPBpuN2sACyiPVKVfj6ejnjcajAcvn3wlbTyMIn9AZouOg== +wait-on@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7" + integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw== dependencies: axios "^0.21.1" - joi "^17.3.0" + joi "^17.4.0" lodash "^4.17.21" minimist "^1.2.5" - rxjs "^6.6.3" + rxjs "^7.1.0" watchpack@^2.2.0: version "2.2.0" @@ -8770,63 +9110,47 @@ webpack-bundle-analyzer@^4.4.2: sirv "^1.0.7" ws "^7.3.1" -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== +webpack-dev-middleware@^5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.2.2.tgz#eb5193faa5479ca1086b9f7bed68b89c731bff62" + integrity sha512-DjZyYrsHhkikAFNvSNKrpnziXukU1EChFAh9j4LAm6ndPLPW8cN0KhM7T+RAiOqsQ6ABfQ8hoKIs9IWMTjov+w== dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" + colorette "^2.0.10" + memfs "^3.2.2" + mime-types "^2.1.31" range-parser "^1.2.1" - webpack-log "^2.0.0" + schema-utils "^4.0.0" -webpack-dev-server@^3.11.2: - version "3.11.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" - integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== +webpack-dev-server@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.5.0.tgz#614b5112cfa4730a4801bb4ddebb3be5b0d70497" + integrity sha512-Ss4WptsUjYa+3hPI4iYZYEc8FrtnfkaPrm5WTjk9ux5kiCS718836srs0ppKMHRaCHP5mQ6g4JZGcfDdGbCjpQ== dependencies: - ansi-html "0.0.7" + ansi-html-community "^0.0.8" bonjour "^3.5.0" - chokidar "^2.1.8" + chokidar "^3.5.2" + colorette "^2.0.10" compression "^1.7.4" connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" + del "^6.0.0" express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.0" + internal-ip "^6.2.0" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + portfinder "^1.0.28" + schema-utils "^3.1.0" + selfsigned "^1.10.11" serve-index "^1.9.1" sockjs "^0.3.21" - sockjs-client "^1.5.0" spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" + strip-ansi "^7.0.0" url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" + webpack-dev-middleware "^5.2.1" + ws "^8.1.0" webpack-merge@^5.7.3, webpack-merge@^5.8.0: version "5.8.0" @@ -8844,15 +9168,15 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" - integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw== +webpack-sources@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.2.tgz#d88e3741833efec57c4c789b6010db9977545260" + integrity sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw== -webpack@^5.40.0: - version "5.52.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.52.0.tgz#88d997c2c3ebb62abcaa453d2a26e0fd917c71a3" - integrity sha512-yRZOat8jWGwBwHpco3uKQhVU7HYaNunZiJ4AkAVQkPCUGoZk/tiIXiwG+8HIy/F+qsiZvSOa+GLQOj3q5RKRYg== +webpack@^5.61.0: + version "5.64.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.64.1.tgz#fd59840c16f04fe315f2b2598a85026f12dfa1bb" + integrity sha512-b4FHmRgaaAjP+aVOVz41a9Qa5SmkUPQ+u8FntTQ1roPHahSComB6rXnLwc976VhUY4CqTaLu5mCswuHiNhOfVw== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.50" @@ -8863,8 +9187,8 @@ webpack@^5.40.0: acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.0" - es-module-lexer "^0.7.1" + enhanced-resolve "^5.8.3" + es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -8877,7 +9201,7 @@ webpack@^5.40.0: tapable "^2.1.1" terser-webpack-plugin "^5.1.3" watchpack "^2.2.0" - webpack-sources "^3.2.0" + webpack-sources "^3.2.2" webpackbar@^5.0.0-3: version "5.0.0-3" @@ -8927,12 +9251,7 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9, which@^1.3.1: +which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -9117,22 +9436,6 @@ workbox-window@6.2.4, workbox-window@^6.1.1: "@types/trusted-types" "^2.0.2" workbox-core "6.2.4" -worker-rpc@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" - integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== - dependencies: - microevent.ts "~0.1.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -9157,18 +9460,16 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - ws@^7.3.1: version "7.5.4" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.4.tgz#56bfa20b167427e138a7795de68d134fe92e21f9" integrity sha512-zP9z6GXm6zC27YtspwH99T3qTG7bBFv2VIkeHstMLrLlDJuzA7tQ5ls3OJ1hOGGCzTQPniNJoHXIAOS0Jljohg== +ws@^8.1.0: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" @@ -9186,11 +9487,6 @@ xtend@^4.0.0, xtend@^4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -9201,40 +9497,16 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0, yaml@^1.10.2: +yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - yargs@^17.1.1: version "17.1.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba" diff --git a/gruntfile.js b/gruntfile.js index 3c5e79ae..d0b8b7d9 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -3,8 +3,8 @@ module.exports = function (grunt) { // define source files and their destinations uglify: { files: { - src: ['outs/**/*.js'], - dest: 'outs', + src: ['out/**/*.js'], + dest: 'out', expand: true, cwd: '.', rename: (_, src) => src, diff --git a/icons/icon.icns b/icons/icon.icns deleted file mode 100644 index 484ba8e8..00000000 Binary files a/icons/icon.icns and /dev/null differ diff --git a/icons/icon.ico b/icons/icon.ico deleted file mode 100644 index 71d87f00..00000000 Binary files a/icons/icon.ico and /dev/null differ diff --git a/icons/icon.png b/icons/icon.png deleted file mode 100644 index b87a2472..00000000 Binary files a/icons/icon.png and /dev/null differ diff --git a/icons/icon.svg b/icons/icon.svg deleted file mode 100644 index c8a73232..00000000 --- a/icons/icon.svg +++ /dev/null @@ -1,195 +0,0 @@ - - - - diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 00000000..8cbf8940 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,5 @@ +/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', +}; \ No newline at end of file diff --git a/lerna.json b/lerna.json deleted file mode 100644 index ab0a2810..00000000 --- a/lerna.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "packages": ["packages/*"], - "npmCLient": "yarn", - "version": "0.0.0" -} diff --git a/lib/files.json b/lib/files.json new file mode 100644 index 00000000..7f9d591a --- /dev/null +++ b/lib/files.json @@ -0,0 +1,272 @@ +[ + { + "extensions": ["js"], + "type": "JavaScript", + "thumbnail": "extension/javascript.svg" + }, + { + "extensions": ["ts"], + "type": "TypeScript", + "thumbnail": "extension/typescript.svg" + }, + { + "extensions": ["html", "htm", "xhtml", "html_vm", "asp"], + "type": "HyperText Markup Language", + "thumbnail": "extension/html.svg" + }, + { + "extensions": ["pdf"], + "type": "Portable Document Format", + "thumbnail": "extension/pdf.svg" + }, + { + "extensions": ["doc", "docb", "docm", "dot", "dotm", "docx", "rtf"], + "type": "Word Document", + "thumbnail": "extension/word.svg" + }, + { + "extensions": ["xlsx", "xls", "xlsb", "xls", "ods", "fods", "csv"], + "type": "Excel Document", + "thumbnail": "extension/excel.svg" + }, + { + "extensions": ["pot", "potm", "potx", "ppam", "pps", "ppsm", "ppsx", "ppt", "pptn", "pptx"], + "type": "Powerpoint Document", + "thumbnail": "extension/powerpoint.svg" + }, + { + "extensions": ["7z", "brotli", "bzip2", "gz", "gzip", "rar", "tgz", "xz", "zip"], + "type": "Archive", + "thumbnail": "extension/zip.svg" + }, + { + "extensions": ["accdb", "db", "db3", "mdb", "pdb", "pgsql", "pkb", "pks", "postgres", "psql", "sql", "sqlite", "sqlite3"], + "type": "Database", + "thumbnail": "extension/database.svg" + }, + { + "extensions": ["bat"], + "type": "Batch", + "thumbnail": "extension/bat.svg" + }, + { + "extensions": ["exe"], + "type": "Executable", + "thumbnail": "extension/exe.svg" + }, + { + "extensions": ["cc", "cpp", "cxx", "c++", "cp", "mm", "mii", "ii"], + "type": "C++ Program", + "thumbnail": "extension/cpp.svg" + }, + { + "extensions": ["c"], + "type": "C Program", + "thumbnail": "extension/c.svg" + }, + { + "extensions": ["h"], + "type": "C Header File", + "thumbnail": "extension/h.svg" + }, + { + "extensions": ["py", "py3"], + "type": "Python Program", + "thumbnail": "extension/python.svg" + }, + { + "extensions": ["pyc", "pylintrc", "python-version"], + "type": "Python Program", + "thumbnail": "extension/python-misc.svg" + }, + { + "extensions": ["txt"], + "type": "Text Document", + "thumbnail": "extension/txt.svg" + }, + { + "extensions": ["jpg", "png", "gif", "bmp", "jpeg", "jpe", "jif", "jfif", "jfi", "webp", "tiff", "tif", "ico", "svg", "webp"], + "type": "Image", + "thumbnail": "extension/image.svg" + }, + { + "extensions": ["mp4", "webm", "mpg", "mp2", "mpeg", "mpe", "mpv", "ocg", "m4p", "m4v", "avi", "wmv", "mov", "qt", "flv", "swf"], + "type": "Video", + "thumbnail": "extension/video.svg" + }, + { + "extensions": ["deb", "msi", "snap"], + "type": "Installer", + "thumbnail": "extension/exe.svg" + }, + { + "extensions": ["iso"], + "type": "Disk Image File", + "thumbnail": "extension/disc.svg" + }, + { + "extensions": ["dockerfile", "dockerignore"], + "fileNames": [ + "dockerfile", + "dockerfile.prod", + "dockerfile.production", + "dockerfile.alpha", + "dockerfile.beta", + "dockerfile.stage", + "dockerfile.staging", + "dockerfile.dev", + "dockerfile.development", + "dockerfile.local", + "dockerfile.test", + "dockerfile.testing", + "dockerfile.ci", + "dockerfile.web", + "dockerfile.worker", + "docker-compose.yml", + "docker-compose.override.yml", + "docker-compose.prod.yml", + "docker-compose.production.yml", + "docker-compose.alpha.yml", + "docker-compose.beta.yml", + "docker-compose.stage.yml", + "docker-compose.staging.yml", + "docker-compose.dev.yml", + "docker-compose.development.yml", + "docker-compose.local.yml", + "docker-compose.test.yml", + "docker-compose.testing.yml", + "docker-compose.ci.yml", + "docker-compose.web.yml", + "docker-compose.worker.yml", + "docker-compose.yaml", + "docker-compose.override.yaml", + "docker-compose.prod.yaml", + "docker-compose.production.yaml", + "docker-compose.alpha.yaml", + "docker-compose.beta.yaml", + "docker-compose.stage.yaml", + "docker-compose.staging.yaml", + "docker-compose.dev.yaml", + "docker-compose.development.yaml", + "docker-compose.local.yaml", + "docker-compose.test.yaml", + "docker-compose.testing.yaml", + "docker-compose.ci.yaml", + "docker-compose.web.yaml", + "docker-compose.worker.yaml" + ], + "type": "Docker Image", + "thumbnail": "extension/docker.svg" + }, + { + "extensions": ["md", "markdown", "rst"], + "type": "Markdown", + "thumbnail": "extension/markdown.svg" + }, + { + "extensions": ["json", "tsbuildinfo", "json5", "jsonl", "ndjson"], + "type": "JavaScript Object Notation", + "thumbnail": "extension/json.svg" + }, + { + "type": "Git", + "fileNames": [".gitignore", ".gitignore_global", ".gitconfig", ".gitattributes", ".gitmodules", ".gitkeep", "git-history"], + "thumbnail": "extension/git.svg" + }, + { + "extensions": ["yml", "yaml"], + "type": "Yet Anoter Markup Language", + "thumbnail": "extension/yaml.svg" + }, + { + "fileNames": [".prettierignore", ".prettierrc.json"], + "type": "Prettier configuration file", + "thumbnail": "extension/prettier.svg" + }, + { + "fileNames": ["binding.gyp"], + "type": "Node JS C++ Binding", + "thumbnail": "extension/python.svg" + }, + { + "fileNames": ["LICENSE", "LICENSE.md", "LICENSE.txt"], + "type": "License", + "thumbnail": "extension/certificate.svg" + }, + { + "fileNames": [ + "copying", + "copying.md", + "copying.txt", + "copyright", + "copyright.txt", + "copyright.md", + "license", + "license.md", + "license.txt", + "licence", + "licence.md", + "licence.txt" + ], + "extensions": ["cer", "cert", "crt"], + "type": "Certificate", + "thumbnail": "extension/certificate.svg" + }, + { + "extensions": [ + "ini", + "dlc", + "dll", + "config", + "conf", + "properties", + "prop", + "settings", + "option", + "props", + "toml", + "prefs", + "sln.dotsettings", + "sln.dotsettings.user", + "cfg" + ], + "fileNames": [".jshintignore", ".buildignore", ".mrconfig", ".yardopts", "manifest.mf", ".clang-format", ".clang-tidy"], + "type": "Settings", + "thumbnail": "extension/settings.svg" + }, + { + "type": "Visual Studio", + "extensions": ["csproj", "ruleset", "sln", "suo", "vb", "vbs", "vcxitems", "vcxitems.filters", "vcxproj", "vcxproj.filters"], + "thumbnail": "extension/visualstudio.svg" + }, + { + "extensions": ["go"], + "type": "Go Program", + "thumbnail": "extension/go.svg" + }, + { + "extensions": ["java", "jsp"], + "type": "Java Program", + "thumbnail": "extension/java.svg" + }, + { + "extensions": ["jsx"], + "type": "React Program", + "thumbnail": "extension/react.svg" + }, + { + "extensions": ["tsx"], + "type": "Typescript React Program", + "thumbnail": "extension/react_ts.svg" + }, + { + "extensions": ["psd"], + "type": "Photoshop", + "thumbnail": "extension/psd.svg" + }, + { + "type": "Yarn Package Manager", + "fileNames": [".yarnrc", "yarn.lock", ".yarnclean", ".yarn-integrity", "yarn-error.log", ".yarnrc.yml", ".yarnrc.yaml"], + "thumbnail": "extension/yarn.svg" + } +] diff --git a/lib/folder.json b/lib/folder.json new file mode 100644 index 00000000..3af623ab --- /dev/null +++ b/lib/folder.json @@ -0,0 +1,179 @@ +[ + { + "folderNames": ["document", "documents", "article", "articles", "documentation", "doc", "docs", "post", "posts"], + "thumbnail": "folder/folder-document.svg" + }, + { + "folderNames": ["download", "downloads"], + "thumbnail": "folder/folder-download.svg" + }, + { + "folderNames": ["picture", "pictures", "ico", "icon", "image", "icons", "images", "img", "screenshot", "screenshots"], + "thumbnail": "folder/folder-picture.svg" + }, + { + "folderNames": ["music"], + "thumbnail": "folder/folder-music.svg" + }, + { + "folderNames": ["desktop"], + "thumbnail": "folder/folder-desktop.svg" + }, + { + "folderNames": ["video", "videos"], + "thumbnail": "folder/folder-video.svg" + }, + { + "folderNames": ["home"], + "thumbnail": "folder/folder-home.svg" + }, + { + "folderNames": ["trash"], + "thumbnail": "folder/folder-trash.svg" + }, + { + "folderNames": ["recent", "recents"], + "thumbnail": "folder/folder-recent.svg" + }, + { + "folderNames": ["about"], + "thumbnail": "folder/setting-about.svg" + }, + { + "folderNames": ["appearance"], + "thumbnail": "folder/setting-appearance.svg" + }, + { + "folderNames": ["preference"], + "thumbnail": "folder/setting-preference.svg" + }, + { + "folderNames": ["android"], + "thumbnail": "folder/folder-android.svg" + }, + { + "folderNames": [".git", "git", "patch"], + "type": "Version Control System", + "thumbnail": "folder/folder-git.svg" + }, + { + "folderNames": ["node_modules"], + "type": "Node Package Modules", + "thumbnail": "folder/folder-node.svg" + }, + { + "folderNames": ["bower_components"], + "type": "Bower Package Modules", + "thumbnail": "folder/folder-bower.svg" + }, + { + "folderNames": ["vendor"], + "type": "Vendor" + }, + { + "folderNames": ["webpack"], + "type": "Webpack", + "thumbnail": "folder/folder-webpack.svg" + }, + { + "folderNames": [".github"], + "type": "GitHub Configuration", + "thumbnail": "folder/folder-github.svg" + }, + { + "folderNames": [".husky"], + "type": "Husky Configuration", + "thumbnail": "folder/folder-husky.svg" + }, + { + "folderNames": [".vscode"], + "type": "Visual Studio Code Configuration", + "thumbnail": "folder/folder-vscode.svg" + }, + { + "folderNames": [".vs"], + "type": "Visual Studio Configuration" + }, + { + "folderNames": ["__pycache__"], + "type": "Python Cache", + "thumbnail": "folder/folder-python.svg" + }, + { + "folderNames": [".idea"], + "type": "IntelliJ IDEA Configuration", + "thumbnail": "folder/folder-intellij.svg" + }, + { + "folderNames": ["app", "apps"], + "thumbnail": "folder/folder-app.svg" + }, + { + "folderNames": ["archival", "archive", "archives", "backup", "backups"], + "type": "Archived", + "thumbnail": "folder/folder-archive.svg" + }, + { + "folderNames": ["asset", "assets", "report", "reports", "res", "resources", "resource", "src", "static"], + "type": "Resources", + "thumbnail": "folder/folder-resource.svg" + }, + { + "folderNames": ["backend", "server", "servers"], + "thumbnail": "folder/folder-server.svg" + }, + { + "folderNames": ["bin", "dist", "build", "out", "outs", "release"], + "type": "Packaged Distributions", + "thumbnail": "folder/folder-dist.svg" + }, + + { + "folderNames": ["client", "clients", "frontend", "pwa"], + "thumbnail": "folder/folder-client.svg" + }, + { + "folderNames": ["database", "data", "db", "databases"], + "type": "Database" + }, + { + "folderNames": ["font", "fonts"], + "thumbnail": "folder/folder-font.svg" + }, + { + "folderNames": ["function", "functions", "math"], + "thumbnail": "folder/folder-functions.svg" + }, + { + "folderNames": ["html", "page", "pages", "screen", "screens", "view", "views"], + "thumbnail": "folder/folder-view.svg" + }, + { + "folderNames": ["javascript", "js"], + "thumbnail": "folder/folder-javascript.svg" + }, + { + "folderNames": ["lib", "libraries", "library", "third-party", "vendor", "vendors"], + "thumbnail": "folder/folder-lib.svg" + }, + { + "folderNames": ["project", "projects"], + "thumbnail": "folder/folder-project.svg" + }, + { + "folderNames": ["python", "py"], + "thumbnail": "folder/folder-python.svg" + }, + { + "folderNames": ["script", "scripts"], + "thumbnail": "folder/folder-scripts.svg" + }, + { + "folderNames": ["template", "templates"], + "thumbnail": "folder/folder-template.svg" + }, + { + "folderNames": ["test", "jest", "mocha"], + "thumbnail": "folder/folder-test.svg" + } +] diff --git a/lib/lib.test.ts b/lib/lib.test.ts new file mode 100644 index 00000000..72e3d327 --- /dev/null +++ b/lib/lib.test.ts @@ -0,0 +1,28 @@ +import FileLib from './files.json'; +import FolderLib from './folder.json'; +import fs from 'fs'; +import path from 'path'; +describe('lib', () => { + it('lib files', () => { + for (const category of FileLib) { + if (category.thumbnail) { + const exists = fs.existsSync(path.join(__dirname, '../src/Icon/', category.thumbnail)); + if (!exists) { + console.error(`${category.thumbnail} does not exists`); + } + expect(exists).toBeTruthy(); + } + } + }); + it('lib folder', () => { + for (const category of FolderLib) { + if (category.thumbnail) { + const exists = fs.existsSync(path.join(__dirname, '../src/Icon/', category.thumbnail)); + if (!exists) { + console.error(`${category.thumbnail} does not exist`); + } + expect(exists).toBeTruthy(); + } + } + }); +}); diff --git a/package.json b/package.json index 63c4c81d..1fa6520a 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,8 @@ "description": "Xplorer, a customizable, modern file manager", "version": "0.2.0", "author": "Justin Maximillian Kimlim ", - "main": "outs/src/main.js", "icon": "build/icon.icns", - "private": "true", + "private": false, "homepage": "https://xplorer.vercel.app", "repository": { "type": "git", @@ -17,71 +16,28 @@ "linux" ], "scripts": { - "electron": "electron ./outs/src/main.js", - "start": "yarn compile && yarn sass && yarn electron", - "dev": "yarn compile && concurrently \"yarn compile:watch\" \"yarn sass:watch\" \"yarn copyfiles:watch\" \"yarn electron\"", - "clean": "rimraf outs", - "sass": "sass src/Public/style.scss outs/src/Public/style.css", - "sass:watch": "sass src/Public/style.scss outs/src/Public/style.css -w", + "start": "yarn dev", + "serve": "live-server ./out/src --no-browser", + "dev": "yarn compile && concurrently --kill-others \"yarn compile:watch\" \"yarn sass:watch\" \"yarn serve\" \"tauri dev\"", + "clean": "rimraf out", + "sass": "sass src/Public/style.scss out/src/Public/style.css", + "sass:watch": "node scripts/sass-watcher.js", "docs": "yarn --cwd ./docs start", "pretest": "yarn compile", "test": "jest", "copyfiles": "node scripts/copyfiles", - "copyfiles:watch": "node scripts/ejs-watcher", - "compile": "tsc && yarn sass && yarn copyfiles", - "compile:watch": "tsc -w", + "compile": "webpack && yarn sass && yarn copyfiles", + "compile:watch": "webpack --watch", "crowdin": "crowdin", "crowdin:sync": "yarn --cwd ./docs write-translations && crowdin upload && crowdin download", "lint": "eslint -c .eslintrc.yml --ext .ts ./src", "prettier": "prettier --write src", "grunt": "grunt", - "css:minify": "cleancss --batch --batch-suffix \"\" outs/**/*.css ", + "css:minify": "cleancss --batch --batch-suffix \"\" out/**/*.css ", "prebuild": "yarn compile && yarn grunt && yarn css:minify", - "build": "electron-builder", - "build:win": "electron-builder --win", - "build:linux": "electron-builder --linux", - "build:mac": "electron-builder --mac", - "native_build": "node-gyp rebuild", - "install": "node scripts/install.js", - "postinstall": "patch-package && husky install" - }, - "build": { - "files": [ - "**/*", - "!test/**/*", - "!dist/**/*", - "!patches/**/*", - "!scripts/**/*", - "!docs/**/*", - "!src/**/*", - "!scripts/**/*", - "!paths/**/*", - "!.vscode/**/*", - "!packages/**/*", - "!.github/**/*", - "!.git/**/*" - ], - "directories": { - "buildResources": "icons" - }, - "win": { - "target": [ - "nsis" - ] - }, - "nsis": { - "license": "LICENSE", - "runAfterFinish": true - }, - "linux": { - "target": [ - "AppImage", - "deb" - ] - }, - "appId": "app.vercel.xplorer", - "productName": "Xplorer", - "copyright": "Copyright 2021 Justin Maximillian Kimlim and the Xplorer Contributors" + "build": "tauri build", + "postinstall": "husky install", + "fakefiles": "python scripts/generate-fake-files.py 1000" }, "keywords": [ "Xplorer", @@ -91,70 +47,45 @@ "Folders", "Directory" ], - "workspaces": [ - "packages/*" - ], "license": "Apache-2.0", "devDependencies": { "@crowdin/cli": "^3.6.5", - "@types/ejs": "^3.1.0", - "@types/get-folder-size": "2", - "@types/marked": "^3.0.0", - "@types/mv": "^2.1.2", - "@types/uuid": "^8.3.1", - "@typescript-eslint/eslint-plugin": "^4.30.0", - "@typescript-eslint/parser": "^4.30.0", + "@tauri-apps/cli": "^1.0.0-beta.10", + "@types/jest": "^27.0.2", + "@types/marked": "^4.0.1", + "@typescript-eslint/eslint-plugin": "^5.4.0", + "@typescript-eslint/parser": "^5.4.0", + "buffer": "^6.0.3", "clean-css-cli": "^5.3.3", "concurrently": "^6.2.1", - "electron": "13.1.4", - "electron-builder": "^22.11.7", - "electron-reloader": "^1.2.1", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.3.0", + "cpy": "^8.1.2", + "eslint": "^8.2.0", "grunt": "^1.4.1", "grunt-cli": "^1.4.3", "grunt-contrib-uglify": "^5.0.1", "grunt-contrib-watch": "^1.1.0", "husky": "^7.0.2", "jest": "^27.1.0", - "lerna": "^4.0.0", + "live-server": "^1.2.1", "node-sass": "^6.0.1", "node-watch": "^0.7.1", "patch-package": "^6.4.7", "postinstall-postinstall": "^2.1.0", - "prettier": "2.3.2", + "prettier": "2.4.1", "rimraf": "^3.0.2", - "sass": "1.42.1", - "typescript": "^4.4.2" + "sass": "1.43.4", + "ts-jest": "^27.0.7", + "ts-loader": "^9.2.6", + "typescript": "^4.4.2", + "webpack": "^5.58.2", + "webpack-cli": "^4.9.0" }, "dependencies": { - "@electron/remote": "1.2.1", - "cpy": "^8.1.2", - "ejs": "^3.1.6", - "electron-acrylic-window": "^0.5.8", - "electron-is-dev": "^2.0.0", - "electron-json-storage-sync": "^1.2.0", - "electron-log": "^4.4.1", - "electron-prompt": "^1.7.0", - "electron-updater": "^4.3.9", - "electron-window-state": "^5.0.3", - "fswin": "^3.21.905", - "get-folder-size": "2", + "@tauri-apps/api": "^1.0.0-beta.8", "highlight.js": "^11.2.0", - "is-hidden-file": "1.1.2", "mammoth": "^1.4.18", - "marked": "^3.0.2", - "moment": "^2.29.1", - "mv": "^2.1.1", - "node-disk-info": "^1.3.0", - "node-mv": "^0.1.3", - "platform-folders": "^0.5.4", - "trash": "^7.2.0", - "uuid": "^8.3.2", - "xlsx": "^0.17.1", - "yargs": "^17.2.1" + "marked": "4.0.1", + "xlsx": "^0.17.1" }, - "optionalDependencies": { - "electron-clipboard-ex": "^1.3.3" - } + "optionalDependencies": {} } diff --git a/packages/generator-xplorer-theme/.eslintignore b/packages/generator-xplorer-theme/.eslintignore deleted file mode 100644 index 00c3b2df..00000000 --- a/packages/generator-xplorer-theme/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -**/templates diff --git a/packages/generator-xplorer-theme/.eslintrc.js b/packages/generator-xplorer-theme/.eslintrc.js deleted file mode 100644 index 52480a9c..00000000 --- a/packages/generator-xplorer-theme/.eslintrc.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - plugins: [ - '@typescript-eslint', - ], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - ], -}; \ No newline at end of file diff --git a/packages/generator-xplorer-theme/.gitignore b/packages/generator-xplorer-theme/.gitignore deleted file mode 100644 index de7d60e3..00000000 --- a/packages/generator-xplorer-theme/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -generators \ No newline at end of file diff --git a/packages/generator-xplorer-theme/LICENSE b/packages/generator-xplorer-theme/LICENSE deleted file mode 100644 index 057a4bf2..00000000 --- a/packages/generator-xplorer-theme/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Liviu Grigorescu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/generator-xplorer-theme/README.md b/packages/generator-xplorer-theme/README.md deleted file mode 100644 index 250b1890..00000000 --- a/packages/generator-xplorer-theme/README.md +++ /dev/null @@ -1 +0,0 @@ -## Theme generator for Xplorer diff --git a/packages/generator-xplorer-theme/example/Purple/README.md b/packages/generator-xplorer-theme/example/Purple/README.md deleted file mode 100644 index e344af9f..00000000 --- a/packages/generator-xplorer-theme/example/Purple/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Purple Theme - -This is an example theme generated by the `generator-xplorer-theme`. For more detailed information, please visit [this](https://xplorer.vercel.app/docs/customization/theme/). - -## Development - -To start this on development, run following command: - -```bash -yarn start -``` - -## Production - -To build this theme, run following command and `Purple` will be installed on Xplorer. - -```bash -yarn build -``` diff --git a/packages/generator-xplorer-theme/example/Purple/package.json b/packages/generator-xplorer-theme/example/Purple/package.json deleted file mode 100644 index 14f8049a..00000000 --- a/packages/generator-xplorer-theme/example/Purple/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "purple", - "themePackName": "Purple", - "description": "Purple for Xplorer", - "main": "purple.js", - "themeCategory": "dark", - "version": "0.1.0", - "license": "MIT", - "scripts": { - "start": "xplorer --theme --listen", - "build": "xplorer --register-theme ." - } -} diff --git a/packages/generator-xplorer-theme/example/Purple/purple.js b/packages/generator-xplorer-theme/example/Purple/purple.js deleted file mode 100644 index 1f613d82..00000000 --- a/packages/generator-xplorer-theme/example/Purple/purple.js +++ /dev/null @@ -1,99 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { - value: true, -}); - -const Theme = () => { - const MEDIUM_PURPLE = '#9381FF'; - const MAXIMUM_BLUE_PURPLE = '#B8B8FF'; - const GHOST_WHITE = '#F8F7FF'; - const ANTIQUE_WHITE = '#FFEEDD'; - const UNBLEACHED_SILK = '#FFD8BE'; - - return { - themeCategory: 'dark', - textColor: '#000', - fontSize: '18px', - fontFamily: 'system-ui', - scrollbarTrackBackground: 'rgb(185, 185, 185)', - scrollbarThumbBackground: 'rgb(163, 163, 163)', - scrollbarThumbHoverBackground: '#888', - - sidebarBackground: MAXIMUM_BLUE_PURPLE, - mainBackground: MEDIUM_PURPLE, - topbarBackground: MAXIMUM_BLUE_PURPLE, - - minimizeBackground: '#fbd914', - minimizeColor: '#14141b', - maximizeBackground: '#00ca4e', - maximizeColor: '#14141b', - exitBackground: '#ff4743', - exitColor: '#14141b', - - loadingBar: '#cbccd1', - loader: '#6d94a2', - - tabBackground: GHOST_WHITE, - tabColor: '#000 ', - newTabBackground: GHOST_WHITE, - newTabColor: '#000', - navigatorBackground: 'transparent', - navigatorColor: '#000', - pathNavigatorBackground: GHOST_WHITE, - pathNavigatorColor: '#000', - menuDropdownBackground: GHOST_WHITE, - menuDropdownColor: '#000', - - settingsSidebarBackground: MAXIMUM_BLUE_PURPLE, - settingsMainBackground: MEDIUM_PURPLE, - settingButtonBackground: 'inherit', - settingButtonColor: 'inherit', - - tabsScrollbarTrack: 'rgb(185, 185, 185)', - tabsScrollbarThumb: 'rgb(163, 163, 163)', - tabsScrollbarThumbHover: '#888', - - favoriteBackground: GHOST_WHITE, - favoriteHoverBackground: '#c5ccd2', - favoriteColor: '#000', - pendriveBackground: GHOST_WHITE, - pendriveHoverBackground: '#c5ccd2', - pendriveColor: '#000', - pendriveTotalCapacityBackground: '#eee', - pendriveUsedCapacityBackground: '#8989e2', - - gridBackground: 'transparent', - gridColor: '#000', - selectedGridBorder: 'none', - selectedGridBackground: MAXIMUM_BLUE_PURPLE, - selectedGridColor: '#000', - - gridHoverEffectBackground: `${ANTIQUE_WHITE},${UNBLEACHED_SILK}`, - cardHoverEffectBackground: `${ANTIQUE_WHITE},${UNBLEACHED_SILK}`, - sidebarHoverEffectBackground: `${ANTIQUE_WHITE},${UNBLEACHED_SILK}`, - tabHoverEffectBackground: `${ANTIQUE_WHITE},${UNBLEACHED_SILK}`, - - contextMenuBackground: MAXIMUM_BLUE_PURPLE, - contextMenuColor: 'inherit', - contextMenuSubmenuBackground: MAXIMUM_BLUE_PURPLE, - contextMenuSubmenuColor: 'inherit', - - previewFileBackground: MAXIMUM_BLUE_PURPLE, - previewFileColor: '#000', - previewExitButtonBackground: 'rgb(226, 227, 232)', - previewExitButtonColor: '#000', - previewObjectBackground: '#c3c3c3', - previewObjectColor: 'inherit', - previewObjectTableBorder: '1px solid #ddd', - previewObjectTableRowEvenBackground: '#ddd', - previewObjectTableRowEvenColor: 'inherit', - previewObjectTableRowOddBackground: 'inherit', - previewObjectTableRowOddColor: 'inherit', - - propertiesBackground: '#e0e0e0', - - acrylicEffect: [], - }; -}; -exports.default = Theme; diff --git a/packages/generator-xplorer-theme/example/README.md b/packages/generator-xplorer-theme/example/README.md deleted file mode 100644 index 2c25da7a..00000000 --- a/packages/generator-xplorer-theme/example/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Example of Xplorer custom color theme - -These are examples generated by the `generator-xplorer-theme`. For more detailed information, please visit [this](https://xplorer.vercel.app/docs/customization/theme/). - -## Development - -To start this on development, go into a directory and run following command: - -```bash -yarn start -``` - -## Production - -To build this theme, go into a directory and run following command and the color theme will be installed on Xplorer. - -```bash -yarn build -``` diff --git a/packages/generator-xplorer-theme/example/Sky/README.md b/packages/generator-xplorer-theme/example/Sky/README.md deleted file mode 100644 index 75ad273a..00000000 --- a/packages/generator-xplorer-theme/example/Sky/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Sky Theme - -This is an example theme generated by the `generator-xplorer-theme`. For more detailed information, please visit [this](https://xplorer.vercel.app/docs/customization/theme/). - -## Development - -To start this on development, run following command: - -```bash -yarn start -``` - -## Production - -To build this theme, run following command and `Sky` will be installed on Xplorer. - -```bash -yarn build -``` diff --git a/packages/generator-xplorer-theme/example/Sky/package.json b/packages/generator-xplorer-theme/example/Sky/package.json deleted file mode 100644 index 7ac022f9..00000000 --- a/packages/generator-xplorer-theme/example/Sky/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "sky", - "themePackName": "Sky", - "description": "Sky theme for Xplorer", - "main": "sky.js", - "themeCategory": "dark", - "version": "0.1.0", - "license": "MIT", - "scripts": { - "start": "xplorer --theme --listen", - "build": "xplorer --register-theme ." - } -} diff --git a/packages/generator-xplorer-theme/example/Sky/sky.js b/packages/generator-xplorer-theme/example/Sky/sky.js deleted file mode 100644 index fb3cba6f..00000000 --- a/packages/generator-xplorer-theme/example/Sky/sky.js +++ /dev/null @@ -1,96 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { - value: true, -}); - -const Theme = () => { - const ALICE_BLUE = '#DCEDFF'; - const LIGHT_STEEL_BLUE = '#AFC7EA'; - const POWDER_BLUE = '#BFEAEA'; - return { - themeCategory: 'dark', - textColor: '#000', - fontSize: '18px', - fontFamily: 'system-ui', - scrollbarTrackBackground: 'rgb(185, 185, 185)', - scrollbarThumbBackground: 'rgb(163, 163, 163)', - scrollbarThumbHoverBackground: '#888', - - sidebarBackground: ALICE_BLUE, - mainBackground: LIGHT_STEEL_BLUE, - topbarBackground: ALICE_BLUE, - - minimizeBackground: '#fbd914', - minimizeColor: '#14141b', - maximizeBackground: '#00ca4e', - maximizeColor: '#14141b', - exitBackground: '#ff4743', - exitColor: '#14141b', - - loadingBar: '#cbccd1', - loader: '#6d94a2', - - tabBackground: POWDER_BLUE, - tabColor: '#000 ', - newTabBackground: '#cce0ef', - newTabColor: '#000', - navigatorBackground: 'transparent', - navigatorColor: '#000', - pathNavigatorBackground: POWDER_BLUE, - pathNavigatorColor: '#000', - menuDropdownBackground: POWDER_BLUE, - menuDropdownColor: '#000', - - settingsSidebarBackground: ALICE_BLUE, - settingsMainBackground: LIGHT_STEEL_BLUE, - settingButtonBackground: 'inherit', - settingButtonColor: 'inherit', - - tabsScrollbarTrack: 'rgb(185, 185, 185)', - tabsScrollbarThumb: 'rgb(163, 163, 163)', - tabsScrollbarThumbHover: '#888', - - favoriteBackground: ALICE_BLUE, - favoriteHoverBackground: '#c5ccd2', - favoriteColor: '#000', - pendriveBackground: ALICE_BLUE, - pendriveHoverBackground: '#c5ccd2', - pendriveColor: '#000', - pendriveTotalCapacityBackground: '#eee', - pendriveUsedCapacityBackground: '#8989e2', - - gridBackground: 'transparent', - gridColor: '#000', - selectedGridBorder: LIGHT_STEEL_BLUE, - selectedGridBackground: POWDER_BLUE, - selectedGridColor: '#000', - - gridHoverEffectBackground: `${POWDER_BLUE},${ALICE_BLUE}`, - cardHoverEffectBackground: `${POWDER_BLUE},${ALICE_BLUE}`, - sidebarHoverEffectBackground: `${POWDER_BLUE},${ALICE_BLUE}`, - tabHoverEffectBackground: `${POWDER_BLUE},${ALICE_BLUE}`, - - contextMenuBackground: ALICE_BLUE, - contextMenuColor: 'inherit', - contextMenuSubmenuBackground: POWDER_BLUE, - contextMenuSubmenuColor: 'inherit', - - previewFileBackground: POWDER_BLUE, - previewFileColor: '#000', - previewExitButtonBackground: 'rgb(226, 227, 232)', - previewExitButtonColor: '#000', - previewObjectBackground: POWDER_BLUE, - previewObjectColor: 'inherit', - previewObjectTableBorder: '1px solid #ddd', - previewObjectTableRowEvenBackground: '#ddd', - previewObjectTableRowEvenColor: 'inherit', - previewObjectTableRowOddBackground: 'inherit', - previewObjectTableRowOddColor: 'inherit', - - propertiesBackground: ALICE_BLUE, - - acrylicEffect: [], - }; -}; -exports.default = Theme; diff --git a/packages/generator-xplorer-theme/package.json b/packages/generator-xplorer-theme/package.json deleted file mode 100644 index f7b05e8a..00000000 --- a/packages/generator-xplorer-theme/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "generator-xplorer-theme", - "version": "0.0.0", - "description": "Theme generator for Xplorer", - "private": "true", - "author": "Justin Maximillian Kimlim", - "files": [ - "generators" - ], - "main": "generators/index.js", - "scripts": { - "build": "rimraf generators && tsc && yarn run copydeps && yarn run lint", - "copydeps": "copyfiles src/app/templates/** generators/app --up 2", - "lint": "eslint ./src --ext .js,.ts", - "clean": "rimraf -rf ./generators", - "watch": "tsc --watch" - }, - "dependencies": { - "@crowdin/cli": "^3.7.0", - "@electron/remote": "^2.0.1", - "chalk": "4.1.0", - "electron": "15.0.0", - "electron-acrylic-window": "^0.5.9", - "electron-prompt": "^1.7.0", - "fswin": "^3.21.914", - "jest": "^27.2.1", - "marked": "^3.0.4", - "node-watch": "^0.7.2", - "prettier": "2.4.1", - "xlsx": "^0.17.2", - "yeoman-generator": "4.12.0", - "yosay": "2.0.2" - }, - "devDependencies": { - "@types/marked": "^3.0.1", - "@types/node": "14.14.19", - "@types/yeoman-generator": "4.11.3", - "@types/yosay": "0.0.29", - "@typescript-eslint/eslint-plugin": "4.12.0", - "@typescript-eslint/parser": "4.12.0", - "copyfiles": "2.4.1", - "eslint": "6.6.0", - "onchange": "7.1.0", - "rimraf": "^3.0.2", - "tsc-watch": "4.2.9", - "typescript": "4.1.3", - "yeoman-assert": "3.1.0", - "yeoman-test": "1.7.0" - } -} diff --git a/packages/generator-xplorer-theme/src/app/index.ts b/packages/generator-xplorer-theme/src/app/index.ts deleted file mode 100644 index a7c186ae..00000000 --- a/packages/generator-xplorer-theme/src/app/index.ts +++ /dev/null @@ -1,90 +0,0 @@ -import Generator from 'yeoman-generator'; -import { green } from 'chalk'; -import yosay from 'yosay'; -interface Arguments { - themeName: string; -} - -interface Answers extends Arguments { - themeCategory: 'light' | 'dark'; - packageName: 'string'; - gitInit: boolean; -} - -module.exports = class extends Generator { - answers: Answers; - constructor(args, opts: Arguments) { - super(args, opts); - this.argument('themeName', { - type: String, - required: false, - description: 'Your theme name', - }); - } - - async prompting() { - this.log( - yosay(`Welcome to ${green("Xplorer's theme package")} generator !`) - ); - const answers = this.answers ?? {}; - if (!this.options['themeName']) { - const { themeName } = await this.prompt([ - { - type: 'input', - name: 'themeName', - message: 'Your theme name:', - loop: false, - validate: (name) => name.length > 0, - }, - ]); - answers['themeName'] = themeName; - answers['packageName'] = themeName - .toLowerCase() - .replace(/[\W]/, '-'); - } else { - answers['packageName'] = this.options['themeName'] - .toLowerCase() - .replace(/[\W]/, '-'); - } - const { themeCategory, gitInit } = await this.prompt([ - { - type: 'list', - name: 'themeCategory', - message: 'Theme category', - choices: [ - { name: 'light', value: 'light' }, - { name: 'dark', value: 'dark' }, - ], - }, - - { - type: 'confirm', - name: 'gitInit', - message: 'Initialize a git repo', - }, - ]); - answers['themeCategory'] = themeCategory; - answers['gitInit'] = gitInit; - this.answers = answers as Answers; - } - - writing() { - const templateData = { - ...this.answers, - ...this.options, - }; - this.fs.copyTpl( - this.templatePath('package.ejs'), - this.destinationPath('package.json'), - templateData - ); - this.fs.copyTpl( - this.templatePath('themes.ejs'), - this.destinationPath(`${this.answers['packageName']}.js`), - templateData - ); - if (this.answers['gitInit']) { - this.spawnCommandSync('git', ['init', '--quiet']); - } - } -}; diff --git a/packages/generator-xplorer-theme/src/app/templates/package.ejs b/packages/generator-xplorer-theme/src/app/templates/package.ejs deleted file mode 100644 index 12bb864a..00000000 --- a/packages/generator-xplorer-theme/src/app/templates/package.ejs +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "<%= packageName %>", - "themePackName": "<%= themeName %>", - "description": "<%= themeName %> for Xplorer", - "main": "<%= packageName %>.js", - "themeCategory": "<%= themeCategory %>", - "version": "0.1.0", - "license": "MIT", - "scripts": { - "start": "xplorer --theme --listen", - "build": "xplorer --register-theme ." - } -} diff --git a/packages/generator-xplorer-theme/src/app/templates/themes.ejs b/packages/generator-xplorer-theme/src/app/templates/themes.ejs deleted file mode 100644 index ac08ba68..00000000 --- a/packages/generator-xplorer-theme/src/app/templates/themes.ejs +++ /dev/null @@ -1,93 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -const Theme = () => { - return{ - "themeCategory": "<%= themeCategory %>", - "textColor": "#000", - "fontSize": "18px", - "fontFamily": "system-ui", - "scrollbarTrackBackground": "rgb(185, 185, 185)", - "scrollbarThumbBackground": "rgb(163, 163, 163)", - "scrollbarThumbHoverBackground": "#888", - - "sidebarBackground": "#cbccd1", - "mainBackground": "#d5d6db", - "topbarBackground": "#cbccd1", - - "minimizeBackground": "#fbd914", - "minimizeColor": "#14141b", - "maximizeBackground": "#00ca4e", - "maximizeColor": "#14141b", - "exitBackground": "#ff4743", - "exitColor": "#14141b", - - "loadingBar": "#cbccd1", - "loader": "#6d94a2", - - "tabBackground": "#e0e0e0", - "tabColor": "#000 ", - "newTabBackground": "#d5d6db", - "newTabColor": "#000", - "navigatorBackground": "transparent", - "navigatorColor": "#000", - "pathNavigatorBackground": "#e0e0e0", - "pathNavigatorColor": "#000", - "menuDropdownBackground": "#e0e0e0", - "menuDropdownColor": "#000", - - "settingsSidebarBackground": "#cbccd1", - "settingsMainBackground": "#d5d6db", - "settingButtonBackground": "inherit", - "settingButtonColor": "inherit", - - "tabsScrollbarTrack": "rgb(185, 185, 185)", - "tabsScrollbarThumb": "rgb(163, 163, 163)", - "tabsScrollbarThumbHover": "#888", - - "favoriteBackground": "#e0e0e0", - "favoriteHoverBackground": "#c5ccd2", - "favoriteColor": "#000", - "pendriveBackground": "#e0e0e0", - "pendriveHoverBackground": "#c5ccd2", - "pendriveColor": "#000", - "pendriveTotalCapacityBackground": "#eee", - "pendriveUsedCapacityBackground": "#8989e2", - - "gridBackground": "#e0e0e0", - "gridColor": "#000", - "selectedGridBorder": "2px solid #1e88e5", - "selectedGridBackground": "#e0e0e0", - "selectedGridColor": "#000", - - "gridHoverEffectBackground": "rgba(187,188,193,255),#c5ccd2", - "cardHoverEffectBackground": "rgba(187,188,193,255),rgba(224,224,224,255)", - "sidebarHoverEffectBackground": "rgba(224,224,224,255),rgba(203,204,209,255)", - "tabHoverEffectBackground": "rgba(224,224,224,255),rgba(203,204,209,255)", - - "contextMenuBackground": "#cbccd1", - "contextMenuColor": "inherit", - "contextMenuSubmenuBackground": "#cbccd1", - "contextMenuSubmenuColor": "inherit", - - "previewFileBackground": "#cbccd1", - "previewFileColor": "#000", - "previewExitButtonBackground": "rgb(226, 227, 232)", - "previewExitButtonColor": "#000", - "previewObjectBackground": "#c3c3c3", - "previewObjectColor": "inherit", - "previewObjectTableBorder": "1px solid #ddd", - "previewObjectTableRowEvenBackground": "#ddd", - "previewObjectTableRowEvenColor": "inherit", - "previewObjectTableRowOddBackground": "inherit", - "previewObjectTableRowOddColor": "inherit", - - "propertiesBackground": "#e0e0e0", - - "acrylicEffect": ["sidebarBackground"] - } -} -exports.default = Theme \ No newline at end of file diff --git a/packages/generator-xplorer-theme/tsconfig.json b/packages/generator-xplorer-theme/tsconfig.json deleted file mode 100644 index 5065f39d..00000000 --- a/packages/generator-xplorer-theme/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "module": "commonjs", - "outDir": "generators", - "esModuleInterop": true, - "rootDir": "src", - "sourceMap": true, - "declaration": true, - "declarationMap": true - }, - "include": ["src"], - "exclude": ["node_modules", "src/*/templates"] -} diff --git a/patches/cp-file+7.0.0.patch b/patches/cp-file+7.0.0.patch deleted file mode 100644 index 736a0a8c..00000000 --- a/patches/cp-file+7.0.0.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/node_modules/cp-file/index.js b/node_modules/cp-file/index.js -index b049482..e86f439 100644 ---- a/node_modules/cp-file/index.js -+++ b/node_modules/cp-file/index.js -@@ -12,7 +12,9 @@ const cpFileAsync = async (source, destination, options, progressEmitter) => { - progressEmitter.size = stat.size; - - const read = await fs.createReadStream(source); -- await fs.makeDir(path.dirname(destination)); -+ if(!(process.platform === "win32" && /^\w:(\\{1,2}|(\/{1,2}))$/.test(path.dirname(destination)))){ -+ await fs.makeDir(path.dirname(destination), {mode: options.directoryMode}); -+ } - const write = fs.createWriteStream(destination, {flags: options.overwrite ? 'w' : 'wx'}); - read.on('data', () => { - progressEmitter.written = write.bytesWritten; diff --git a/patches/electron-json-storage-sync+1.2.0.patch b/patches/electron-json-storage-sync+1.2.0.patch deleted file mode 100644 index ff71979b..00000000 --- a/patches/electron-json-storage-sync+1.2.0.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/node_modules/electron-json-storage-sync/lib/storage.js b/node_modules/electron-json-storage-sync/lib/storage.js -index de07541..311765c 100644 ---- a/node_modules/electron-json-storage-sync/lib/storage.js -+++ b/node_modules/electron-json-storage-sync/lib/storage.js -@@ -129,3 +129,5 @@ exports.has = function(key) { - } - return utils.createSuccessObject(false); - }; -+ -+exports.getStorageDir = utils.getStorageDir() -\ No newline at end of file diff --git a/patches/fast-glob+2.2.7.patch b/patches/fast-glob+2.2.7.patch deleted file mode 100644 index a619c1ec..00000000 --- a/patches/fast-glob+2.2.7.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/node_modules/fast-glob/index.d.ts b/node_modules/fast-glob/index.d.ts -index e08a6c3..bcfc709 100644 ---- a/node_modules/fast-glob/index.d.ts -+++ b/node_modules/fast-glob/index.d.ts -@@ -7,6 +7,7 @@ declare namespace FastGlob { - type Options = IPartialOptions; - type TransformFunction = Transform; - type Task = ITask; -+ type Entry = EntryItem; - - interface IApi { - (patterns: Pattern | Pattern[], options?: IPartialOptions): Promise; diff --git a/patches/node-disk-info+1.3.0.patch b/patches/node-disk-info+1.3.0.patch deleted file mode 100644 index 87a3292b..00000000 --- a/patches/node-disk-info+1.3.0.patch +++ /dev/null @@ -1,110 +0,0 @@ -diff --git a/node_modules/node-disk-info/dist/classes/drive.d.ts b/node_modules/node-disk-info/dist/classes/drive.d.ts -index 79e7add..e47c7eb 100644 ---- a/node_modules/node-disk-info/dist/classes/drive.d.ts -+++ b/node_modules/node-disk-info/dist/classes/drive.d.ts -@@ -28,6 +28,7 @@ export default class Drive { - * Indicates the mount point of the disk. - */ - private readonly _mounted; -+ private readonly _volumename; - /** - * Constructor for Drive class. - * -@@ -38,7 +39,7 @@ export default class Drive { - * @param {string} capacity Disk capacity. - * @param {string} mounted Indicates the mount point of the disk. - */ -- constructor(filesystem: string, blocks: number, used: number, available: number, capacity: string, mounted: string); -+ constructor(filesystem: string, blocks: number, used: number, available: number, capacity: string, mounted: string, volumename:string); - /** - * Drive filesystem. - * -@@ -75,4 +76,5 @@ export default class Drive { - * @return Gets the mount point of the disk. - */ - get mounted(): string; -+ get volumename(): string; - } -diff --git a/node_modules/node-disk-info/dist/classes/drive.js b/node_modules/node-disk-info/dist/classes/drive.js -index 9d13d32..7f4dcfb 100644 ---- a/node_modules/node-disk-info/dist/classes/drive.js -+++ b/node_modules/node-disk-info/dist/classes/drive.js -@@ -16,13 +16,14 @@ var Drive = /** @class */ (function () { - * @param {string} capacity Disk capacity. - * @param {string} mounted Indicates the mount point of the disk. - */ -- function Drive(filesystem, blocks, used, available, capacity, mounted) { -+ function Drive(filesystem, blocks, used, available, capacity, mounted, volumename=null) { - this._filesystem = filesystem; - this._blocks = blocks; - this._used = used; - this._available = available; - this._capacity = capacity; - this._mounted = mounted; -+ this._volumename = volumename - } - Object.defineProperty(Drive.prototype, "filesystem", { - /** -@@ -96,6 +97,18 @@ var Drive = /** @class */ (function () { - enumerable: false, - configurable: true - }); -+ Object.defineProperty(Drive.prototype, "volumename", { -+ /** -+ * Indicates the mount point of the disk. -+ * -+ * @return Gets the mount point of the disk. -+ */ -+ get: function () { -+ return this._volumename; -+ }, -+ enumerable: false, -+ configurable: true -+ }); - return Drive; - }()); - exports.default = Drive; -diff --git a/node_modules/node-disk-info/dist/platforms/windows.js b/node_modules/node-disk-info/dist/platforms/windows.js -index 303bd1d..5a499f8 100644 ---- a/node_modules/node-disk-info/dist/platforms/windows.js -+++ b/node_modules/node-disk-info/dist/platforms/windows.js -@@ -46,6 +46,7 @@ var Windows = /** @class */ (function () { - var description = ''; - var freeSpace = 0; - var size = 0; -+ var volumename = '' - lines.forEach(function (value) { - if (value !== '') { - var tokens = value.split('='); -@@ -65,6 +66,9 @@ var Windows = /** @class */ (function () { - case 'Size': - size = isNaN(parseFloat(data)) ? 0 : +data; - break; -+ case 'VolumeName': -+ volumename = data; -+ break; - } - } - else { -@@ -74,7 +78,7 @@ var Windows = /** @class */ (function () { - if (size > 0) { - percent = Math.round((used / size) * 100) + '%'; - } -- var d = new drive_1.default(description, size, used, freeSpace, percent, caption); -+ var d = new drive_1.default(description, size, used, freeSpace, percent, caption, volumename); - drives.push(d); - newDiskIteration = false; - caption = ''; -diff --git a/node_modules/node-disk-info/dist/utils/constants.js b/node_modules/node-disk-info/dist/utils/constants.js -index d2936e1..52b0d4c 100644 ---- a/node_modules/node-disk-info/dist/utils/constants.js -+++ b/node_modules/node-disk-info/dist/utils/constants.js -@@ -10,7 +10,7 @@ var Constants = /** @class */ (function () { - /** - * Command to execute on Windows. - */ -- Constants.WINDOWS_COMMAND = 'wmic logicaldisk get Caption,FreeSpace,Size,VolumeSerialNumber,Description /format:list'; -+ Constants.WINDOWS_COMMAND = 'wmic logicaldisk get Caption,FreeSpace,Size,VolumeSerialNumber,Description,VolumeName /format:list'; - /** - * Command to execute on Linux. - */ diff --git a/scripts/copyfiles.js b/scripts/copyfiles.js index efbdd44b..d8e501ac 100644 --- a/scripts/copyfiles.js +++ b/scripts/copyfiles.js @@ -9,7 +9,7 @@ const cpy = require('cpy'); 'build/**/*', '!src/**/*.scss', ], - 'outs', + 'out', { parents: true, } diff --git a/scripts/ejs-watcher.js b/scripts/ejs-watcher.js deleted file mode 100644 index a403f59e..00000000 --- a/scripts/ejs-watcher.js +++ /dev/null @@ -1,6 +0,0 @@ -const watch = require('node-watch'); -const spawn = require('cross-spawn'); - -watch('src/Components', { recursive: true, filter: /\.ejs/ }, () => { - spawn('yarn', ['copyfiles']); -}); diff --git a/scripts/generate-fake-files.py b/scripts/generate-fake-files.py new file mode 100644 index 00000000..78d5fcc7 --- /dev/null +++ b/scripts/generate-fake-files.py @@ -0,0 +1,33 @@ +# Generate n fake files with the structure of '../lib/files.json' and random size in '../fake-files' directory +# Usage: python3 generate-fake-files.py + +import os +import sys +import json +import random + +structure = json.load(open('./lib/files.json')) + +directory = './fake-files' +number_of_files = int(sys.argv[1]) + +for i in range(number_of_files): + if not os.path.exists(directory): + os.makedirs(directory) + try: + to_generate = random.choice(['fileNames', 'extensions']) + if to_generate == 'fileNames': + file_name = random.choice(random.choice(structure)[to_generate]) + else: + random_string = ''.join(random.choice('abcdefghijklmnopqrstuvwxyz') for _ in range(10)) + file_name = random_string + '.' + random.choice(random.choice(structure)[to_generate]) + file_size = random.randint(1, 10000) + file_path = os.path.join(directory, file_name) + with open(file_path, 'w') as f: + f.write('\n' * file_size) + except Exception as e: + file_name = ''.join(random.choice('abcdefghijklmnopqrstuvwxyz') for _ in range(10)) + file_path = os.path.join(directory, file_name) + file_size = random.randint(1, 10000) + with open(file_path, 'w') as f: + f.write('\n' * file_size) \ No newline at end of file diff --git a/scripts/install.js b/scripts/install.js deleted file mode 100644 index c4694f24..00000000 --- a/scripts/install.js +++ /dev/null @@ -1,9 +0,0 @@ -const os = require('os'); -var spawn = require('cross-spawn'); - -if (os.platform() === 'win32') { - spawn.sync('npm', ['run', 'native_build'], { - input: 'win32 detected. Build native module.', - stdio: 'inherit' - }); -} diff --git a/scripts/postinstall.js b/scripts/postinstall.js deleted file mode 100644 index 02b596cf..00000000 --- a/scripts/postinstall.js +++ /dev/null @@ -1,16 +0,0 @@ -const spawn = require('cross-spawn'); -const fs = require('fs'); - -if (fs.existsSync('temp/postinstalled')) { - spawn('yarn', ['run', 'rimraf', 'temp']); - return; -} else { - if (!fs.existsSync('temp')) { - fs.mkdirSync('temp'); - } - fs.writeFileSync('temp/postinstalled', ''); - spawn.sync('npm', ['run', 'patch-package'], { - input: 'Installing dependencies once again to patch packages', - stdio: 'inherit', - }); -} diff --git a/scripts/sass-watcher.js b/scripts/sass-watcher.js new file mode 100644 index 00000000..5b8a6c1c --- /dev/null +++ b/scripts/sass-watcher.js @@ -0,0 +1,6 @@ +const watch = require('node-watch'); +const spawn = require('cross-spawn'); + +watch('src/Components', { recursive: true, filter: /\.scss/ }, () => { + spawn('yarn', ['sass']); +}); diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 00000000..e4be6b23 --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,4057 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "anyhow" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1" + +[[package]] +name = "app" +version = "0.1.0" +dependencies = [ + "font-loader", + "lazy_static", + "normpath", + "notify", + "open", + "path-absolutize", + "serde", + "serde_json", + "sysinfo", + "tauri", + "tauri-build", + "trash", +] + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "arrayvec" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4dc07131ffa69b8072d35f5007352af944213cde02545e2103680baed38fcd" + +[[package]] +name = "async-io" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" +dependencies = [ + "concurrent-queue", + "futures-lite", + "libc", + "log", + "once_cell", + "parking", + "polling", + "slab", + "socket2", + "waker-fn", + "winapi 0.3.9", +] + +[[package]] +name = "atk" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a83b21d2aa75e464db56225e1bda2dd5993311ba1095acaa8fa03d1ae67026ba" +dependencies = [ + "atk-sys", + "bitflags", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "badcf670157c84bb8b1cf6b5f70b650fed78da2033c9eed84c4e49b11cbe83ea" +dependencies = [ + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "libc", + "system-deps 3.2.0", +] + +[[package]] +name = "attohttpc" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8bda305457262b339322106c776e3fd21df860018e566eb6a5b1aa4b6ae02d" +dependencies = [ + "flate2", + "http", + "log", + "native-tls", + "openssl", + "serde", + "serde_json", + "serde_urlencoded", + "url", + "wildmatch", +] + +[[package]] +name = "autocfg" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2607a74355ce2e252d0c483b2d8a348e1bba36036e786ccc2dcd777213c86ffd" +dependencies = [ + "arrayref", + "arrayvec 0.7.1", + "cc", + "cfg-if 1.0.0", + "constant_time_eq", + "digest", + "rayon", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "memchr", +] + +[[package]] +name = "bumpalo" +version = "3.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" + +[[package]] +name = "bzip2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cache-padded" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" + +[[package]] +name = "cairo-rs" +version = "0.14.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b5725979db0c586d98abad2193cdb612dd40ef95cd26bd99851bf93b3cb482" +dependencies = [ + "bitflags", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.14.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b448b876970834fda82ba3aeaccadbd760206b75388fc5c1b02f1e343b697570" +dependencies = [ + "glib-sys 0.14.0", + "libc", + "system-deps 3.2.0", +] + +[[package]] +name = "cc" +version = "1.0.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cfb" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca453e8624711b2f0f4eb47076a318feda166252a827ee25d067b43de83dcba0" +dependencies = [ + "byteorder", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits", + "time", + "winapi 0.3.9", +] + +[[package]] +name = "cmake" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7b858541263efe664aead4a5209a4ae5c5d2811167d4ed4ee0944503f8d2089" +dependencies = [ + "cc", +] + +[[package]] +name = "cocoa" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation 0.9.2", + "core-graphics 0.22.2", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +dependencies = [ + "bitflags", + "block", + "core-foundation 0.9.2", + "core-graphics-types", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "com" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a30a2b2a013da986dc5cc3eda3d19c0d59d53f835be1b2356eb8d00f000c793" +dependencies = [ + "com_macros", +] + +[[package]] +name = "com_macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7606b05842fea68ddcc89e8053b8860ebcb2a0ba8d6abfe3a148e5d5a8d3f0c1" +dependencies = [ + "com_macros_support", + "proc-macro2", + "syn", +] + +[[package]] +name = "com_macros_support" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97e9a6d20f4ac8830e309a455d7e9416e65c6af5a97c88c55fbb4c2012e107da" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "concurrent-queue" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" +dependencies = [ + "cache-padded", +] + +[[package]] +name = "const-sha1" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb58b6451e8c2a812ad979ed1d83378caa5e927eef2622017a45f251457c2c9d" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +dependencies = [ + "core-foundation-sys 0.7.0", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" +dependencies = [ + "core-foundation-sys 0.8.3", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core-graphics" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923" +dependencies = [ + "bitflags", + "core-foundation 0.7.0", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "269f35f69b542b80e736a20a89a05215c0ce80c2c03c514abb2e318b78379d86" +dependencies = [ + "bitflags", + "core-foundation 0.9.2", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation 0.9.2", + "foreign-types", + "libc", +] + +[[package]] +name = "core-text" +version = "19.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25" +dependencies = [ + "core-foundation 0.9.2", + "core-graphics 0.22.2", + "foreign-types", + "libc", +] + +[[package]] +name = "core-video-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828" +dependencies = [ + "cfg-if 0.1.10", + "core-foundation-sys 0.7.0", + "core-graphics 0.19.2", + "libc", + "objc", +] + +[[package]] +name = "crc32fast" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", + "lazy_static", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" +dependencies = [ + "cfg-if 1.0.0", + "lazy_static", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "darling" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "deflate" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "deflate" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "dirs" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" +dependencies = [ + "libc", + "redox_users 0.3.5", + "winapi 0.3.9", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if 1.0.0", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users 0.4.0", + "winapi 0.3.9", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "dtoa-short" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" +dependencies = [ + "dtoa", +] + +[[package]] +name = "either" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" + +[[package]] +name = "embed_plist" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53dd2e43a7d32952a6054141ee0d75183958620e84e5eab045de362dff13dc99" + +[[package]] +name = "enumflags2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "expat-sys" +version = "2.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa" +dependencies = [ + "cmake", + "pkg-config", +] + +[[package]] +name = "fastrand" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e" +dependencies = [ + "instant", +] + +[[package]] +name = "field-offset" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "filetime" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall 0.2.10", + "winapi 0.3.9", +] + +[[package]] +name = "flate2" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" +dependencies = [ + "cfg-if 1.0.0", + "crc32fast", + "libc", + "miniz_oxide 0.4.4", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "font-loader" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c49d6b4c11dca1a1dd931a34a9f397e2da91abe3de4110505f3530a80e560b52" +dependencies = [ + "core-foundation 0.9.2", + "core-text", + "libc", + "servo-fontconfig", + "winapi 0.3.9", +] + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "freetype-sys" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a" +dependencies = [ + "cmake", + "libc", + "pkg-config", +] + +[[package]] +name = "fsevent" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" +dependencies = [ + "bitflags", + "fsevent-sys", +] + +[[package]] +name = "fsevent-sys" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" +dependencies = [ + "libc", +] + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "futf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d" + +[[package]] +name = "futures-executor" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377" + +[[package]] +name = "futures-lite" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-macro" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb" +dependencies = [ + "autocfg", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11" + +[[package]] +name = "futures-task" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99" + +[[package]] +name = "futures-util" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481" +dependencies = [ + "autocfg", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "proc-macro-hack", + "proc-macro-nested", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d749dcfc00d8de0d7c3a289e04a04293eb5ba3d8a4e64d64911d481fa9933b" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534192cb8f01daeb8fab2c8d4baa8f9aae5b7a39130525779f5c2608e235b10f" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f097c0704201fbc8f69c1762dc58c6947c8bb188b8ed0bc7e65259f1894fe590" +dependencies = [ + "gio-sys 0.14.0", + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "libc", + "system-deps 3.2.0", +] + +[[package]] +name = "gdk-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e091b3d3d6696949ac3b3fb3c62090e5bfd7bd6850bef5c3c5ea701de1b1f1e" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys 0.14.0", + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "libc", + "pango-sys", + "pkg-config", + "system-deps 3.2.0", +] + +[[package]] +name = "generator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1d9279ca822891c1a4dae06d185612cf8fc6acfe5dff37781b41297811b12ee" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "winapi 0.3.9", +] + +[[package]] +name = "generic-array" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.10.2+wasi-snapshot-preview1", +] + +[[package]] +name = "gio" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711c3632b3ebd095578a9c091418d10fed492da9443f58ebc8f45efbeb215cb0" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys 0.14.0", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e24fb752f8f5d2cf6bbc2c606fd2bc989c81c5e2fe321ab974d54f8b6344eac" +dependencies = [ + "glib-sys 0.10.1", + "gobject-sys 0.10.0", + "libc", + "system-deps 1.3.2", + "winapi 0.3.9", +] + +[[package]] +name = "gio-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0a41df66e57fcc287c4bcf74fc26b884f31901ea9792ec75607289b456f48fa" +dependencies = [ + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "libc", + "system-deps 3.2.0", + "winapi 0.3.9", +] + +[[package]] +name = "glib" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c515f1e62bf151ef6635f528d05b02c11506de986e43b34a5c920ef0b3796a4" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "libc", + "once_cell", + "smallvec", +] + +[[package]] +name = "glib-macros" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aad66361f66796bfc73f530c51ef123970eb895ffba991a234fcf7bea89e518" +dependencies = [ + "anyhow", + "heck", + "proc-macro-crate 1.1.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-sys" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e9b997a66e9a23d073f2b1abb4dbfc3925e0b8952f67efd8d9b6e168e4cdc1" +dependencies = [ + "libc", + "system-deps 1.3.2", +] + +[[package]] +name = "glib-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c1d60554a212445e2a858e42a0e48cece1bd57b311a19a9468f70376cf554ae" +dependencies = [ + "libc", + "system-deps 3.2.0", +] + +[[package]] +name = "globset" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "gobject-sys" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "952133b60c318a62bf82ee75b93acc7e84028a093e06b9e27981c2b6fe68218c" +dependencies = [ + "glib-sys 0.10.1", + "libc", + "system-deps 1.3.2", +] + +[[package]] +name = "gobject-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa92cae29759dae34ab5921d73fff5ad54b3d794ab842c117e36cafc7994c3f5" +dependencies = [ + "glib-sys 0.14.0", + "libc", + "system-deps 3.2.0", +] + +[[package]] +name = "gtk" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb51122dd3317e9327ec1e4faa151d1fa0d95664cd8fb8dcfacf4d4d29ac70c" +dependencies = [ + "atk", + "bitflags", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "once_cell", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c14c8d3da0545785a7c5a120345b3abb534010fb8ae0f2ef3f47c027fba303e" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys 0.14.0", + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "libc", + "pango-sys", + "system-deps 3.2.0", +] + +[[package]] +name = "gtk3-macros" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21de1da96dc117443fb03c2e270b2d34b7de98d0a79a19bbb689476173745b79" +dependencies = [ + "anyhow", + "heck", + "proc-macro-crate 1.1.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "html5ever" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aafcf38a1a36118242d29b92e1b08ef84e67e4a5ed06e0a80be20e6a32bfed6b" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "http" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-range" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee9694f83d9b7c09682fdb32213682939507884e5bcf227be9aff5d644b90dc" + +[[package]] +name = "ico" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a4b3331534254a9b64095ae60d3dc2a8225a7a70229cd5888be127cdc1f6804" +dependencies = [ + "byteorder", + "png 0.11.0", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +dependencies = [ + "crossbeam-utils", + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "infer" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f92b41dab759f9e8427c03f519c344a14655490b8db548dac1e57a75b3258391" +dependencies = [ + "cfb", +] + +[[package]] +name = "inflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5f9f47468e9a76a6452271efadc88fe865a82be91fe75e6c0c57b87ccea59d4" +dependencies = [ + "adler32", +] + +[[package]] +name = "inotify" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" +dependencies = [ + "bitflags", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "instant" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + +[[package]] +name = "itertools" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "javascriptcore-rs" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca9c7d1445bba2889672fbadc16c3d5007bfdcf0a15a18a3a50fe9fab2c7427" +dependencies = [ + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f46ada8a08dcd75a10afae872fbfb51275df4a8ae0d46b8cc7c708f08dd2998" +dependencies = [ + "libc", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "kuchiki" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +dependencies = [ + "cssparser", + "html5ever", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2f96d100e1cf1929e7719b7edb3b90ab5298072638fccd77be9ce942ecdfce" + +[[package]] +name = "lock_api" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "loom" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b9df80a3804094bf49bb29881d18f6f05048db72127e84e09c26fc7c2324f5" +dependencies = [ + "cfg-if 1.0.0", + "generator", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "mac-notification-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb6b71a9a89cd38b395d994214297447e8e63b1ba5708a9a2b0b1048ceda76" +dependencies = [ + "cc", + "chrono", + "dirs", + "objc-foundation", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +dependencies = [ + "log", + "phf 0.8.0", + "phf_codegen", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "memchr" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "memoffset" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" +dependencies = [ + "autocfg", +] + +[[package]] +name = "minisign-verify" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db0507fe8e3c68cd62961cf9f87f6c2b21d884d3515a7150a4a3fa9d014e5c12" + +[[package]] +name = "miniz_oxide" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" +dependencies = [ + "adler32", +] + +[[package]] +name = "miniz_oxide" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +dependencies = [ + "adler", + "autocfg", +] + +[[package]] +name = "mio" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "mio-extras" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" +dependencies = [ + "lazycell", + "log", + "mio", + "slab", +] + +[[package]] +name = "miow" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", +] + +[[package]] +name = "native-tls" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nb-connect" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1bb540dc6ef51cfe1916ec038ce7a620daf3a111e2502d745197cd53d6bca15" +dependencies = [ + "libc", + "socket2", +] + +[[package]] +name = "ndk" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d64d6af06fde0e527b1ba5c7b79a6cc89cfc46325b0b2887dffe8f70197e0c3c" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-glue" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e9e94628f24e7a3cb5b96a2dc5683acd9230bf11991c2a1677b87695138420" +dependencies = [ + "lazy_static", + "libc", + "log", + "ndk", + "ndk-macro", + "ndk-sys", +] + +[[package]] +name = "ndk-macro" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d" +dependencies = [ + "darling", + "proc-macro-crate 0.1.5", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ndk-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c44922cb3dbb1c70b5e5f443d63b64363a898564d739ba5198e3a9138442868d" + +[[package]] +name = "net2" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nix" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" +dependencies = [ + "bitflags", + "cc", + "cfg-if 0.1.10", + "libc", + "void", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "normpath" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "640c20e9df4a2d4a5adad5b47e17d76dac3e824346b181931c3ec9f7a85687b1" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "notify" +version = "4.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257" +dependencies = [ + "bitflags", + "filetime", + "fsevent", + "fsevent-sys", + "inotify", + "libc", + "mio", + "mio-extras", + "walkdir", + "winapi 0.3.9", +] + +[[package]] +name = "notify-rust" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "825e9c9efdcb4d14920f72e2ef329b4dae0219791834c000c42c1475dad341f8" +dependencies = [ + "mac-notification-sys", + "serde", + "winrt-notification", + "zbus", + "zvariant", + "zvariant_derive", +] + +[[package]] +name = "ntapi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "num-integer" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9bd055fb730c4f8f4f57d45d35cd6b3f0980535b056dc7ff119cee6a66ed6f" +dependencies = [ + "derivative", + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "486ea01961c4a818096de679a8b740b26d9033146ac5291b1c98557658f8cdd9" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "once_cell" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" + +[[package]] +name = "open" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b46b233de7d83bc167fe43ae2dda3b5b84e80e09cceba581e4decb958a4896bf" +dependencies = [ + "pathdiff", + "winapi 0.3.9", +] + +[[package]] +name = "openssl" +version = "0.10.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-sys", +] + +[[package]] +name = "openssl-probe" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" + +[[package]] +name = "openssl-sys" +version = "0.9.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69df2d8dfc6ce3aaf44b40dec6f487d5a886516cf6879c49e98e0710f310a058" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "os_info" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ac91020bfed8cc3f8aa450d4c3b5fa1d3373fc091c8a92009f3b27749d5a227" +dependencies = [ + "log", + "serde", + "winapi 0.3.9", +] + +[[package]] +name = "os_pipe" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb233f06c2307e1f5ce2ecad9f8121cffbbee2c95428f44ea85222e460d0d213" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "pango" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "546fd59801e5ca735af82839007edd226fe7d3bb06433ec48072be4439c28581" +dependencies = [ + "bitflags", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2367099ca5e761546ba1d501955079f097caa186bb53ce0f718dca99ac1942fe" +dependencies = [ + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "libc", + "system-deps 3.2.0", +] + +[[package]] +name = "parking" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall 0.2.10", + "smallvec", + "winapi 0.3.9", +] + +[[package]] +name = "path-absolutize" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b288298a7a3a7b42539e3181ba590d32f2d91237b0691ed5f103875c754b3bf5" +dependencies = [ + "path-dedot", +] + +[[package]] +name = "path-dedot" +version = "3.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bfa72956f6be8524f7f7e2b07972dda393cb0008a6df4451f658b7e1bd1af80" +dependencies = [ + "once_cell", +] + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pest" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +dependencies = [ + "ucd-trie", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9fc3db1018c4b59d7d582a739436478b6035138b6aecbce989fc91c3e98409f" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.4", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" + +[[package]] +name = "png" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925" +dependencies = [ + "bitflags", + "deflate 0.7.20", + "inflate", + "num-iter", +] + +[[package]] +name = "png" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" +dependencies = [ + "bitflags", + "crc32fast", + "deflate 0.8.6", + "miniz_oxide 0.3.7", +] + +[[package]] +name = "polling" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "log", + "wepoll-ffi", + "winapi 0.3.9", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ca011bd0129ff4ae15cd04c4eef202cadf6c51c21e47aba319b4e0501db741" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" +dependencies = [ + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro-nested" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" + +[[package]] +name = "proc-macro2" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc3358ebc67bc8b7fa0c007f945b0b18226f78437d61bec735a9eb96b61ee70" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quote" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc 0.2.0", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.3", + "rand_hc 0.3.1", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom 0.2.3", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_hc" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" +dependencies = [ + "rand_core 0.6.3", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211" +dependencies = [ + "libc", +] + +[[package]] +name = "rayon" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "lazy_static", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + +[[package]] +name = "redox_syscall" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" +dependencies = [ + "getrandom 0.1.16", + "redox_syscall 0.1.57", + "rust-argon2", +] + +[[package]] +name = "redox_users" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" +dependencies = [ + "getrandom 0.2.3", + "redox_syscall 0.2.10", +] + +[[package]] +name = "regex" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "rfd" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "609ed912e110af7d7084b6b17d2a68b25e766208e015a37beba1be3c2d7cbb3b" +dependencies = [ + "block", + "dispatch", + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "gtk-sys", + "js-sys", + "lazy_static", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winapi 0.3.9", +] + +[[package]] +name = "rust-argon2" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" +dependencies = [ + "base64", + "blake2b_simd", + "constant_time_eq", + "crossbeam-utils", +] + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustversion" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088" + +[[package]] +name = "ryu" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi 0.3.9", +] + +[[package]] +name = "scoped-tls" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "security-framework" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" +dependencies = [ + "bitflags", + "core-foundation 0.9.2", + "core-foundation-sys 0.8.3", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" +dependencies = [ + "core-foundation-sys 0.8.3", + "libc", +] + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.130" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.130" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_urlencoded" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97" +dependencies = [ + "dtoa", + "itoa", + "serde", + "url", +] + +[[package]] +name = "servo-fontconfig" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c" +dependencies = [ + "libc", + "servo-fontconfig-sys", +] + +[[package]] +name = "servo-fontconfig-sys" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388" +dependencies = [ + "expat-sys", + "freetype-sys", + "pkg-config", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared_child" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6be9f7d5565b1483af3e72975e2dee33879b3b86bd48c0929fccf6585d79e65a" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "siphasher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "533494a8f9b724d33625ab53c6c4800f7cc445895924a8ef649222dcb76e938b" + +[[package]] +name = "slab" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" + +[[package]] +name = "smallvec" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" + +[[package]] +name = "socket2" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "soup-sys" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c7adf08565630bbb71f955f11f8a68464817ded2703a3549747c235b58a13e" +dependencies = [ + "bitflags", + "gio-sys 0.10.1", + "glib-sys 0.10.1", + "gobject-sys 0.10.0", + "libc", + "pkg-config", + "system-deps 1.3.2", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "state" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cf4f5369e6d3044b5e365c9690f451516ac8f0954084622b49ea3fde2f6de5" +dependencies = [ + "loom", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "923f0f39b6267d37d23ce71ae7235602134b250ace715dd2c90421998ddac0c6" +dependencies = [ + "lazy_static", + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.8.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f24c8e5e19d22a726626f1a5e16fe15b132dcf21d10177fa5a45ce7962996b97" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" + +[[package]] +name = "strum" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" + +[[package]] +name = "strum" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" +dependencies = [ + "strum_macros 0.21.1", +] + +[[package]] +name = "strum_macros" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "strum_macros" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "syn" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "sysinfo" +version = "0.20.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e223c65cd36b485a34c2ce6e38efa40777d31c4166d9076030c74cdcf971679f" +dependencies = [ + "cfg-if 1.0.0", + "core-foundation-sys 0.8.3", + "libc", + "ntapi", + "once_cell", + "rayon", + "winapi 0.3.9", +] + +[[package]] +name = "system-deps" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b" +dependencies = [ + "heck", + "pkg-config", + "strum 0.18.0", + "strum_macros 0.18.0", + "thiserror", + "toml", + "version-compare 0.0.10", +] + +[[package]] +name = "system-deps" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6" +dependencies = [ + "anyhow", + "cfg-expr", + "heck", + "itertools", + "pkg-config", + "strum 0.21.0", + "strum_macros 0.21.1", + "thiserror", + "toml", + "version-compare 0.0.11", +] + +[[package]] +name = "tao" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa57de7c282b68f8906278543a724ed8f5a2568f069dd0cc05fc10d1f07036b" +dependencies = [ + "bitflags", + "cairo-rs", + "cc", + "cocoa", + "core-foundation 0.9.2", + "core-graphics 0.22.2", + "core-video-sys", + "crossbeam-channel", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "glib-sys 0.14.0", + "gtk", + "instant", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-glue", + "ndk-sys", + "objc", + "parking_lot", + "raw-window-handle", + "scopeguard", + "serde", + "unicode-segmentation", + "winapi 0.3.9", + "x11-dl", +] + +[[package]] +name = "tar" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f5515d3add52e0bbdcad7b83c388bb36ba7b754dda3b5f5bc2d38640cdba5c" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tauri" +version = "1.0.0-beta.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79a0579dcc6fb883fe90dd3c66d76b8b8f4a1786e1e915e314b2017a500ede09" +dependencies = [ + "attohttpc", + "base64", + "bincode", + "cfg_aliases", + "dirs-next", + "either", + "embed_plist", + "flate2", + "futures", + "futures-lite", + "glib", + "gtk", + "http", + "ignore", + "minisign-verify", + "notify-rust", + "once_cell", + "open", + "os_info", + "os_pipe", + "percent-encoding", + "rand 0.8.4", + "raw-window-handle", + "rfd", + "semver 1.0.4", + "serde", + "serde_json", + "serde_repr", + "shared_child", + "state", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "tempfile", + "thiserror", + "tokio", + "url", + "uuid", + "zip", +] + +[[package]] +name = "tauri-build" +version = "1.0.0-beta.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9c9a9bea25b9d6f5845b8662e18447e17218f99860cab37e39e2b57a9fcd49" +dependencies = [ + "anyhow", + "proc-macro2", + "quote", + "serde_json", + "tauri-utils", + "winres", +] + +[[package]] +name = "tauri-codegen" +version = "1.0.0-beta.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1663739ab53e281919676f216fb56a031104d0d2cd1a2dd5b012d279bcdb0ea4" +dependencies = [ + "blake3", + "kuchiki", + "proc-macro2", + "quote", + "regex", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "walkdir", + "zstd", +] + +[[package]] +name = "tauri-macros" +version = "1.0.0-beta.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddf9f5868402323f35ef94fa6ab1d5d10b29aea9de598d829723aa1db5693b4" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "tauri-codegen", +] + +[[package]] +name = "tauri-runtime" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9c52eccfb7f2ce5a09262bdc3671f0f07f637e27f8aa25e5f38145cddcd4e01" +dependencies = [ + "gtk", + "http", + "http-range", + "infer", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "uuid", + "winapi 0.3.9", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fed8dd0a448c303fa764859d6dfa1c746c4f2c6c30a83c162f8bebb12e4af4e" +dependencies = [ + "gtk", + "ico", + "infer", + "png 0.16.8", + "tauri-runtime", + "tauri-utils", + "uuid", + "winapi 0.3.9", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "1.0.0-beta.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb9b79594f22b6ed0cc8362e0dfde5b7969962de3cd8ca683de702e59e8221b" +dependencies = [ + "html5ever", + "kuchiki", + "phf 0.10.0", + "proc-macro2", + "quote", + "serde", + "serde_json", + "thiserror", + "url", + "zstd", +] + +[[package]] +name = "tempfile" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "rand 0.8.4", + "redox_syscall 0.2.10", + "remove_dir_all", + "winapi 0.3.9", +] + +[[package]] +name = "tendril" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9ef557cb397a4f0a5a3a628f06515f78563f2209e64d47055d9dc6052bf5e33" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" +dependencies = [ + "once_cell", +] + +[[package]] +name = "time" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "tinyvec" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc" +dependencies = [ + "autocfg", + "bytes", + "memchr", + "num_cpus", + "pin-project-lite", +] + +[[package]] +name = "toml" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +dependencies = [ + "serde", +] + +[[package]] +name = "tracing" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +dependencies = [ + "cfg-if 1.0.0", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "tracing-log" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-serde" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "ansi_term", + "chrono", + "lazy_static", + "matchers", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", +] + +[[package]] +name = "trash" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3ebb6cb2db7947ab9f65dec9f7c5dbe01042b708f564242dcfb6d5cb2957cbc" +dependencies = [ + "chrono", + "libc", + "log", + "objc", + "scopeguard", + "url", + "windows 0.9.1", +] + +[[package]] +name = "typenum" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec" + +[[package]] +name = "ucd-trie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" + +[[package]] +name = "unicode-bidi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" + +[[package]] +name = "unicode-normalization" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" + +[[package]] +name = "unicode-xid" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" + +[[package]] +name = "url" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +dependencies = [ + "form_urlencoded", + "idna", + "matches", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.3", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version-compare" +version = "0.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1" + +[[package]] +name = "version-compare" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" + +[[package]] +name = "version_check" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi 0.3.9", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "wasm-bindgen" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" + +[[package]] +name = "web-sys" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e47b7f870883fc21612d2a51b74262f7f2cc5371f1621370817292a35300a9" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys 0.14.0", + "glib", + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66ccc9f0cb4de7c3b92376a5bf64e7ddffb33852f092721731a039ec38dda98" +dependencies = [ + "atk-sys", + "bitflags", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys 0.14.0", + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pango-sys", + "pkg-config", + "soup-sys", + "system-deps 3.2.0", +] + +[[package]] +name = "webview2" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "283bf6b0ed9c83faea8c7bfe40bb261592147a109effaa4077eed294863d5031" +dependencies = [ + "com", + "once_cell", + "webview2-sys", + "widestring", + "winapi 0.3.9", +] + +[[package]] +name = "webview2-sys" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b7889e893ac4c50d7346356be3ce13a85e56512c38b8fde0526559b8012a4c" +dependencies = [ + "com", + "winapi 0.3.9", +] + +[[package]] +name = "wepoll-ffi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" +dependencies = [ + "cc", +] + +[[package]] +name = "widestring" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" + +[[package]] +name = "wildmatch" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f44b95f62d34113cf558c93511ac93027e03e9c29a60dd0fd70e6e025c7270a" + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "361f3533a83ee1a28c9be59683f40043db02dbedf6479ce8795657386195c97f" +dependencies = [ + "const-sha1", + "windows_gen 0.9.1", + "windows_macros 0.9.1", +] + +[[package]] +name = "windows" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f5f8d2ea79bf690bbee453fd4a1516ae426e5d5c7215d96cc0c3dc134fc4a0" +dependencies = [ + "const-sha1", + "windows_gen 0.21.1", + "windows_macros 0.21.1", + "windows_reader", +] + +[[package]] +name = "windows_gen" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54154dbc515d58723f6b6053c12f1065da7389f733660581b2391bd1af480452" +dependencies = [ + "syn", +] + +[[package]] +name = "windows_gen" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e6994f42f8481387778cc608407d6703410672d57f32a66009419d7a18aa912" +dependencies = [ + "windows_quote", + "windows_reader", +] + +[[package]] +name = "windows_macros" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f7794c652845dc466cb8dc1b86c08345707c8144bc53e9086430047c7d33b76" +dependencies = [ + "syn", + "windows_gen 0.9.1", +] + +[[package]] +name = "windows_macros" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cc2357b1b03c19f056cb0e6d06011f80f54beadb4e36aee2ca98493c7cfc3c" +dependencies = [ + "syn", + "windows_gen 0.21.1", + "windows_quote", + "windows_reader", +] + +[[package]] +name = "windows_quote" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cf987b5288c15e1997226848f78f3ed3ef8b78dcfd71a201c8c8684163a7e4d" + +[[package]] +name = "windows_reader" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "237b53e8b40766ea7db5da0d8c6c1442d21d0429f0ee7500d7b5688967bd9d7b" + +[[package]] +name = "winres" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" +dependencies = [ + "toml", +] + +[[package]] +name = "winrt-notification" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0cc832b8c66c42b3ee6b625c124fe2d0b3ff7fb2cec18b28926e9c4bfdb72da" +dependencies = [ + "strum 0.21.0", + "windows 0.21.1", + "xml-rs", +] + +[[package]] +name = "wry" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9549393a3917b5303277abb0267f8eecf9fd629b25f1c04e5284aa58b61915" +dependencies = [ + "cocoa", + "core-graphics 0.22.2", + "gdk", + "gio", + "glib", + "gtk", + "http", + "libc", + "log", + "objc", + "objc_id", + "once_cell", + "serde", + "serde_json", + "tao", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2", + "webview2-sys", + "winapi 0.3.9", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "x11-dl" +version = "2.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea26926b4ce81a6f5d9d0f3a0bc401e5a37c6ae14a1bfaa8ff6099ca80038c59" +dependencies = [ + "lazy_static", + "libc", + "pkg-config", +] + +[[package]] +name = "xattr" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" +dependencies = [ + "libc", +] + +[[package]] +name = "xml-rs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" + +[[package]] +name = "zbus" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2326acc379a3ac4e34b794089f5bdb17086bf29a5fdf619b7b4cc772dc2e9dad" +dependencies = [ + "async-io", + "byteorder", + "derivative", + "enumflags2", + "fastrand", + "futures", + "nb-connect", + "nix", + "once_cell", + "polling", + "scoped-tls", + "serde", + "serde_repr", + "zbus_macros", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a482c56029e48681b89b92b5db3c446db0915e8dd1052c0328a574eda38d5f93" +dependencies = [ + "proc-macro-crate 0.1.5", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zip" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815" +dependencies = [ + "byteorder", + "bzip2", + "crc32fast", + "flate2", + "thiserror", + "time", +] + +[[package]] +name = "zstd" +version = "0.9.0+zstd.1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07749a5dc2cb6b36661290245e350f15ec3bbb304e493db54a1d354480522ccd" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "4.1.1+zstd.1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c91c90f2c593b003603e5e0493c837088df4469da25aafff8bce42ba48caf079" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "1.6.1+zstd.1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "zvariant" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1a9373dead84d640ccf5798f2928917e6aa1ab3f130751406bb13e0a9dd9913" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46ee71e0e88747ec582d290dbe98ff7907ff28770c7a35f16da41e5e6f1f4fa3" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 00000000..f787b18c --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,32 @@ +[package] +name = "app" +version = "0.1.0" +description = "A Tauri App" +authors = ["you"] +license = "" +repository = "" +default-run = "app" +edition = "2018" +build = "src/build.rs" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[build-dependencies] +tauri-build = { version = "1.0.0-beta.4" } + +[dependencies] +sysinfo = {version="0.20.5"} +serde_json = "1.0" +serde = { version = "1.0", features = ["derive"] } +tauri = { version = "1.0.0-beta.8", features = ["api-all"] } +open = {version = "2.0"} +path-absolutize = "3.0.11" +trash = "2.0.2" +notify = "4.0.17" +normpath = "0.3.1" +lazy_static = "1.4.0" +font-loader = "0.11.0" + +[features] +default = [ "custom-protocol" ] +custom-protocol = [ "tauri/custom-protocol" ] diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 00000000..5083c00b Binary files /dev/null and b/src-tauri/icons/128x128.png differ diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png new file mode 100644 index 00000000..6d5f4b35 Binary files /dev/null and b/src-tauri/icons/128x128@2x.png differ diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png new file mode 100644 index 00000000..033c16a0 Binary files /dev/null and b/src-tauri/icons/32x32.png differ diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 00000000..8c2328f1 Binary files /dev/null and b/src-tauri/icons/Square107x107Logo.png differ diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 00000000..444b7f94 Binary files /dev/null and b/src-tauri/icons/Square142x142Logo.png differ diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 00000000..799d4165 Binary files /dev/null and b/src-tauri/icons/Square150x150Logo.png differ diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 00000000..248ba36d Binary files /dev/null and b/src-tauri/icons/Square284x284Logo.png differ diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 00000000..0a46137c Binary files /dev/null and b/src-tauri/icons/Square30x30Logo.png differ diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 00000000..628faa72 Binary files /dev/null and b/src-tauri/icons/Square310x310Logo.png differ diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 00000000..fb098c7e Binary files /dev/null and b/src-tauri/icons/Square44x44Logo.png differ diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 00000000..00e76dad Binary files /dev/null and b/src-tauri/icons/Square71x71Logo.png differ diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png new file mode 100644 index 00000000..71231307 Binary files /dev/null and b/src-tauri/icons/Square89x89Logo.png differ diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns new file mode 100644 index 00000000..588131ff Binary files /dev/null and b/src-tauri/icons/icon.icns differ diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 00000000..69330159 Binary files /dev/null and b/src-tauri/icons/icon.ico differ diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 00000000..885cdfd7 Binary files /dev/null and b/src-tauri/icons/icon.png differ diff --git a/src-tauri/icons/icon.svg b/src-tauri/icons/icon.svg new file mode 100644 index 00000000..1d8bc0f3 --- /dev/null +++ b/src-tauri/icons/icon.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-tauri/installer.wxs b/src-tauri/installer.wxs new file mode 100644 index 00000000..02d22f60 --- /dev/null +++ b/src-tauri/installer.wxs @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + {{#if banner_path}} + + {{/if}} + {{#if dialog_image_path}} + + {{/if}} + {{#if license}} + + {{/if}} + + + + + + + + + + {{#unless license}} + + 1 + 1 + {{/unless}} + + + + + + + + + + + + + + + + + + + + + + + + + {{#each binaries as |bin| ~}} + + + + {{/each~}} + {{#if enable_elevated_update_task}} + + + + + + + + + + {{/if}} + {{{resources}}} + + + + + + + + + + + + + + + + + + + + + + + + {{#each merge_modules as |msm| ~}} + + + + + + + + {{/each~}} + + + + {{#each resource_file_ids as |resource_file_id| ~}} + + {{/each~}} + + {{#if enable_elevated_update_task}} + + + + {{/if}} + + + + + + + + + + + {{#each binaries as |bin| ~}} + + {{/each~}} + + + + + {{#each component_group_refs as |id| ~}} + + {{/each~}} + {{#each component_refs as |id| ~}} + + {{/each~}} + {{#each feature_group_refs as |id| ~}} + + {{/each~}} + {{#each feature_refs as |id| ~}} + + {{/each~}} + {{#each merge_refs as |id| ~}} + + {{/each~}} + + + {{#if install_webview}} + + + + + + + + + + + {{/if}} + + {{#if enable_elevated_update_task}} + + + + + NOT(REMOVE) + + + + + + + (REMOVE = "ALL") AND NOT UPGRADINGPRODUCTCODE + + + {{/if}} + + + + \ No newline at end of file diff --git a/src-tauri/rustfmt.toml b/src-tauri/rustfmt.toml new file mode 100644 index 00000000..136f5f33 --- /dev/null +++ b/src-tauri/rustfmt.toml @@ -0,0 +1,14 @@ +max_width = 100 +hard_tabs = false +tab_spaces = 2 +newline_style = "Auto" +use_small_heuristics = "Default" +reorder_imports = true +reorder_modules = true +remove_nested_parens = true +edition = "2018" +merge_derives = true +use_try_shorthand = false +use_field_init_shorthand = false +force_explicit_abi = true +imports_granularity = "Crate" diff --git a/src-tauri/src/build.rs b/src-tauri/src/build.rs new file mode 100644 index 00000000..795b9b7c --- /dev/null +++ b/src-tauri/src/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/src/drives.rs b/src-tauri/src/drives.rs new file mode 100644 index 00000000..f19ef2a3 --- /dev/null +++ b/src-tauri/src/drives.rs @@ -0,0 +1,72 @@ +use std::process::Command; +use sysinfo::{DiskExt, System, SystemExt}; +#[derive(serde::Serialize, Debug)] +pub struct DriveInformation { + name: String, + mount_point: String, + total_space: u64, + available_space: u64, + is_removable: bool, + disk_type: String, + file_system: String, +} +#[derive(serde::Serialize)] +pub struct Drives { + array_of_drives: Vec, +} + +#[tauri::command] +pub fn get_drives() -> Result { + let sys = System::new_all(); + let mut array_of_drives = Vec::new(); + for disk in sys.disks() { + let mut total_space: u64 = disk.total_space(); + let available_space: u64 = disk.available_space(); + let mount_point: String = disk.mount_point().to_str().unwrap_or("/").to_string(); + let name: String = disk.name().to_str().unwrap_or("Disk").to_string(); + let is_removable: bool = disk.is_removable(); + let mut caption = mount_point.clone(); + let file_system = String::from_utf8(disk.file_system().to_vec()).unwrap_or("Err".to_string()); + let disk_type: String; + if disk.type_() == sysinfo::DiskType::SSD { + disk_type = "SSD".to_string() + } else if disk.type_() == sysinfo::DiskType::HDD { + disk_type = "HDD".to_string() + } else { + disk_type = "Removable Disk".to_string() + } + caption.pop(); + if total_space < available_space { + if cfg!(target_os = "windows") { + let wmic_process = Command::new("cmd") + .args([ + "/C", + &format!( + "wmic logicaldisk where Caption='{caption}' get Size", + caption = caption + ), + ]) + .output() + .expect("failed to execute process"); + let wmic_process_output = String::from_utf8(wmic_process.stdout).unwrap(); + let parsed_size = wmic_process_output.split("\r\r\n").collect::>()[1].to_string(); + match parsed_size.trim().parse::() { + Ok(n) => total_space = n, + Err(_) => {} + } + } + } + array_of_drives.push(DriveInformation { + name, + mount_point, + total_space, + available_space, + is_removable, + disk_type, + file_system, + }); + } + Ok(Drives { + array_of_drives: array_of_drives, + }) +} diff --git a/src-tauri/src/extractIcon.ps1 b/src-tauri/src/extractIcon.ps1 new file mode 100644 index 00000000..2629c5a3 --- /dev/null +++ b/src-tauri/src/extractIcon.ps1 @@ -0,0 +1,20 @@ +Add-Type -AssemblyName System.Drawing + +$filePath = $args[0]; +$target = $args[1]; +$fileExists = Test-Path -Path $filePath; + +if ($fileExists -and $filePath.EndsWith(".lnk")) { + Try { + $sh = New-Object -ComObject WScript.Shell; + $filePath = $sh.CreateShortcut($filePath).TargetPath; + } + Catch { + <# do nothing #> + } +} + +if ($fileExists) { + $icon = [System.Drawing.Icon]::ExtractAssociatedIcon($filePath); + $icon.ToBitmap().save($target, [System.Drawing.Imaging.ImageFormat]::Png); +} diff --git a/src-tauri/src/file_lib.rs b/src-tauri/src/file_lib.rs new file mode 100644 index 00000000..84fa8711 --- /dev/null +++ b/src-tauri/src/file_lib.rs @@ -0,0 +1,114 @@ +use lazy_static::lazy_static; +use std::collections::HashMap; + +lazy_static! { + static ref FILES_JSON: String = { + let files_json = include_str!("../../lib/files.json"); + files_json.to_string() + }; +} +lazy_static! { + static ref FILE_TYPES: HashMap = { + let files_json = FILES_JSON.clone(); + let files_lib: serde_json::Value = files_json.parse().unwrap(); + let mut file_types = HashMap::new(); + for category in files_lib.as_array().unwrap() { + let obj = category.as_object().unwrap(); + if obj.contains_key("extensions") { + let extensions = obj["extensions"].as_array(); + let extensions = match extensions { + Some(extensions) => extensions, + None => continue, + }; + for extension in extensions { + let ext = extension.as_str().unwrap().to_string(); + let file_type = obj["type"].as_str().unwrap().to_string(); + file_types.insert(ext, file_type); + } + } + } + file_types + }; +} + +lazy_static! { + static ref FILE_NAMES: HashMap = { + let files_json = FILES_JSON.clone(); + let files_lib: serde_json::Value = files_json.parse().unwrap(); + let mut file_types = HashMap::new(); + for category in files_lib.as_array().unwrap() { + let obj = category.as_object().unwrap(); + if obj.contains_key("fileNames") { + let file_names = obj["fileNames"].as_array(); + let file_names = match file_names { + Some(file_names) => file_names, + None => continue, + }; + for file_name in file_names { + let file_type = obj["type"].as_str().unwrap().to_string(); + file_types.insert(file_name.as_str().unwrap().to_string(), file_type); + } + } + } + file_types + }; +} +lazy_static! { + static ref FOLDER_NAMES: HashMap = { + let folder_json = include_str!("../../lib/folder.json"); + + let folder_lib: serde_json::Value = folder_json.parse().unwrap(); + let mut folder_types = HashMap::new(); + for category in folder_lib.as_array().unwrap() { + let obj = category.as_object().unwrap(); + if obj.contains_key("folderNames") { + let folder_names = obj["folderNames"].as_array(); + let folder_names = match folder_names { + Some(folder_names) => folder_names, + None => continue, + }; + let folder_type = obj["type"].as_str(); + let folder_type = match folder_type { + Some(folder_type) => folder_type.to_string(), + None => continue, + }; + for folder_name in folder_names { + let folder_type = folder_type.clone(); + folder_types.insert(folder_name.as_str().unwrap().to_string(), folder_type); + } + } + } + folder_types + }; +} +pub async fn get_type(file_basename: String, is_dir: bool) -> String { + if is_dir { + let folder_type_according_to_name = FILE_NAMES.get(&file_basename); + match folder_type_according_to_name { + Some(folder_type) => folder_type.to_string(), + None => "File Folder".to_string(), + } + } else { + let file_type_according_to_name = FILE_NAMES.get(&file_basename); + if file_type_according_to_name.is_some() { + return file_type_according_to_name.unwrap().to_string(); + } else { + let file_extension = file_basename.split(".").last().unwrap(); + let file_type_according_to_extension = FILE_TYPES.get(file_extension); + match file_type_according_to_extension { + Some(file_type) => file_type.to_string(), + None => { + let file_type = file_extension.to_string(); + file_type + .chars() + .next() + .unwrap() + .to_uppercase() + .collect::() + + &file_type[1..] + + &" File".to_string() + } + } + } + } +} diff --git a/src-tauri/src/files_api.rs b/src-tauri/src/files_api.rs new file mode 100644 index 00000000..ba4be7b8 --- /dev/null +++ b/src-tauri/src/files_api.rs @@ -0,0 +1,547 @@ +use std::fs; +use std::path::Path; +use std::process::Command; +use std::time::SystemTime; +extern crate notify; +extern crate open; +extern crate trash; +use crate::file_lib; +#[cfg(not(target_os = "macos"))] +use normpath::PathExt; +use notify::{raw_watcher, RawEvent, RecursiveMode, Watcher}; +use std::sync::mpsc::channel; + +#[cfg(windows)] +use std::os::windows::prelude::*; +#[cfg(target_os = "windows")] +use std::os::windows::process::CommandExt; + +#[derive(serde::Serialize)] +pub struct FileMetaData { + file_path: String, + basename: String, + file_type: String, + is_dir: bool, + is_hidden: bool, + is_file: bool, + is_system: bool, + size: u64, + readonly: bool, + last_modified: SystemTime, + last_accessed: SystemTime, + created: SystemTime, + is_trash: bool, +} +#[derive(serde::Serialize)] +pub struct TrashMetaData { + file_path: String, + basename: String, + file_type: String, + original_parent: String, + time_deleted: i64, + is_trash: bool, + is_dir: bool, + is_hidden: bool, + is_file: bool, + is_system: bool, + size: u64, + readonly: bool, + last_modified: SystemTime, + last_accessed: SystemTime, + created: SystemTime, +} + +#[derive(serde::Serialize)] +pub struct FolderInformation { + number_of_files: u16, + files: Vec, + skipped_files: Vec, +} + +#[derive(serde::Serialize)] +pub struct TrashInformation { + files: Vec, +} + +#[derive(serde::Serialize)] +pub struct Event { + pub path: String, + pub event: String, +} + +#[derive(serde::Serialize)] +pub struct ReturnInformation { + pub status: bool, + pub message: String, + pub request_confirmation: bool, +} + +fn get_basename(file_path: String) -> String { + let basename = Path::new(&file_path).file_name(); + match basename { + Some(basename) => basename.to_str().unwrap().to_string(), + None => file_path, + } +} + +#[cfg(windows)] +fn check_is_hidden(file_path: String) -> bool { + let metadata = fs::metadata(file_path).unwrap(); + let attributes = metadata.file_attributes(); + (attributes & 0x2) > 0 +} + +#[cfg(unix)] +fn check_is_hidden(file_path: String) -> bool { + let basename = get_basename(file_path); + basename.clone().starts_with(".") +} + +#[cfg(windows)] +fn check_is_system_file(file_path: String) -> bool { + let metadata = fs::metadata(file_path).unwrap(); + let attributes = metadata.file_attributes(); + (attributes & 0x4) > 0 +} + +#[cfg(unix)] +fn check_is_system_file(_: String) -> bool { + false +} + +#[tauri::command] +pub async fn get_file_properties(file_path: String) -> Result { + let metadata = fs::metadata(file_path.clone()); + let metadata = match metadata { + Ok(result) => result, + Err(e) => return Err(e.to_string()), + }; + let is_dir = metadata.is_dir(); + let is_file = metadata.is_file(); + let size = metadata.len(); + let readonly = metadata.permissions().readonly(); + let last_modified = metadata.modified(); + let last_modified = match last_modified { + Ok(result) => result, + Err(e) => return Err(e.to_string()), + }; + let last_accessed = metadata.accessed(); + let last_accessed = match last_accessed { + Ok(result) => result, + Err(e) => return Err(e.to_string()), + }; + let created = metadata.created(); + let created = match created { + Ok(result) => result, + Err(e) => return Err(e.to_string()), + }; + let basename = get_basename(file_path.clone()); + let is_hidden = check_is_hidden(file_path.clone()); + let is_system = check_is_system_file(file_path.clone()); + let file_type = file_lib::get_type(basename.clone(), is_dir).await; + Ok(FileMetaData { + is_system, + is_hidden, + is_dir, + is_file, + size, + readonly, + last_modified, + last_accessed, + created, + file_path, + file_type, + basename, + is_trash: false, + }) +} + +#[tauri::command] +pub async fn get_dir_size(dir: String) -> u64 { + let mut total_size: u64 = 0; + let mut stack = vec![dir]; + while let Some(path) = stack.pop() { + let entry = fs::read_dir(path); + let entry = match entry { + Ok(result) => result, + Err(_) => continue, + }; + for file in entry { + let file = file.unwrap(); + let metadata = file.metadata().unwrap(); + if metadata.is_dir() { + stack.push(file.path().to_str().unwrap().to_string()); + } else { + total_size += metadata.len(); + } + } + } + total_size +} + +#[tauri::command] +pub async fn get_file_meta_data(file_path: String) -> Result { + let properties = get_file_properties(file_path).await; + if properties.is_err() { + Err("Error reading meta data".into()) + } else { + Ok(properties.unwrap()) + } +} +#[tauri::command] +pub fn is_dir(path: &Path) -> Result { + if !Path::new(path).exists() { + Ok(false) + } else { + let md = fs::metadata(path).unwrap(); + Ok(md.is_dir()) + } +} +#[tauri::command] +pub async fn read_directory(dir: &Path) -> Result { + let paths = fs::read_dir(dir).map_err(|err| err.to_string())?; + let mut number_of_files: u16 = 0; + let mut files = Vec::new(); + let mut skipped_files = Vec::new(); + for path in paths { + number_of_files += 1; + let file_name = path.unwrap().path().display().to_string(); + let file_info = get_file_properties(file_name.clone()).await; + if file_info.is_err() { + skipped_files.push(file_name); + continue; + } else { + files.push(file_info.unwrap()) + }; + } + Ok(FolderInformation { + number_of_files, + files, + skipped_files, + }) +} + +#[tauri::command] +pub async fn get_files_in_directory(dir: &Path) -> Result, String> { + let paths = fs::read_dir(dir).map_err(|err| err.to_string())?; + let mut files = Vec::new(); + for path in paths { + files.push(path.unwrap().path().display().to_string()); + } + Ok(files) +} + +#[tauri::command] +pub fn open_file(file_path: String) -> bool { + open::that(file_path).is_ok() +} +#[tauri::command] +pub fn file_exist(file_path: String) -> bool { + fs::metadata(file_path).is_ok() +} + +#[tauri::command] +pub fn create_dir_recursive(dir_path: String) -> bool { + fs::create_dir_all(dir_path).is_ok() +} + +#[tauri::command] +pub fn create_file(file_path: String) -> bool { + fs::write(file_path, "").is_ok() +} +#[tauri::command] +pub fn open_in_terminal(folder_path: String) { + if cfg!(target_os = "windows") { + Command::new("cmd") + .args([ + "/C", + format!( + "{drive} && cd {folderPath} && start cmd", + drive = folder_path.split("/").next().unwrap(), + folderPath = folder_path + ) + .as_str(), + ]) + .output() + .expect("failed to execute process"); + } else if cfg!(target_os = "linux") { + Command::new("sh") + .arg("-c") + .arg( + format!( + "gnome-terminal --working-directory={folderPath}", + folderPath = folder_path + ) + .as_str(), + ) + .output() + .expect("failed to execute process"); + } else { + Command::new("sh") + .arg("-c") + .arg(format!("open -a Terminal {folderPath}", folderPath = folder_path).as_str()) + .output() + .expect("failed to execute process"); + } +} + +#[tauri::command] +pub fn open_in_vscode(path: String) { + if cfg!(target_os = "windows") { + Command::new("cmd") + .args(["/C", format!("code {path}", path = path).as_str()]) + .output() + .expect("failed to execute process") + } else { + Command::new("sh") + .arg("-c") + .arg(format!("code {path}", path = path).as_str()) + .output() + .expect("failed to execute process") + }; +} + +#[cfg(not(target_os = "macos"))] +#[tauri::command] +pub async fn get_trashed_items() -> Result { + let _trash_items = trash::os_limited::list().map_err(|err| err.to_string())?; + let mut trash_files = Vec::new(); + for item in _trash_items { + let properties = get_file_properties(item.id.to_str().unwrap().to_string()).await; + if properties.is_err() { + continue; + } else { + let properties = properties.unwrap(); + trash_files.push(TrashMetaData { + file_path: item.id.to_str().unwrap().to_string(), + basename: item.name.clone(), + original_parent: item.original_parent.into_os_string().into_string().unwrap(), + file_type: properties.file_type, + time_deleted: item.time_deleted, + is_trash: true, + is_dir: properties.is_dir, + is_file: properties.is_file, + is_hidden: properties.is_hidden, + is_system: properties.is_system, + size: properties.size, + readonly: properties.readonly, + last_modified: properties.last_modified, + last_accessed: properties.last_accessed, + created: properties.created, + }) + } + } + Ok(TrashInformation { files: trash_files }) +} +#[cfg(target_os = "macos")] +#[tauri::command] +pub async fn get_trashed_items() -> Result { + Err("macOS is not supported currently".into()) +} + +#[tauri::command] +pub fn delete_file(paths: Vec) -> bool { + trash::delete_all(paths).is_ok() +} + +#[cfg(not(target_os = "macos"))] +#[tauri::command] +pub fn purge_trashes(paths: Vec) -> Result { + let mut status = true; + for path in paths { + let result = + trash::os_limited::purge_all(trash::os_limited::list().unwrap().into_iter().filter(|x| { + Path::new(&x.id.to_str().unwrap().to_string()) + .normalize() + .unwrap() + == Path::new(&path).normalize().unwrap() + })); + if result.is_err() { + status = false; + } + } + Ok(status) +} + +#[cfg(target_os = "macos")] +#[tauri::command] +pub fn purge_trashes(_paths: Vec) -> Result { + Err("macOS is not supported currently".into()) +} + +#[cfg(not(target_os = "macos"))] +#[tauri::command] +pub fn restore_trash( + original_parent: String, + basename: String, +) -> Result { + let mut status = true; + let mut message = String::new(); + let request_confirmation = false; + let result = + trash::os_limited::restore_all(trash::os_limited::list().unwrap().into_iter().filter(|x| { + (x.name.clone() == basename.clone()) + && (Path::new(&x.original_parent.clone()).normalize().unwrap() + == Path::new(&original_parent).normalize().unwrap()) + })); + if result.is_err() { + status = false; + message = result.err().unwrap().to_string(); + } + Ok(ReturnInformation { + status: status, + message: message, + request_confirmation: request_confirmation, + }) +} +#[cfg(target_os = "macos")] +#[tauri::command] +pub fn restore_trash( + _original_parent: String, + _basename: String, +) -> Result { + Ok(ReturnInformation { + status: false, + message: "macOS is not supported currently".to_string(), + request_confirmation: false, + }) +} +#[cfg(not(target_os = "macos"))] +#[tauri::command] +pub fn restore_files(paths: Vec, force: bool) -> Result { + let mut status = true; + let mut message = String::new(); + let mut request_confirmation = false; + for path in paths { + let trash_items = trash::os_limited::list().unwrap().into_iter().filter(|x| { + if Path::new(&x.id.to_str().unwrap().to_string()) + .normalize() + .unwrap() + == Path::new(&path).normalize().unwrap() + { + let target = Path::new(&x.original_parent).join(x.name.clone()); + if target.clone().exists() { + if force { + let metadata = fs::metadata(target.clone()).unwrap(); + if metadata.is_dir() { + fs::remove_dir_all(target).unwrap() + } else { + fs::remove_file(target).unwrap() + }; + true + } else { + status = false; + message = "Target directory with the same name already exist.".to_string(); + request_confirmation = true; + false + } + } else { + fs::create_dir_all(x.original_parent.clone()).is_ok() + } + } else { + false + } + }); + let result = trash::os_limited::restore_all(trash_items); + if result.is_err() { + status = false; + } + } + Ok(ReturnInformation { + status: status, + message: message, + request_confirmation: request_confirmation, + }) +} +#[cfg(target_os = "macos")] +#[tauri::command] +pub fn restore_files(_paths: Vec, _force: bool) -> Result { + Ok(ReturnInformation { + status: false, + message: "macOS is not supported currently".to_string(), + request_confirmation: false, + }) +} + +#[tauri::command] +pub async fn listen_dir(dir: String, window: tauri::Window) -> Result { + let (tx, rx) = channel(); + + let watcher = std::sync::Arc::new(std::sync::Mutex::new(raw_watcher(tx).unwrap())); + + watcher + .lock() + .unwrap() + .watch(dir.clone(), RecursiveMode::NonRecursive) + .unwrap(); + + window.once("unlisten_dir", move |_| { + watcher.lock().unwrap().unwatch(dir.clone()).unwrap(); + }); + loop { + match rx.recv() { + Ok(RawEvent { + path: Some(path), + op: Ok(op), + .. + }) => { + //window.emit("changes", path.to_str().unwrap().to_string()); + let event: String; + if op.contains(notify::op::CREATE) { + event = "create".to_string(); + } else if op.contains(notify::op::REMOVE) { + event = "remove".to_string(); + } else if op.contains(notify::op::RENAME) { + event = "rename".to_string(); + } else { + event = "unknown".to_string(); + } + if event != "unknown" { + window + .emit( + "changes", + Event { + path: path.to_str().unwrap().to_string(), + event: event, + }, + ) + .unwrap(); + } + println!("{:?} {:?} {:?}", op, path.clone(), window.label()); + } + Ok(event) => println!("broken event: {:?}", event), + Err(e) => break Err(e.to_string()), + } + } +} +use tauri::api::path::local_data_dir; + +#[cfg(target_os = "windows")] +#[tauri::command] +pub async fn extract_icon(file_path: String) -> Result { + let storage_dir = Path::new(&local_data_dir().unwrap()).join("Xplorer/cache"); + fs::create_dir_all(storage_dir.clone()).unwrap(); + let basename = get_basename(file_path.clone()); + let icon_path = storage_dir.join(basename.clone() + ".png"); + if icon_path.exists() { + Ok(icon_path.to_str().unwrap().to_string()) + } else { + Command::new("powershell") + .args(&[ + "./src/extractIcon.ps1", + file_path.as_str(), + icon_path.to_str().unwrap(), + ]) + .creation_flags(0x08000000) + .output() + .expect("Failed to extract icon"); + + Ok(icon_path.to_str().unwrap().to_string()) + } +} + +#[cfg(not(target_os = "windows"))] +#[tauri::command] +pub async fn extract_icon(_file_path: String) -> Result { + Err("Not supported".to_string()) +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 00000000..103fe703 --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,119 @@ +#![cfg_attr( + all(not(debug_assertions), target_os = "windows"), + windows_subsystem = "windows" +)] +mod drives; +mod file_lib; +mod files_api; +mod storage; +use font_loader::system_fonts; +use std::env; +#[cfg(target_os = "windows")] +use std::os::windows::process::CommandExt; +use std::path::Path; +use std::process::Command; + +extern crate path_absolutize; +use path_absolutize::*; + +#[derive(serde::Serialize)] +struct ArgsStruct { + args: Vec, + flags: Vec, +} +#[tauri::command] +fn get_cli_args() -> Result { + let mut args = Vec::new(); + let mut flags = Vec::new(); + for arg in env::args().skip(1) { + if arg.starts_with("-") { + flags.push(arg) + } else { + let dir = Path::new(&arg); + let absolute_path = dir.absolutize(); + if absolute_path.is_err() { + println!("{:?}", absolute_path.err()); + } else { + args.push( + absolute_path + .unwrap() + .into_owned() + .into_os_string() + .into_string() + .unwrap(), + ) + } + } + } + Ok(ArgsStruct { args, flags }) +} + +#[cfg(target_os = "windows")] +#[tauri::command] +async fn check_vscode_installed() -> Result { + let output = Command::new("cmd") + .args(["/C", "code -v"]) + .creation_flags(0x08000000) + .output() + .expect("failed to execute process"); + if output.status.success() { + Ok(true) + } else { + Ok(false) + } +} + +#[cfg(not(target_os = "windows"))] +#[tauri::command] +async fn check_vscode_installed() -> Result { + let output = Command::new("sh") + .arg("-c") + .arg("code -v") + .output() + .expect("failed to execute process"); + if output.status.success() { + Ok(true) + } else { + Ok(false) + } +} + +#[tauri::command] +fn get_available_fonts() -> Result, String> { + let fonts = system_fonts::query_all(); + Ok(fonts) +} + +fn main() { + tauri::Builder::default() + .invoke_handler(tauri::generate_handler![ + files_api::read_directory, + files_api::is_dir, + files_api::get_file_meta_data, + files_api::open_file, + files_api::file_exist, + files_api::create_file, + files_api::create_dir_recursive, + files_api::open_in_terminal, + files_api::open_in_vscode, + files_api::get_trashed_items, + files_api::delete_file, + files_api::get_files_in_directory, + files_api::listen_dir, + files_api::restore_files, + files_api::purge_trashes, + files_api::restore_trash, + files_api::get_dir_size, + files_api::get_file_properties, + files_api::extract_icon, + drives::get_drives, + storage::write_data, + storage::read_data, + storage::delete_storage_data, + get_cli_args, + check_vscode_installed, + get_available_fonts + ]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/src-tauri/src/storage.rs b/src-tauri/src/storage.rs new file mode 100644 index 00000000..66deb98c --- /dev/null +++ b/src-tauri/src/storage.rs @@ -0,0 +1,48 @@ +use std::fs; +use std::path::Path; +use tauri::api::path::local_data_dir; + +#[derive(serde::Serialize)] +pub struct StorageData { + data: String, + status: bool, +} + +#[tauri::command] +pub fn write_data(key: String, data: String) -> bool { + let storage_dir = Path::new(&local_data_dir().unwrap()).join("Xplorer"); + let mut result = match fs::create_dir_all(storage_dir.clone()) { + Ok(..) => true, + Err(..) => false, + }; + result = match fs::write(storage_dir.join(key), data) { + Ok(..) => true && result, + Err(..) => false, + }; + result +} + +#[tauri::command] +pub fn read_data(key: String) -> Result { + let storage_dir = Path::new(&local_data_dir().unwrap()).join("Xplorer"); + let mut status = true; + let data: String; + match fs::read_to_string(storage_dir.join(key)) { + Ok(result) => data = result, + Err(e) => { + status = false; + data = e.to_string() + } + } + Ok(StorageData { data, status }) +} + +#[tauri::command] +pub fn delete_storage_data(key: String) { + let storage_dir = Path::new(&local_data_dir().unwrap()).join("Xplorer"); + + match fs::remove_file(storage_dir.join(key)) { + Ok(..) => {} + Err(..) => {} + } +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 00000000..8a9e6d22 --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,82 @@ +{ + "package": { + "productName": "Xplorer", + "version": "0.2.0" + }, + "build": { + "distDir": "../out/src", + "devPath": "http://localhost:8080", + "beforeDevCommand": "", + "beforeBuildCommand": "", + "withGlobalTauri": true + }, + "tauri": { + "bundle": { + "active": true, + "targets": "all", + "identifier": "Justin Maximillian Kimlim", + "icon": ["icons/32x32.png", "icons/128x128.png", "icons/128x128@2x.png", "icons/icon.icns", "icons/icon.ico"], + "resources": ["../lib/files.json", "../lib/folder.json", "./src/extractIcon.ps1"], + "externalBin": [], + "copyright": "Apache-2.0", + "category": "DeveloperTool", + "shortDescription": "", + "longDescription": "", + "deb": { + "depends": [], + "useBootstrapper": false + }, + "macOS": { + "frameworks": [], + "minimumSystemVersion": "", + "useBootstrapper": false, + "exceptionDomain": "", + "signingIdentity": null, + "entitlements": null, + "license": "../LICENSE" + }, + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "", + "wix": { + "template": "./installer.wxs", + "license": "../LICENSE" + } + } + }, + "updater": { + "active": false + }, + "allowlist": { + "all": true, + "fs": { + "all": true, + "copyFile": true, + "createDir": true, + "readBinaryFile": true, + "readDir": true, + "readTextFile": true, + "removeDir": true, + "removeFile": true, + "renameFile": true, + "writeBinaryFile": true, + "writeFile": true + } + }, + "windows": [ + { + "title": "Xplorer", + "width": 1000, + "height": 700, + "resizable": true, + "fullscreen": false, + "decorations": false, + "transparent": true + } + ], + "security": { + "csp": "default-src asset: blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'" + } + } +} diff --git a/src/Api/app.ts b/src/Api/app.ts new file mode 100644 index 00000000..82eff59e --- /dev/null +++ b/src/Api/app.ts @@ -0,0 +1,14 @@ +import { invoke } from '@tauri-apps/api'; +let _vscodeInstalled: boolean | undefined; +const isVSCodeInstalled = async (): Promise => { + if (_vscodeInstalled === undefined) { + _vscodeInstalled = await invoke('check_vscode_installed'); + } + return _vscodeInstalled; +}; + +const getAvailableFonts = async (): Promise => { + return await invoke('get_available_fonts'); +}; + +export { isVSCodeInstalled, getAvailableFonts }; diff --git a/src/Api/cli.ts b/src/Api/cli.ts new file mode 100644 index 00000000..018ba56b --- /dev/null +++ b/src/Api/cli.ts @@ -0,0 +1,13 @@ +import { invoke } from '@tauri-apps/api'; +interface CliArgsReturnType { + args: string[]; + flags: string[]; +} +const CLIInformations = async (): Promise<{ + args: string[]; + flags: string[]; +}> => { + const { args, flags } = (await invoke('get_cli_args')) as CliArgsReturnType; + return { args, flags }; +}; +export default CLIInformations; diff --git a/src/Api/clipboard.ts b/src/Api/clipboard.ts new file mode 100644 index 00000000..30bcfda0 --- /dev/null +++ b/src/Api/clipboard.ts @@ -0,0 +1,19 @@ +import { clipboard } from '@tauri-apps/api'; + +/** + * Write text into clipboard + * @param {string} text - Text you want to write to clipboard + * @returns {void} + */ +const writeTextToClipboard = async (text: string): Promise => { + return await clipboard.writeText(text); +}; + +/** + * Read clipboard text + * @returns {Promise} + */ +const readTextFromClipboard = async (): Promise => { + return await clipboard.readText(); +}; +export { writeTextToClipboard, readTextFromClipboard }; diff --git a/src/Api/directory.ts b/src/Api/directory.ts new file mode 100644 index 00000000..fd767ade --- /dev/null +++ b/src/Api/directory.ts @@ -0,0 +1,94 @@ +import joinPath from '../Components/Functions/path/joinPath'; +import normalizeSlash from '../Components/Functions/path/normalizeSlash'; +import { invoke } from '@tauri-apps/api'; +import type FileMetaData from '../Typings/fileMetaData'; +import { getCurrent } from '@tauri-apps/api/window'; +import { UnlistenFn } from '@tauri-apps/api/event'; +let listener: UnlistenFn; +interface DirectoryData { + files: FileMetaData[]; + number_of_files: number; + skipped_files: string[]; +} +/** + * Invoke Rust command to read information of a directory + */ +class DirectoryAPI { + readonly dirName: string; + readonly parentDir: string; + files: FileMetaData[]; + constructor(dirName: string, parentDir?: string) { + if (parentDir) { + this.parentDir = normalizeSlash(parentDir); + this.dirName = normalizeSlash(joinPath(parentDir, dirName)); + } else this.dirName = normalizeSlash(dirName); + } + /** + * Get files inside a directory + * @returns {Promise} + */ + getFiles(): Promise { + return new Promise((resolve) => { + invoke('read_directory', { dir: this.dirName }).then((files: DirectoryData) => { + this.files = files.files; + resolve(files); + }); + }); + } + /** + * Check if given path is directory + * @returns {Promise} + */ + async isDir(): Promise { + return new Promise((resolve) => { + invoke('is_dir', { path: this.dirName }).then((result: boolean) => resolve(result)); + }); + } + /** + * Return true if folder exist + * @returns {boolean} + */ + async exists(): Promise { + return await invoke('file_exist', { filePath: this.dirName }); + } + /** + * Create dir if not exists + * @returns {any} + */ + async mkdir(): Promise { + return await invoke('create_dir_recursive', { + dirPath: this.dirName, + }); + } + + /** + * Listen to changes in a directory + * @param {() => void} cb - callback + * @returns {any} + */ + async listen(cb: () => void): Promise { + invoke('listen_dir', { dir: this.dirName }); + listener = await getCurrent().listen('changes', (e) => { + console.log(e); + cb(); + }); + } + /** + * Unlisten to previous listener + * @returns {Promise} + */ + async unlisten(): Promise { + listener?.(); + return getCurrent().emit('unlisten_dir'); + } + + /** + * Get size of a directory + * @returns {Promise} + */ + async getSize(): Promise { + return await invoke('get_dir_size', { dir: this.dirName }); + } +} + +export default DirectoryAPI; diff --git a/src/Api/drives.ts b/src/Api/drives.ts new file mode 100644 index 00000000..c413b30b --- /dev/null +++ b/src/Api/drives.ts @@ -0,0 +1,94 @@ +import { invoke } from '@tauri-apps/api/tauri'; +import OS from './platform'; +interface Drive { + name: string; + mount_point: string; + total_space: number; + available_space: number; + is_removable: boolean; + disk_type: 'HDD' | 'SSD' | 'Removable Disk'; + file_system: string; +} + +interface UniqueDrive { + mount_point: string; + name: string; +} + +let platform: string; +(async () => { + if (!platform) { + platform = await OS(); + } +})(); + +/** + * Invoke Rust command to list user's drive + */ +class DrivesAPI { + DRIVES: Drive[]; + /** + * List all user's drives + * @returns {Promise} + */ + get(): Promise { + return new Promise((resolve) => { + invoke('get_drives').then( + (drives: { array_of_drives: Drive[] }) => { + let filteredDrives = drives.array_of_drives.filter( + (drive) => drive.available_space > 0 + ); + if (platform !== 'win32') { + filteredDrives = filteredDrives.filter( + (drive) => drive.is_removable + ); + } + resolve(filteredDrives); + } + ); + }); + } + async build(): Promise { + this.DRIVES = await this.get(); + } + /** + * Filter drives into unique drives regardless space + * @param {Array} drives - drives array + * @returns {UniqueDrive[]} unique drives array + */ + getUniqueDrives(drives: Array): Array { + const result: UniqueDrive[] = []; + drives.forEach((drive) => + result.push({ + mount_point: drive.mount_point, + name: + drive.name && /[^?]/.test(drive.name) + ? drive.name + : drive.disk_type, + }) + ); + return result; + } + /** + * Listen to drives state changes + * @param {() => void} cb Callback function + * @returns {Promise} + */ + async detectChange(cb: () => void): Promise { + await this.build(); + let _drives = JSON.stringify(this.getUniqueDrives(this.DRIVES)); + setInterval(async () => { + await this.build(); + const _refreshedDrive = JSON.stringify( + this.getUniqueDrives(this.DRIVES) + ); + if (_refreshedDrive !== _drives) { + cb(); + } + _drives = _refreshedDrive; + }, 500); + } +} + +export default DrivesAPI; +export { Drive }; diff --git a/src/Api/favorites.ts b/src/Api/favorites.ts new file mode 100644 index 00000000..5ae903e7 --- /dev/null +++ b/src/Api/favorites.ts @@ -0,0 +1,22 @@ +import { path } from '@tauri-apps/api'; + +class FavoritesAPI { + DOCUMENT_PATH: string; + DOWNLOAD_PATH: string; + DESKTOP_PATH: string; + PICTURE_PATH: string; + MUSIC_PATH: string; + VIDEO_PATH: string; + HOMEDIR_PATH: string; + async build(): Promise { + this.DOCUMENT_PATH = await path.documentDir(); + this.DOWNLOAD_PATH = await path.downloadDir(); + this.DESKTOP_PATH = await path.desktopDir(); + this.PICTURE_PATH = await path.pictureDir(); + this.MUSIC_PATH = await path.audioDir(); + this.VIDEO_PATH = await path.videoDir(); + this.HOMEDIR_PATH = await path.homeDir(); + } +} + +export default FavoritesAPI; diff --git a/src/Api/files.ts b/src/Api/files.ts new file mode 100644 index 00000000..9480092a --- /dev/null +++ b/src/Api/files.ts @@ -0,0 +1,98 @@ +import { fs, invoke, tauri } from '@tauri-apps/api'; +import joinPath from '../Components/Functions/path/joinPath'; +import dirname from '../Components/Functions/path/dirname'; +import FileMetaData from '../Typings/fileMetaData'; + +/** Invoke Rust command to handle files */ +class FileAPI { + readonly fileName: string; + readonly parentDir: string; + /** + * Construct FileAPI Class + * @param {string} fileName - Your file path + * @param {string} parentDir - Parent directory of the file + */ + constructor(fileName: string, parentDir?: string) { + if (parentDir) { + this.parentDir = parentDir; + this.fileName = joinPath(parentDir, fileName); + } else this.fileName = fileName; + } + /** + * Read text file + * @returns {Promise} + */ + readFile(): Promise { + return new Promise((resolve) => { + fs.readTextFile(this.fileName).then((fileContent) => resolve(fileContent)); + }); + } + + async readBuffer(): Promise { + const Buffer = require('buffer/').Buffer; + return Buffer.from(await fs.readBinaryFile(this.fileName)); + } + /** + * Open file on default app + * @returns {Promise} + */ + async openFile(): Promise { + return await invoke('open_file', { filePath: this.fileName }); + } + /** + * Get tauri url of local assets + * @returns {string} + */ + readAsset(): string { + return tauri.convertFileSrc(this.fileName); + } + /** + * Read file and return as JSON + * @returns {Promise} + */ + async readJSONFile(): Promise { + const content = await this.readFile(); + return JSON.parse(content); + } + + /** + * Return true if file exist + * @returns {boolean} + */ + async exists(): Promise { + return await invoke('file_exist', { filePath: this.fileName }); + } + /** + * Create file if it doesn't exist + * @returns {Promise} + */ + async createFile(): Promise { + await invoke('create_dir_recursive', { + dirPath: dirname(this.fileName), + }); + return await invoke('create_file', { filePath: this.fileName }); + } + /** + * Read properties of a file + * @returns {Promise} + */ + async properties(): Promise { + return await invoke('get_file_properties', { filePath: this.fileName }); + } + + /** + * Check if given path is directory + * @returns {Promise} + */ + async isDir(): Promise { + return new Promise((resolve) => { + invoke('is_dir', { path: this.fileName }).then((result: boolean) => resolve(result)); + }); + } + + async extractIcon(): Promise { + return await invoke('extract_icon', { filePath: this.fileName }); + } +} + +export default FileAPI; diff --git a/src/Api/locales.ts b/src/Api/locales.ts new file mode 100644 index 00000000..f5b171dc --- /dev/null +++ b/src/Api/locales.ts @@ -0,0 +1,29 @@ +import localesInformation from '../Locales/index.json'; + +interface AvailableLocalesType { + [key: string]: string; +} + +interface Locales { + [key: string]: { + [key: string]: string; + }; +} +class LocalesAPI { + AVAILABLE_LOCALES: AvailableLocalesType; + LOCALES: Locales; + constructor() { + this.LOCALES = {}; + } + async build(): Promise { + this.AVAILABLE_LOCALES = localesInformation.availableLanguages; + for (const locale of Object.values(this.AVAILABLE_LOCALES)) { + const localeJSON = await import( + '../Locales/' + (locale === 'en-US' ? 'base' : locale) + '.json' + ); + this.LOCALES[locale] = localeJSON; + } + } +} + +export default LocalesAPI; diff --git a/src/Api/operation.ts b/src/Api/operation.ts new file mode 100644 index 00000000..d43823dc --- /dev/null +++ b/src/Api/operation.ts @@ -0,0 +1,41 @@ +import { + copyFile, + renameFile, + removeDir, + removeFile, +} from '@tauri-apps/api/fs'; +import DirectoryAPI from './directory'; +/** + * Invoke Rust command to operate files/dirs + */ +class OperationAPI { + readonly src: string; + readonly dest: string; + constructor(src: string, dest?: string) { + this.src = src; + this.dest = dest; + } + /** + * Copy files/dirs + * @returns {Promise} + */ + async copyFile(): Promise { + return await copyFile(this.src, this.dest); + } + /** + * Rename file/dir + * @returns {any} + */ + async rename(): Promise { + return await renameFile(this.src, this.dest); + } + + async unlink(): Promise { + if (await new DirectoryAPI(this.src).isDir()) { + return await removeDir(this.src, { recursive: true }); + } else { + return await removeFile(this.src); + } + } +} +export default OperationAPI; diff --git a/src/Api/platform.ts b/src/Api/platform.ts new file mode 100644 index 00000000..6e7b5148 --- /dev/null +++ b/src/Api/platform.ts @@ -0,0 +1,9 @@ +import { os } from '@tauri-apps/api'; + +const OS = async (): Promise => { + const platform = await os.platform(); + if (platform === 'windows') return 'win32'; + if (platform === 'macos') return 'darwin'; + return await os.platform(); +}; +export default OS; diff --git a/src/Api/reveal.ts b/src/Api/reveal.ts new file mode 100644 index 00000000..ffc4d31a --- /dev/null +++ b/src/Api/reveal.ts @@ -0,0 +1,14 @@ +import { invoke } from '@tauri-apps/api'; +/** + * Open file/dir in a specified application + * @returns {any} + */ +const reveal = async (path: string, app: string): Promise => { + switch (app) { + case 'vscode': + return await invoke('open_in_vscode', { path }); + case 'terminal': + return await invoke('open_in_terminal', { folderPath: path }); + } +}; +export default reveal; diff --git a/src/Api/storage.ts b/src/Api/storage.ts new file mode 100644 index 00000000..ccfc2b71 --- /dev/null +++ b/src/Api/storage.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { invoke } from '@tauri-apps/api'; + +/** + * Set information to local storage + * @param {string} key - Information key + * @param {any} data - Your data + * @returns {Promise} + */ +const set = async (key: string, data: any): Promise => { + return await invoke('write_data', { key, data: JSON.stringify(data) }); +}; + +/** + * Get information from local storage + * @param {string} key - Information key + * @returns {Promise} - Your data + */ +const get = async (key: string): Promise => { + interface returnedType { + status: boolean; + data: any; + } + const returnedData = (await invoke('read_data', { key })) as returnedType; + return returnedData.status ? JSON.parse(returnedData.data) : {}; +}; + +/** + * Remove a data + * @param {string} key + * @returns {any} + */ +const remove = async (key: string): Promise => { + await invoke('delete_storage_data', { key }); +}; + +const Storage = { set, get, remove }; +export default Storage; diff --git a/src/Api/trash.ts b/src/Api/trash.ts new file mode 100644 index 00000000..d78e0c13 --- /dev/null +++ b/src/Api/trash.ts @@ -0,0 +1,68 @@ +import { invoke } from '@tauri-apps/api'; +import FileMetaData from '../Typings/fileMetaData'; + +interface TrashData { + files: FileMetaData[]; +} + +interface ReturnInformation { + status: boolean; + message: string; + request_confirmation: boolean; +} +/** + * Get list of files in trash + * + * @returns {Promise} + */ +const getTrashedFiles = (): Promise => { + return new Promise((resolve) => { + invoke('get_trashed_items').then((result) => resolve(result as TrashData)); + }); +}; + +/** + * Move files/dirs to trash + * @param {string} paths - Paths to be deleted + * @returns {Promise} + */ +const DeleteFiles = (paths: string[]): Promise => { + return new Promise((resolve) => { + invoke('delete_file', { paths }).then(() => resolve()); + }); +}; + +/** + * Restore files/dirs from trash + * @param {string[]} paths - Paths to be restored + * @param {boolean} force - Force restore + * @returns {Promise} - Promise that resolves when files are restored + */ +const RestoreFiles = async (paths: string[], force = false): Promise => { + return new Promise((resolve) => { + invoke('restore_files', { paths, force }).then((result) => resolve(result as ReturnInformation)); + }); +}; + +/** + * Delete files/dirs from trash permanently + * @param {string[]} paths + * @returns {Promise} + */ +const PurgeFiles = (paths: string[]): Promise => { + return new Promise((resolve) => { + invoke('purge_trashes', { paths }).then(() => resolve()); + }); +}; + +/** + * Restore a file according with original parent and basename known + * @param {string} original_parent + * @param {string} basename + * @returns {Promise} + */ +const RestoreFile = async (original_parent: string, basename: string): Promise => { + return await invoke('restore_trash', { originalParent: original_parent, basename }); +}; + +export { getTrashedFiles, DeleteFiles, RestoreFiles, PurgeFiles, RestoreFile }; diff --git a/src/Api/window.ts b/src/Api/window.ts new file mode 100644 index 00000000..8d653db0 --- /dev/null +++ b/src/Api/window.ts @@ -0,0 +1,28 @@ +import { window, event } from '@tauri-apps/api'; +import { WebviewWindow } from '@tauri-apps/api/window'; + +const windowName = window.getCurrent().label; +const listenWindowClose = (): Promise => { + return new Promise((resolve) => { + event.listen('tauri://close-requested', () => resolve()); + }); +}; + +const createNewWindow = (): void => { + new WebviewWindow(Math.random().toString(), { + decorations: false, + transparent: true, + title: 'Xplorer', + }); +}; + +const changeWindowTitle = (title: string): void => { + window.getCurrent().setTitle(`${title} - Xplorer`); +}; + +const setDecorations = (decorations: boolean): void => { + window.getCurrent().setDecorations(decorations); +}; + +export default windowName; +export { listenWindowClose, createNewWindow, changeWindowTitle, setDecorations }; diff --git a/src/Components/Config/file.config.ts b/src/Components/Config/file.config.ts deleted file mode 100644 index 465f5e10..00000000 --- a/src/Components/Config/file.config.ts +++ /dev/null @@ -1,505 +0,0 @@ -import { URLify, eURLify } from '../Functions/urlify'; -import fs from 'fs'; - -interface FileConfigType { - extension?: string[]; - fileNames?: string[]; - type: string; - preview?: (filePath: string, cb: (html: string) => void) => void; - thumbnail?: (filePath?: string) => string; -} - -const IMAGE_TYPES = [ - 'jpg', - 'png', - 'gif', - 'bmp', - 'jpeg', - 'jpe', - 'jif', - 'jfif', - 'jfi', - 'webp', - 'tiff', - 'tif', - 'ico', - 'svg', - 'webp', -]; -const VIDEO_TYPES = [ - 'mp4', - 'webm', - 'mpg', - 'mp2', - 'mpeg', - 'mpe', - 'mpv', - 'ocg', - 'm4p', - 'm4v', - 'avi', - 'wmv', - 'mov', - 'qt', - 'flv', - 'swf', -]; - -const previewCode = (filePath: string, language?: string) => { - const hljs = require('highlight.js'); - const highlightedCode = language - ? hljs.highlight(fs.readFileSync(filePath, 'utf8'), { - language: language, - }).value //eslint-disable-line no-mixed-spaces-and-tabs - : hljs.highlightAuto(fs.readFileSync(filePath, 'utf8')).value; - return `
${highlightedCode}
`; -}; - -const FileConfig = (): FileConfigType[] => { - return [ - { - extension: ['js'], - type: 'JavaScript', - thumbnail: () => 'extension/javascript.svg', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'javascript')), - }, - { - extension: ['ts'], - type: 'TypeScript', - thumbnail: () => 'extension/typescript.svg', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'typescript')), - }, - { - extension: ['html', 'htm', 'xhtml', 'html_vm', 'asp'], - thumbnail: () => 'extension/html.svg', - type: 'HyperText Markup Language', - preview: (filePath: string, cb: (html: string) => void) => - cb( - `` - ), - }, - { - extension: ['pdf'], - type: 'Portable Document Format', - thumbnail: () => 'extension/pdf.svg', - preview: (filePath: string, cb: (html: string) => void) => { - cb( - `` - ); - }, - }, - { - extension: ['doc', 'docb', 'docm', 'dot', 'dotm', 'docx', 'rtf'], - type: 'Word Document', - thumbnail: () => 'extension/word.svg', - preview: (filePath: string, cb: (html: string) => void) => { - if (filePath.endsWith('docx')) { - const mammoth = require('mammoth'); - mammoth - .convertToHtml({ path: filePath }) - .then(({ value }: { value: string }) => { - cb( - eURLify( - `
${value}
` - ) - ); - }); - } - }, - }, - { - extension: ['xlsx', 'xls', 'xlsb', 'xls', 'ods', 'fods', 'csv'], - type: 'Excel Document', - thumbnail: () => 'extension/excel.svg', - preview: (filePath: string, cb: (html: string) => void) => { - const XLSX = require('xlsx'); - const xlsxData = XLSX.readFile(filePath); - const parsedData = XLSX.utils.sheet_to_html( - xlsxData.Sheets[xlsxData.SheetNames[0]] - ); - cb( - `
${URLify( - parsedData - )}
` - ); - }, - }, - { - extension: [ - 'pot', - 'potm', - 'potx', - 'ppam', - 'pps', - 'ppsm', - 'ppsx', - 'ppt', - 'pptn', - 'pptx', - ], - thumbnail: () => 'extension/powerpoint.svg', - type: 'Powerpoint Document', - }, - { - extension: [ - '7z', - 'brotli', - 'bzip2', - 'gz', - 'gzip', - 'rar', - 'tgz', - 'xz', - 'zip', - ], - type: 'Archive', - thumbnail: () => 'extension/zip.svg', - }, - { - extension: [ - 'accdb', - 'db', - 'db3', - 'mdb', - 'pdb', - 'pgsql', - 'pkb', - 'pks', - 'postgres', - 'psql', - 'sql', - 'sqlite', - 'sqlite3', - ], - type: 'Database', - thumbnail: () => 'extension/database.svg', - }, - { - extension: ['bat'], - type: 'Batch', - thumbnail: () => 'extension/bat.svg', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'bat')), - }, - { - extension: ['exe'], - type: 'Executable', - thumbnail: (filePath: string) => { - const storage = require('electron-json-storage-sync'); - const preference = storage.get('preference')?.data; - const extractExeIcon = - require('../Functions/extractExeIcon').default; - try { - if ( - (preference?.extractExeIcon ?? false) && - process.platform === 'win32' - ) { - return extractExeIcon(filePath); - } - } catch (err) { - console.log(err); - return 'extension/exe.svg'; - } - extractExeIcon(filePath); - }, - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'bat')), - }, - { - extension: ['cc', 'cpp', 'cxx', 'c++', 'cp', 'mm', 'mii', 'ii'], - thumbnail: () => 'extension/cpp.svg', - type: 'C++ Program', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'c++')), - }, - { - extension: ['c'], - thumbnail: () => 'extension/c.svg', - type: 'C Program', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'c')), - }, - { - extension: ['h'], - thumbnail: () => 'extension/h.svg', - type: 'C Header File', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'c')), - }, - { - extension: ['py', 'py3'], - thumbnail: () => 'extension/python.svg', - type: 'Python Program', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'python')), - }, - { - extension: ['pyc', 'pylintrc', 'python-version'], - thumbnail: () => 'extension/python-misc.svg', - type: 'Python Program', - }, - { - extension: ['txt'], - thumbnail: () => 'extension/txt.svg', - type: 'Text Document', - preview: (filePath: string, cb: (html: string) => void) => { - cb( - `
${fs - .readFileSync(filePath, 'utf8') - .replaceAll('\n', '
')}
` - ); - }, - }, - { - extension: IMAGE_TYPES, - type: 'Image', - thumbnail: (filePath: string) => filePath, - preview: (filePath: string, cb: (html: string) => void) => - cb( - `
` - ), - }, - { - extension: VIDEO_TYPES, - type: 'Video', - preview: (filePath: string, cb: (html: string) => void) => - cb( - `
` - ), - }, - { - extension: ['deb', 'msi', 'snap'], - thumbnail: () => 'extension/exe.svg', - type: 'Installer', - }, - { - extension: ['iso'], - type: 'Disk Image File', - thumbnail: () => 'extension/disc.svg', - }, - { - extension: ['dockerfile', 'dockerignore'], - fileNames: [ - 'dockerfile', - 'dockerfile.prod', - 'dockerfile.production', - 'dockerfile.alpha', - 'dockerfile.beta', - 'dockerfile.stage', - 'dockerfile.staging', - 'dockerfile.dev', - 'dockerfile.development', - 'dockerfile.local', - 'dockerfile.test', - 'dockerfile.testing', - 'dockerfile.ci', - 'dockerfile.web', - 'dockerfile.worker', - - 'docker-compose.yml', - 'docker-compose.override.yml', - 'docker-compose.prod.yml', - 'docker-compose.production.yml', - 'docker-compose.alpha.yml', - 'docker-compose.beta.yml', - 'docker-compose.stage.yml', - 'docker-compose.staging.yml', - 'docker-compose.dev.yml', - 'docker-compose.development.yml', - 'docker-compose.local.yml', - 'docker-compose.test.yml', - 'docker-compose.testing.yml', - 'docker-compose.ci.yml', - 'docker-compose.web.yml', - 'docker-compose.worker.yml', - - 'docker-compose.yaml', - 'docker-compose.override.yaml', - 'docker-compose.prod.yaml', - 'docker-compose.production.yaml', - 'docker-compose.alpha.yaml', - 'docker-compose.beta.yaml', - 'docker-compose.stage.yaml', - 'docker-compose.staging.yaml', - 'docker-compose.dev.yaml', - 'docker-compose.development.yaml', - 'docker-compose.local.yaml', - 'docker-compose.test.yaml', - 'docker-compose.testing.yaml', - 'docker-compose.ci.yaml', - 'docker-compose.web.yaml', - 'docker-compose.worker.yaml', - ], - thumbnail: () => 'extension/docker.svg', - type: 'Docker Image', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'docker')), - }, - { - extension: ['md', 'markdown', 'rst'], - type: 'Markdown', - thumbnail: () => 'extension/markdown.svg', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'md')), - }, - { - extension: ['json', 'tsbuildinfo', 'json5', 'jsonl', 'ndjson'], - type: 'JavaScript Object Notation', - thumbnail: () => 'extension/json.svg', - preview: (filePath: string, cb: (html: string) => void) => { - cb(previewCode(filePath, 'json')); - }, - }, - { - type: 'Git', - fileNames: [ - '.gitignore', - '.gitignore_global', - '.gitconfig', - '.gitattributes', - '.gitmodules', - '.gitkeep', - 'git-history', - ], - thumbnail: () => 'extension/git.svg', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath)), - }, - { - extension: ['yml', 'yaml'], - type: 'Yet Anoter Markup Language', - thumbnail: () => 'extension/yaml.svg', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'yml')), - }, - { - fileNames: ['.prettierignore', '.prettierrc.json'], - type: 'Prettier configuration file', - thumbnail: () => 'extension/prettier.svg', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath)), - }, - { - fileNames: ['binding.gyp'], - type: 'Node JS C++ Binding', - thumbnail: () => 'extension/python.svg', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath)), - }, - { - fileNames: ['LICENSE', 'LICENSE.md', 'LICENSE.txt'], - type: 'License', - thumbnail: () => 'extension/certificate.svg', - preview: (filePath: string, cb: (html: string) => void) => - cb(previewCode(filePath, 'md')), - }, - { - fileNames: [ - 'copying', - 'copying.md', - 'copying.txt', - 'copyright', - 'copyright.txt', - 'copyright.md', - 'license', - 'license.md', - 'license.txt', - 'licence', - 'licence.md', - 'licence.txt', - ], - extension: ['cer', 'cert', 'crt'], - type: 'Certificate', - thumbnail: () => 'extension/certificate.svg', - }, - { - extension: [ - 'ini', - 'dlc', - 'dll', - 'config', - 'conf', - 'properties', - 'prop', - 'settings', - 'option', - 'props', - 'toml', - 'prefs', - 'sln.dotsettings', - 'sln.dotsettings.user', - 'cfg', - ], - fileNames: [ - '.jshintignore', - '.buildignore', - '.mrconfig', - '.yardopts', - 'manifest.mf', - '.clang-format', - '.clang-tidy', - ], - type: 'Settings', - thumbnail: () => 'extension/settings.svg', - }, - { - type: 'Visual Studio', - extension: [ - 'csproj', - 'ruleset', - 'sln', - 'suo', - 'vb', - 'vbs', - 'vcxitems', - 'vcxitems.filters', - 'vcxproj', - 'vcxproj.filters', - ], - thumbnail: () => 'extension/visualstudio.svg', - }, - { - extension: ['go'], - type: 'Go Program', - thumbnail: () => 'extension/go.svg', - }, - { - extension: ['java', 'jsp'], - type: 'Java Program', - thumbnail: () => 'extension/java.svg', - }, - { - extension: ['jsx'], - type: 'React Program', - thumbnail: () => 'extension/react.svg', - }, - { - extension: ['tsx'], - type: 'Typescript React Program', - thumbnail: () => 'extension/react_ts.svg', - }, - { - extension: ['psd'], - type: 'Photoshop', - thumbnail: () => 'extension/psd.svg', - }, - { - type: 'Yarn Package Manager', - fileNames: [ - '.yarnrc', - 'yarn.lock', - '.yarnclean', - '.yarn-integrity', - 'yarn-error.log', - '.yarnrc.yml', - '.yarnrc.yaml', - ], - thumbnail: () => 'extension/yarn.svg', - }, - ]; -}; - -export { IMAGE_TYPES, VIDEO_TYPES }; -export default FileConfig; diff --git a/src/Components/Config/folder.config.ts b/src/Components/Config/folder.config.ts deleted file mode 100644 index 0076d703..00000000 --- a/src/Components/Config/folder.config.ts +++ /dev/null @@ -1,234 +0,0 @@ -interface folderThumbnailType { - folderNames: string[]; - thumbnail?: string; - type?: string; -} -const folderConfig = (): folderThumbnailType[] => { - return [ - { - folderNames: [ - 'document', - 'documents', - 'article', - 'articles', - 'documentation', - 'doc', - 'docs', - 'post', - 'posts', - ], - thumbnail: 'folder/folder-document.svg', - }, - { - folderNames: ['download', 'downloads'], - thumbnail: 'folder/folder-download.svg', - }, - { - folderNames: [ - 'picture', - 'pictures', - 'ico', - 'icon', - 'image', - 'icons', - 'images', - 'img', - 'screenshot', - 'screenshots', - ], - thumbnail: 'folder/folder-picture.svg', - }, - { - folderNames: ['music'], - thumbnail: 'folder/folder-music.svg', - }, - { - folderNames: ['desktop'], - thumbnail: 'folder/folder-desktop.svg', - }, - { - folderNames: ['video', 'videos'], - thumbnail: 'folder/folder-video.svg', - }, - { - folderNames: ['home'], - thumbnail: 'folder/folder-home.svg', - }, - { - folderNames: ['trash'], - thumbnail: 'folder/folder-trash.svg', - }, - { - folderNames: ['setting', 'settings'], - thumbnail: 'folder/folder-setting.svg', - }, - { - folderNames: ['recent', 'recents'], - thumbnail: 'folder/folder-recent.svg', - }, - { - folderNames: ['favorite', 'favorites'], - thumbnail: 'folder/folder-favorite.svg', - }, - { - folderNames: ['about'], - thumbnail: 'folder/setting-about.svg', - }, - { - folderNames: ['appearance'], - thumbnail: 'folder/setting-appearance.svg', - }, - { - folderNames: ['preference'], - thumbnail: 'folder/setting-preference.svg', - }, - { - folderNames: ['.git', 'git', 'patch'], - thumbnail: 'folder/folder-git.svg', - type: 'Version Control System', - }, - { - folderNames: ['android'], - thumbnail: 'folder/folder-android.svg', - }, - { - folderNames: ['node_modules'], - type: 'Node Package Modules', - thumbnail: 'folder/folder-node.svg', - }, - { - folderNames: ['app', 'apps'], - thumbnail: 'folder/folder-app.svg', - }, - { - folderNames: [ - 'archival', - 'archive', - 'archives', - 'backup', - 'backups', - ], - thumbnail: 'folder/folder-archive.svg', - type: 'Archived', - }, - { - folderNames: [ - 'asset', - 'assets', - 'report', - 'reports', - 'res', - 'resources', - 'resource', - 'src', - 'static', - ], - thumbnail: 'folder/folder-resource.svg', - type: 'Resources', - }, - { - folderNames: ['backend', 'server', 'servers'], - thumbnail: 'folder/folder-server.svg', - }, - { - folderNames: ['bin', 'dist', 'build', 'out', 'outs', 'release'], - thumbnail: 'folder/folder-dist.svg', - type: 'Packaged Distributions', - }, - { - folderNames: ['client', 'clients', 'frontend', 'pwa'], - thumbnail: 'folder/folder-client.svg', - }, - { - folderNames: ['database', 'data', 'db', 'databases'], - thumbnail: 'folder/folder-database.svg', - type: 'Database', - }, - { - folderNames: ['font', 'fonts'], - thumbnail: 'folder/folder-font.svg', - }, - { - folderNames: ['function', 'functions', 'math'], - thumbnail: 'folder/folder-function.svg', - }, - { - folderNames: [ - 'html', - 'page', - 'pages', - 'screen', - 'screens', - 'view', - 'views', - ], - thumbnail: 'folder/folder-view.svg', - }, - { - folderNames: ['javascript', 'js'], - thumbnail: 'folder/folder-javascript.svg', - }, - { - folderNames: [ - 'lib', - 'libraries', - 'library', - 'third-party', - 'vendor', - 'vendors', - ], - thumbnail: 'folder/folder-lib.svg', - }, - { - folderNames: ['project', 'projects'], - thumbnail: 'folder/folder-project.svg', - }, - { - folderNames: ['python, __pycache__'], - thumbnail: 'folder/folder-python.svg', - }, - { - folderNames: ['script', 'scripts'], - thumbnail: 'folder/folder-scripts.svg', - }, - { - folderNames: ['template', 'templates'], - thumbnail: 'folder/folder-template.svg', - }, - { - folderNames: ['test', 'jest', 'mocha'], - thumbnail: 'folder/folder-test.svg', - }, - ]; -}; -const defaultThumbnail = { - file: 'file.svg', - folder: 'folder.svg', - image: 'extension/image.svg', - video: 'extension/video.svg', -}; - -interface customThumbnailType { - [key: string]: string; -} -const customThumbnail: customThumbnailType = { - 'sidebar-about': 'folder/sidebar-about.svg', - 'sidebar-recent': 'folder/sidebar-recent.svg', - 'sidebar-favorites': 'folder/sidebar-favorite.svg', - 'sidebar-setting': 'folder/sidebar-setting.svg', - 'sidebar-trash': 'folder/sidebar-trash.svg', - 'sidebar-desktop': 'folder/sidebar-desktop.svg', - 'sidebar-home': 'folder/sidebar-home.svg', - 'sidebar-documents': 'folder/sidebar-document.svg', - 'sidebar-downloads': 'folder/sidebar-download.svg', - 'sidebar-music': 'folder/sidebar-music.svg', - 'sidebar-pictures': 'folder/sidebar-picture.svg', - 'sidebar-videos': 'folder/sidebar-video.svg', - 'settings-about': 'folder/setting-about.svg', - 'settings-appearance': 'folder/setting-appearance.svg', - 'settings-preference': 'folder/setting-preference.svg', - 'favorites-usb': 'usb.svg', - 'favorites-hard-disk': 'hard-disk.svg', -}; -export default folderConfig; -export { defaultThumbnail, customThumbnail }; diff --git a/src/Components/Constants/isVSCodeInstalled.ts b/src/Components/Constants/isVSCodeInstalled.ts deleted file mode 100644 index b13619b6..00000000 --- a/src/Components/Constants/isVSCodeInstalled.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* eslint-disable no-empty */ -import { execSync } from 'child_process'; - -let vscodeInstalled = false; -try { - execSync('code --version'); - vscodeInstalled = true; -} catch (_) {} - -export default vscodeInstalled; diff --git a/src/Components/Constants/windowGUID.ts b/src/Components/Constants/windowGUID.ts deleted file mode 100644 index b8368b32..00000000 --- a/src/Components/Constants/windowGUID.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ipcRenderer } from 'electron'; - -const guid = () => { - const s4 = () => { - return Math.floor((1 + Math.random()) * 0x10000) - .toString(16) - .substring(1); - }; - //return id of format 'aaaaaaaa'-'aaaa'-'aaaa'-'aaaa'-'aaaaaaaaaaaa' - return ( - s4() + - s4() + - '-' + - s4() + - '-' + - s4() + - '-' + - s4() + - '-' + - s4() + - s4() + - s4() - ); -}; -const windowGUID = guid(); -ipcRenderer.send('GUID', windowGUID); - -export default windowGUID; diff --git a/src/Components/ContextMenu/configs/bodyMenu.config.ts b/src/Components/ContextMenu/configs/bodyMenu.config.ts index 195c2233..17dc73d7 100644 --- a/src/Components/ContextMenu/configs/bodyMenu.config.ts +++ b/src/Components/ContextMenu/configs/bodyMenu.config.ts @@ -1,6 +1,5 @@ -import vscodeInstalled from '../../Constants/isVSCodeInstalled'; import contextMenuItem from '../../../Typings/contextMenuItem'; -import storage from 'electron-json-storage-sync'; +import Storage from '../../../Api/storage'; import { reload } from '../../Layout/windowManager'; import Paste from '../../Files/File Operation/paste'; import Undo from '../../Files/File Operation/undo'; @@ -9,59 +8,55 @@ import copyLocation from '../../Files/File Operation/location'; import Pin from '../../Files/File Operation/pin'; import Properties from '../../Properties/properties'; import focusingPath from '../../Functions/focusingPath'; -import openInTerminal from '../../Functions/openInTerminal'; +import reveal from '../../../Api/reveal'; import Translate from '../../I18n/i18n'; import New from '../../Functions/new'; +import { isVSCodeInstalled } from '../../../Api/app'; +import { Purge, Restore } from '../../Files/File Operation/trash'; interface Favorites { name: string; path: string; } -const BodyMenu = ( - target: HTMLElement, - filePath: string -): contextMenuItem[][] => { - const favorites: Favorites[] = storage.get('sidebar')?.data?.favorites; - const isPinned = - !!favorites?.filter((favorite) => favorite.path === filePath).length ?? - false; +const BodyMenu = async (target: HTMLElement, filePath: string): Promise => { + const favorites: Favorites[] = (await Storage.get('sidebar'))?.favorites; + const isPinned = !!favorites?.filter((favorite) => favorite.path === filePath).length ?? false; + const _focusingPath = await focusingPath(); - const changeLayout = (selectedLayout: 'l' | 'm' | 's' | 'd') => { - const layout = storage.get('layout')?.data ?? {}; - layout[focusingPath()] = selectedLayout; - storage.set('layout', layout); + const changeLayout = async (selectedLayout: 'l' | 'm' | 's' | 'd') => { + const layout = (await Storage.get('layout')) ?? {}; + layout[_focusingPath] = selectedLayout; + Storage.set('layout', layout); reload(); }; - const changeSortMethod = ( - selectedMethod: 'A' | 'Z' | 'L' | 'F' | 'S' | 'T' - ) => { - const sort = storage.get('layout')?.data ?? {}; - sort[focusingPath()] = selectedMethod; - storage.set('sort', sort); + const changeSortMethod = async (selectedMethod: 'A' | 'Z' | 'L' | 'F' | 'S' | 'T') => { + const sort = (await Storage.get('layout')) ?? {}; + sort[_focusingPath] = selectedMethod; + Storage.set('sort', sort); reload(); }; return [ [ { - menu: Translate('Layout Mode'), + menu: await Translate('Layout Mode'), submenu: [ { - name: Translate('Grid View (Large)'), + name: await Translate('Grid View (Large)'), role: () => changeLayout('l'), icon: 'grid_large', }, { - name: Translate('Grid View (Medium)'), + name: await Translate('Grid View (Medium)'), role: () => changeLayout('m'), icon: 'grid_medium', }, { - name: Translate('Grid View (Small)'), + name: await Translate('Grid View (Small)'), role: () => changeLayout('s'), icon: 'grid_small', }, { - name: Translate('Detail View'), + name: await Translate('Detail View'), role: () => changeLayout('d'), icon: 'detail', }, @@ -69,37 +64,37 @@ const BodyMenu = ( icon: 'layout', }, { - menu: Translate('Sort By'), + menu: await Translate('Sort By'), submenu: [ { - name: Translate('A-Z'), + name: await Translate('A-Z'), role: () => changeSortMethod('A'), }, { - name: Translate('Z-A'), + name: await Translate('Z-A'), role: () => changeSortMethod('Z'), }, { - name: Translate('Last Modified'), + name: await Translate('Last Modified'), role: () => changeSortMethod('L'), }, { - name: Translate('First Modified'), + name: await Translate('First Modified'), role: () => changeSortMethod('F'), }, { - name: Translate('Size'), + name: await Translate('Size'), role: () => changeSortMethod('S'), }, { - name: Translate('Type'), + name: await Translate('Type'), role: () => changeSortMethod('T'), }, ], icon: 'sort', }, { - menu: Translate('Reload'), + menu: await Translate('Reload'), role: () => { reload(); }, @@ -109,8 +104,8 @@ const BodyMenu = ( ], [ { - menu: Translate('Paste'), - visible: !focusingPath().startsWith('xplorer://'), + menu: await Translate('Paste'), + visible: !_focusingPath.startsWith('xplorer://'), shortcut: 'Ctrl+V', icon: 'paste', role: () => { @@ -118,8 +113,8 @@ const BodyMenu = ( }, }, { - menu: Translate('Undo Action'), - visible: !focusingPath().startsWith('xplorer://'), + menu: await Translate('Undo Action'), + visible: !_focusingPath.startsWith('xplorer://'), shortcut: 'Ctrl+Z', icon: 'undo', role: () => { @@ -127,8 +122,8 @@ const BodyMenu = ( }, }, { - menu: Translate('Redo Action'), - visible: !focusingPath().startsWith('xplorer://'), + menu: await Translate('Redo Action'), + visible: !_focusingPath.startsWith('xplorer://'), shortcut: 'Ctrl+Y', icon: 'redo', role: () => { @@ -136,7 +131,7 @@ const BodyMenu = ( }, }, { - menu: Translate('Copy Location Path'), + menu: await Translate('Copy Location Path'), shortcut: 'Alt+Shift+C', icon: 'location', role: () => { @@ -144,55 +139,61 @@ const BodyMenu = ( }, }, { - menu: Translate('Clear Recent List'), + menu: await Translate('Clear Recent List'), icon: 'delete', - visible: focusingPath() === 'xplorer://Recent', + visible: _focusingPath === 'xplorer://Recent', role: () => { - storage.set('recent', []); + Storage.set('recent', []); reload(); }, }, ], [ { - menu: 'Open in Terminal', - visible: !focusingPath().startsWith('xplorer://'), + menu: await Translate('Open in Terminal'), + visible: !_focusingPath.startsWith('xplorer://'), shortcut: 'Alt+T', icon: 'terminal', - role: () => openInTerminal(filePath), + role: () => reveal(filePath, 'terminal'), }, { - menu: 'Open in VSCode', - visible: - vscodeInstalled && !focusingPath().startsWith('xplorer://'), + menu: await Translate('Open in VSCode'), + visible: (await isVSCodeInstalled()) && !_focusingPath.startsWith('xplorer://'), shortcut: 'Shift+Enter', icon: 'vscode', role: () => { - const { execSync } = require('child_process'); - const os = require('os'); - if ( - process.platform === 'linux' && - filePath === 'xplorer://Home' - ) - execSync(`code ${os.homedir()}`); - else execSync(`code "${filePath.replaceAll('"', '\\"')}"`); + reveal(filePath, 'vscode'); }, }, { - menu: Translate('New'), - visible: !focusingPath().startsWith('xplorer://'), + menu: await Translate('Restore all files'), + visible: _focusingPath === 'xplorer://Trash', + role: () => { + const filePaths = [...document.querySelectorAll('.file')].map((file) => unescape(file.dataset.path)); + Restore(filePaths); + }, + }, + { + menu: await Translate('Permanently delete all files'), + visible: _focusingPath === 'xplorer://Trash', + role: () => { + const filePaths = [...document.querySelectorAll('.file')].map((file) => unescape(file.dataset.path)); + Purge(filePaths); + }, + }, + { + menu: await Translate('New'), + visible: !_focusingPath.startsWith('xplorer://'), submenu: [ - { name: Translate('Folder'), shortcut: 'Shift+N', role: () => New('folder') }, - { name: Translate('File'), shortcut: 'Alt+N', role: () => New('file') }, + { name: await Translate('Folder'), shortcut: 'Shift+N', role: () => New('folder') }, + { name: await Translate('File'), shortcut: 'Alt+N', role: () => New('file') }, ], icon: 'new', }, ], [ { - menu: Translate( - isPinned ? 'Unpin from Sidebar' : 'Pin to Sidebar' - ), + menu: await Translate(isPinned ? 'Unpin from Sidebar' : 'Pin to Sidebar'), shortcut: 'Alt+P', icon: 'pin', role: () => { @@ -200,11 +201,9 @@ const BodyMenu = ( }, }, { - menu: Translate('Properties'), + menu: await Translate('Properties'), shortcut: 'Ctrl+P', - icon: target?.dataset?.isdir - ? 'folder setting' - : 'file setting', + icon: target?.dataset?.isdir ? 'folder setting' : 'file setting', role: () => { Properties(filePath); }, diff --git a/src/Components/ContextMenu/configs/fileMenu.config.ts b/src/Components/ContextMenu/configs/fileMenu.config.ts index 5dcacfca..ec21916e 100644 --- a/src/Components/ContextMenu/configs/fileMenu.config.ts +++ b/src/Components/ContextMenu/configs/fileMenu.config.ts @@ -1,51 +1,43 @@ -import { Preview } from '../../Files/File Preview/preview'; -import vscodeInstalled from '../../Constants/isVSCodeInstalled'; +import Preview from '../../Files/File Preview/preview'; +import { isVSCodeInstalled } from '../../../Api/app'; import contextMenuItem from '../../../Typings/contextMenuItem'; -import storage from 'electron-json-storage-sync'; -import { open, openFileWithDefaultApp } from '../../Files/File Operation/open'; import { createNewTab } from '../../Layout/tab'; -import openInTerminal from '../../Functions/openInTerminal'; +import reveal from '../../../Api/reveal'; import Cut from '../../Files/File Operation/cut'; import Copy from '../../Files/File Operation/copy'; import copyLocation from '../../Files/File Operation/location'; import Rename from '../../Files/File Operation/rename'; -import { - PermanentDelete, - Restore, - Trash, -} from '../../Files/File Operation/trash'; +import { Purge, Restore, Trash } from '../../Files/File Operation/trash'; import Pin from '../../Files/File Operation/pin'; import Properties from '../../Properties/properties'; import focusingPath from '../../Functions/focusingPath'; import Translate from '../../I18n/i18n'; - +import { OpenDir } from '../../Open/open'; +import FileAPI from '../../../Api/files'; +import Storage from '../../../Api/storage'; interface Favorites { name: string; path: string; } -const FileMenu = ( - target: HTMLElement, - filePath: string -): contextMenuItem[][] => { - const favorites: Favorites[] = storage.get('sidebar')?.data?.favorites; - const isPinned = - !!favorites?.filter((favorite) => favorite.path === filePath).length ?? - false; +const FileMenu = async (target: HTMLElement, filePath: string): Promise => { + const favorites: Favorites[] = (await Storage.get('sidebar'))?.favorites; + const isPinned = !!favorites?.filter((favorite) => favorite.path === filePath).length ?? false; + const _focusingPath = await focusingPath(); return [ [ { - menu: Translate('Open'), + menu: await Translate('Open'), shortcut: 'Enter', icon: 'open', role: () => { if (target.dataset.isdir !== 'true') { - openFileWithDefaultApp(filePath); - } else open(filePath); + new FileAPI(filePath).openFile(); + } else OpenDir(filePath); }, }, { - menu: Translate('Open in new tab'), + menu: await Translate('Open in new tab'), visible: target?.dataset?.isdir === 'true', icon: 'open in new tab', role: () => { @@ -53,26 +45,25 @@ const FileMenu = ( }, }, { - menu: Translate('Open in terminal'), + menu: await Translate('Open in terminal'), visible: target?.dataset?.isdir === 'true', shortcut: 'Alt+T', icon: 'terminal', role: () => { - openInTerminal(filePath); + reveal(filePath, 'terminal'); }, }, { - menu: Translate('Open in VSCcode'), - visible: vscodeInstalled, + menu: await Translate('Open in VSCcode'), + visible: await isVSCodeInstalled(), shortcut: 'Shift+Enter', icon: 'vscode', role: () => { - const { execSync } = require('child_process'); - execSync(`code "${filePath.replaceAll('"', '\\"')}"`); + reveal(filePath, 'vscode'); }, }, { - menu: Translate('Preview'), + menu: await Translate('Preview'), visible: target?.dataset?.isdir !== 'true', shortcut: 'Ctrl+O', icon: 'preview', @@ -81,19 +72,19 @@ const FileMenu = ( ], [ { - menu: Translate('Cut'), + menu: await Translate('Cut'), shortcut: 'Ctrl+X', icon: 'cut', role: () => Cut([filePath]), }, { - menu: Translate('Copy'), + menu: await Translate('Copy'), shortcut: 'Ctrl+C', icon: 'copy', role: () => Copy([filePath]), }, { - menu: Translate('Copy Location Path'), + menu: await Translate('Copy Location Path'), shortcut: 'Alt+Shift+C', icon: 'location', role: () => copyLocation(target), @@ -101,36 +92,37 @@ const FileMenu = ( ], [ { - menu: Translate('Rename'), + menu: await Translate('Rename'), shortcut: 'F2', icon: 'rename', role: () => Rename(filePath), }, { - menu: Translate('Delete'), - visible: focusingPath() !== 'xplorer://Trash', + menu: await Translate('Delete'), + visible: _focusingPath !== 'xplorer://Trash', shortcut: 'Del', icon: 'delete', role: () => Trash([filePath]), }, { - menu: Translate('Restore'), + menu: await Translate('Restore'), icon: 'delete', - visible: focusingPath() === 'xplorer://Trash', - role: () => Restore(filePath), + visible: _focusingPath === 'xplorer://Trash', + role: () => { + Restore([unescape(filePath)]); + }, }, { - menu: Translate('Permanently Delete'), + menu: await Translate('Permanently Delete'), icon: 'delete', - visible: focusingPath() === 'xplorer://Trash', + visible: _focusingPath === 'xplorer://Trash', shortcut: 'Shift+Del', - role: () => - PermanentDelete([unescape(target.dataset.realPath)]), + role: () => { + Purge([unescape(filePath)]); + }, }, { - menu: Translate( - isPinned ? 'Unpin from Sidebar' : 'Pin to Sidebar' - ), + menu: await Translate(isPinned ? 'Unpin from Sidebar' : 'Pin to Sidebar'), shortcut: 'Alt+P', icon: 'pin', role: () => Pin([filePath]), @@ -138,11 +130,9 @@ const FileMenu = ( ], [ { - menu: Translate('Properties'), + menu: await Translate('Properties'), shortcut: 'Ctrl+P', - icon: target?.dataset?.isdir - ? 'folder setting' - : 'file setting', + icon: target?.dataset?.isdir ? 'folder setting' : 'file setting', role: () => Properties(filePath), }, ], diff --git a/src/Components/ContextMenu/configs/multipleSelectedMenu.config.ts b/src/Components/ContextMenu/configs/multipleSelectedMenu.config.ts index 17d5be7d..bf1ba77d 100644 --- a/src/Components/ContextMenu/configs/multipleSelectedMenu.config.ts +++ b/src/Components/ContextMenu/configs/multipleSelectedMenu.config.ts @@ -1,21 +1,21 @@ import { getSelected } from '../../Files/File Operation/select'; import contextMenuItem from '../../../Typings/contextMenuItem'; -import vscodeInstalled from '../../Constants/isVSCodeInstalled'; +import { isVSCodeInstalled } from '../../../Api/app'; import { createNewTab } from '../../Layout/tab'; import Cut from '../../Files/File Operation/cut'; import Copy from '../../Files/File Operation/copy'; -import { Trash } from '../../Files/File Operation/trash'; +import { Purge, Restore, Trash } from '../../Files/File Operation/trash'; import Pin from '../../Files/File Operation/pin'; import Translate from '../../I18n/i18n'; +import reveal from '../../../Api/reveal'; +import focusingPath from '../../Functions/focusingPath'; -const MultipleSelectedMenu = ( - _: HTMLElement, - filePath: string -): contextMenuItem[][] => { +const MultipleSelectedMenu = async (_: HTMLElement, _filePath: string): Promise => { + const _focusingPath = await focusingPath(); return [ [ { - menu: Translate('Open in New Tab'), + menu: await Translate('Open in New Tab'), role: () => { for (const element of getSelected()) { if (element.dataset.isdir === 'true') { @@ -26,31 +26,21 @@ const MultipleSelectedMenu = ( icon: 'open in new tab', }, { - menu: Translate('Open in VSCode'), + menu: await Translate('Open in VSCode'), role: () => { - const os = require('os'); - const { exec } = require('child_process'); - for (const element of getSelected()) { - const selectedPath = unescape(element.dataset.path); - if ( - process.platform === 'linux' && - filePath === 'xplorer://Home' - ) - exec(`code ${os.homedir()}`); - else - exec( - `code "${selectedPath.replaceAll('"', '\\"')}"` - ); + for (const selected of getSelected()) { + const targetPath = unescape(selected.dataset.path) === 'undefined' ? _focusingPath : unescape(selected.dataset.path); + reveal(targetPath, 'vscode'); } }, shortcut: 'Shift+Enter', - visible: vscodeInstalled, + visible: await isVSCodeInstalled(), icon: 'vscode', }, ], [ { - menu: Translate('Cut'), + menu: await Translate('Cut'), shortcut: 'Ctrl+X', icon: 'cut', role: () => { @@ -62,7 +52,7 @@ const MultipleSelectedMenu = ( }, }, { - menu: Translate('Copy'), + menu: await Translate('Copy'), shortcut: 'Ctrl+C', icon: 'copy', role: () => { @@ -74,7 +64,7 @@ const MultipleSelectedMenu = ( }, }, { - menu: Translate('Delete'), + menu: await Translate('Delete'), shortcut: 'Del', icon: 'delete', role: () => { @@ -88,7 +78,31 @@ const MultipleSelectedMenu = ( ], [ { - menu: Translate('Pin to Sidebar'), + menu: await Translate('Restore these files'), + visible: _focusingPath === 'xplorer://Trash', + role: () => { + const filePaths = []; + for (const element of getSelected()) { + filePaths.push(unescape(element.dataset.path)); + } + Restore(filePaths); + }, + }, + { + menu: await Translate('Permanently these files'), + visible: _focusingPath === 'xplorer://Trash', + role: () => { + const filePaths = []; + for (const element of getSelected()) { + filePaths.push(unescape(element.dataset.path)); + } + Purge(filePaths); + }, + }, + ], + [ + { + menu: await Translate('Pin to Sidebar'), shortcut: 'Alt+P', icon: 'pin', role: () => { diff --git a/src/Components/ContextMenu/configs/sidebarDriveMenu.config.ts b/src/Components/ContextMenu/configs/sidebarDriveMenu.config.ts index 13bc2cb7..9f739d56 100644 --- a/src/Components/ContextMenu/configs/sidebarDriveMenu.config.ts +++ b/src/Components/ContextMenu/configs/sidebarDriveMenu.config.ts @@ -1,23 +1,21 @@ -import { open } from '../../Files/File Operation/open'; +import { OpenDir } from '../../Open/open'; import { createNewTab } from '../../Layout/tab'; import contextMenuItem from '../../../Typings/contextMenuItem'; import Translate from '../../I18n/i18n'; +import FileAPI from '../../../Api/files'; -const SidebarDriveMenu = ( - target: HTMLElement, - filePath: string -): contextMenuItem[][] => { +const SidebarDriveMenu = async (target: HTMLElement, filePath: string): Promise => { return [ [ { - menu: Translate('Open'), + menu: await Translate('Open'), icon: 'open', role: () => { - open(filePath); + target?.dataset?.isdir === 'true' ? OpenDir(filePath) : new FileAPI(filePath).openFile(); }, }, { - menu: Translate('Open in New Tab'), + menu: await Translate('Open in New Tab'), visible: target?.dataset?.isdir === 'true', icon: 'open in new tab', role: () => { diff --git a/src/Components/ContextMenu/configs/sidebarMenu.config.ts b/src/Components/ContextMenu/configs/sidebarMenu.config.ts index 20190409..16f58cf9 100644 --- a/src/Components/ContextMenu/configs/sidebarMenu.config.ts +++ b/src/Components/ContextMenu/configs/sidebarMenu.config.ts @@ -1,23 +1,23 @@ import contextMenuItem from '../../../Typings/contextMenuItem'; import { createNewTab } from '../../Layout/tab'; import Pin from '../../Files/File Operation/pin'; -import { open } from '../../Files/File Operation/open'; import Translate from '../../I18n/i18n'; -import { Preview } from '../../Files/File Preview/preview'; +import Preview from '../../Files/File Preview/preview'; +import { OpenDir } from '../../Open/open'; +import FileAPI from '../../../Api/files'; -const SidebarMenu = ( - target: HTMLElement, - filePath: string -): contextMenuItem[][] => { +const SidebarMenu = async (target: HTMLElement, filePath: string): Promise => { return [ [ { - menu: Translate('Open'), + menu: await Translate('Open'), icon: 'open', - role: () => open(filePath), + role: () => { + target?.dataset?.isdir === 'true' ? OpenDir(filePath) : new FileAPI(filePath).openFile(); + }, }, { - menu: Translate('Open in New Tab'), + menu: await Translate('Open in New Tab'), visible: target?.dataset?.isdir === 'true', icon: 'open in new tab', role: () => { @@ -25,7 +25,7 @@ const SidebarMenu = ( }, }, { - menu: Translate('Preview'), + menu: await Translate('Preview'), shortcut: 'Ctrl+O', visible: target?.dataset?.isdir !== 'true', icon: 'preview', @@ -36,7 +36,7 @@ const SidebarMenu = ( ], [ { - menu: Translate('Unpin from Sidebar'), + menu: await Translate('Unpin from Sidebar'), icon: 'pin', role: () => { Pin([filePath]); diff --git a/src/Components/ContextMenu/contextMenu.scss b/src/Components/ContextMenu/contextMenu.scss index 6773fdb2..9447e734 100644 --- a/src/Components/ContextMenu/contextMenu.scss +++ b/src/Components/ContextMenu/contextMenu.scss @@ -3,7 +3,6 @@ position: fixed; padding: 10px; border-radius: 2px; - -webkit-app-region: no-drag; min-width: 200px; overflow-wrap: break-word; -webkit-line-clamp: initial; diff --git a/src/Components/ContextMenu/contextMenu.ts b/src/Components/ContextMenu/contextMenu.ts index fee29bb7..5cc37a03 100644 --- a/src/Components/ContextMenu/contextMenu.ts +++ b/src/Components/ContextMenu/contextMenu.ts @@ -21,40 +21,30 @@ document.addEventListener('DOMContentLoaded', () => { contextMenuSubmenus = document.getElementById('contextmenu-submenus'); }); -const MenuToElements = (menu: contextMenuItem[][]) => { - menu.forEach((section, index) => { - section.forEach((item) => { +const MenuToElements = async (menu: contextMenuItem[][]): Promise => { + for (let index = 0; index < menu.length; index++) { + const section = menu[index]; + for (let i = 0; i < section.length; i++) { + const item = section[i]; if (item.visible || item.visible === undefined) { const menu = document.createElement('span'); menu.classList.add('contextmenu-item'); if (item.icon) { if (item.shortcut) - menu.innerHTML = `${item?.menu.trim()}${ - item.shortcut - }`; - else - menu.innerHTML = `${item?.menu?.trim()}`; + )}">${item?.menu.trim()}${item.shortcut}`; + else menu.innerHTML = `${item?.menu?.trim()}`; } else { - if (item.shortcut) - menu.innerHTML = `${item?.menu?.trim()}${ - item.shortcut - }`; + if (item.shortcut) menu.innerHTML = `${item?.menu?.trim()}${item.shortcut}`; else menu.innerHTML = item?.menu?.trim(); } if (typeof item?.role === 'function') { - const roleIdentifier = - Math.random().toString(36).substr(2, 10) + - item?.menu?.replace(/\W/g, '')?.trim(); + const roleIdentifier = Math.random().toString(36).substr(2, 10) + item?.menu?.replace(/\W/g, '')?.trim(); menu.setAttribute('role', roleIdentifier); menuRoles[roleIdentifier] = item?.role; } @@ -71,61 +61,44 @@ const MenuToElements = (menu: contextMenuItem[][]) => { submenu.id = submenuId; contextMenuSubmenus.appendChild(submenu); - item.submenu.forEach((submenuItem) => { - const submenuItemElement = - document.createElement('span'); + for (let j = 0; j < item.submenu.length; j++) { + const submenuItem = item.submenu[j]; + const submenuItemElement = document.createElement('span'); submenuItemElement.classList.add('contextmenu-item'); if (submenuItem.icon) { if (submenuItem.shortcut) - submenuItemElement.innerHTML = `${ + submenuItemElement.innerHTML = `${ submenuItem.name ?? submenuItem - }${ - submenuItem.shortcut - }`; + }${submenuItem.shortcut}`; else - submenuItemElement.innerHTML = `${submenuItem?.name?.trim()}`; } else { if (submenuItem.shortcut) - submenuItemElement.innerHTML = `${ - submenuItem.name ?? submenuItem - }${ + submenuItemElement.innerHTML = `${submenuItem.name ?? submenuItem}${ submenuItem.shortcut }`; - else - submenuItemElement.innerHTML = submenuItem.name; + else submenuItemElement.innerHTML = submenuItem.name; } if (typeof submenuItem?.role === 'function') { - const roleIdentifier = - Math.random().toString(36).substr(2, 10) + - submenuItem?.name?.replace(/\W/g, '')?.trim(); - submenuItemElement.setAttribute( - 'role', - roleIdentifier - ); + const roleIdentifier = Math.random().toString(36).substr(2, 10) + submenuItem?.name?.replace(/\W/g, '')?.trim(); + submenuItemElement.setAttribute('role', roleIdentifier); menuRoles[roleIdentifier] = submenuItem?.role; } submenu.appendChild(submenuItemElement); - }); + } } } - }); - if ( - index !== menu.length - 1 && - section.filter((menu) => menu.visible !== false).length > 0 - ) - contextMenu.innerHTML += `
`; - }); + } + if (index !== menu.length - 1 && section.filter((menu) => menu.visible !== false).length > 0) contextMenu.innerHTML += `
`; + } + return; }; /** @@ -133,7 +106,11 @@ const MenuToElements = (menu: contextMenuItem[][]) => { * @returns {void} */ const ContextMenu = (): void => { - document.addEventListener('contextmenu', (e) => { + document.addEventListener('contextmenu', async (e) => { + e.preventDefault(); + document.querySelectorAll('.hover-preview').forEach((element) => { + element.parentNode.removeChild(element); + }); contextMenu.innerHTML = ''; contextMenuSubmenus.innerHTML = ''; let coorX = e.pageX; @@ -148,30 +125,26 @@ const ContextMenu = (): void => { // Create the context menu if (getSelected().length > 1) { - MenuToElements(MultipleSelectedMenu(target, filePath)); + await MenuToElements(await MultipleSelectedMenu(target, filePath)); } else if (target.classList.contains('sidebar-item')) { - MenuToElements(SidebarMenu(target, filePath)); + await MenuToElements(await SidebarMenu(target, filePath)); } else if (target.classList.contains('drive-item')) { - MenuToElements(SidebarDriveMenu(target, filePath)); + await MenuToElements(await SidebarDriveMenu(target, filePath)); } else if (target === document.getElementById('workspace')) { - MenuToElements(BodyMenu(target, filePath)); + await MenuToElements(await BodyMenu(target, filePath)); } else { - MenuToElements(FileMenu(target, filePath)); + await MenuToElements(await FileMenu(target, filePath)); } - if ( - coorY + contextMenu.offsetHeight > window.innerHeight && - coorY - contextMenu.offsetHeight > -50 - ) { + if (coorY + contextMenu.offsetHeight > window.innerHeight && coorY - contextMenu.offsetHeight > -50) { coorY -= contextMenu.offsetHeight; } - if (coorX + contextMenu.offsetWidth > window.innerWidth) - coorX = window.innerWidth - contextMenu.offsetWidth; + if (coorX + contextMenu.offsetWidth > window.innerWidth) coorX = window.innerWidth - contextMenu.offsetWidth; contextMenu.style.left = coorX + 'px'; contextMenu.style.top = coorY + 'px'; - updateTheme(); + updateTheme('contextmenu'); document.addEventListener('click', exitContextMenu); }); const exitContextMenu = () => { @@ -185,49 +158,29 @@ const ContextMenu = (): void => { document.addEventListener('mousemove', (e) => { // Expand contextmenu if ( - (e.pageX >= contextMenu.offsetLeft + contextMenu.offsetWidth - 15 || - e.pageX <= contextMenu.offsetLeft + 15) && + (e.pageX >= contextMenu.offsetLeft + contextMenu.offsetWidth - 15 || e.pageX <= contextMenu.offsetLeft + 15) && e.pageX < contextMenu.offsetLeft + contextMenu.offsetWidth + 100 ) { return; } - if ( - !( - (e.target as HTMLElement).parentNode as HTMLElement - ).className.startsWith('contextmenu-submenu') - ) { - document - .querySelectorAll('.contextmenu-submenu') - .forEach( - (submenu) => - ((submenu as HTMLElement).style.display = 'none') - ); + if (!((e.target as HTMLElement).parentNode as HTMLElement).className.startsWith('contextmenu-submenu')) { + document.querySelectorAll('.contextmenu-submenu').forEach((submenu) => ((submenu as HTMLElement).style.display = 'none')); } if ( (e.target as HTMLElement).dataset.submenu || - ( - (e.target as HTMLElement).parentNode as HTMLElement - ).className.startsWith('contextmenu-submenu') + ((e.target as HTMLElement).parentNode as HTMLElement).className.startsWith('contextmenu-submenu') ) { - const submenuElement = document.getElementById( - (e.target as HTMLElement).dataset.submenu - ); + const submenuElement = document.getElementById((e.target as HTMLElement).dataset.submenu); if (!submenuElement) return; - const menuCoordinate = ( - e.target as HTMLElement - ).getBoundingClientRect(); + const menuCoordinate = (e.target as HTMLElement).getBoundingClientRect(); submenuElement.style.display = 'block'; let submenuCoorX = contextMenu.offsetLeft + contextMenu.offsetWidth; - if ( - submenuCoorX + submenuElement.offsetWidth * 0.5 >= - window.innerWidth - ) { - submenuCoorX = - contextMenu.offsetLeft - submenuElement.offsetWidth; + if (submenuCoorX + submenuElement.offsetWidth * 0.5 >= window.innerWidth) { + submenuCoorX = contextMenu.offsetLeft - submenuElement.offsetWidth; } submenuElement.style.left = submenuCoorX + 'px'; submenuElement.style.top = menuCoordinate.top + 'px'; diff --git a/src/Components/Drives/drives.ts b/src/Components/Drives/drives.ts index 1f441c23..55697cca 100644 --- a/src/Components/Drives/drives.ts +++ b/src/Components/Drives/drives.ts @@ -1,108 +1,49 @@ -import { getDiskInfoSync } from 'node-disk-info/dist/index'; import formatBytes from '../Functions/filesize'; -import storage from 'electron-json-storage-sync'; -import getDriveBasePath from '../Functions/basePath'; import Translate from '../I18n/i18n'; import fileThumbnail from '../Thumbnail/thumbnail'; -import windowGUID from '../Constants/windowGUID'; -import type Drive from 'node-disk-info/dist/classes/drive'; -import focusingPath from '../Functions/focusingPath'; import { updateTheme } from '../Theme/theme'; - -/** - * Function to get array of drives detected on the system - * @returns {Array} drives detected on the system - */ -const getDrives = async (): Promise> => { - // Get all Physical disks Detected on the system - //prettier-ignore - const drives = await getDiskInfoSync().filter((drive) => drive.available > 0); - // Get all USB Stick (for Linux and macOS) - const USBStick: Drive[] = []; - drives.forEach((drive) => { - // If the drive is detected as not-first physical disk... - if ( - drive.filesystem.indexOf('/sda') === -1 && - drive.filesystem.indexOf('tmpfs') === -1 - ) { - // ... push it into the USB Stick array - USBStick.push(drive); - } - }); - return process.platform === 'win32' ? drives : USBStick; -}; - -interface uniqueDrives { - filesystem: string; - mounted: string; - volumename: string; -} - -/** - * Get unique drives regardless space - * @param {Array} drives - drives array - * @returns {uniqueDrives} unique drives array - */ -const getUniqueDrives = (drives: Array): Array => { - const result: uniqueDrives[] = []; - drives.forEach((drive) => - result.push({ - filesystem: drive.filesystem, - mounted: drive.filesystem, - volumename: - drive.volumename && /[^?]/.test(drive.volumename) - ? drive.volumename - : drive.filesystem, - }) - ); - return result; -}; +import DrivesAPI, { Drive } from '../../Api/drives'; +import OS from '../../Api/platform'; +import Storage from '../../Api/storage'; +// Initialize values +let platform: string; +let driveInfo: DrivesAPI; +(async () => { + if (!platform) { + platform = await OS(); + } + if (!driveInfo) { + driveInfo = new DrivesAPI(); + driveInfo.build(); + } +})(); /** * Function to convert drives into HTML Tags * @param {Array} drives - Array of drives - * @param {boolean} kBlockFormat - Is drive size presented as K-block-format (1024*n)? (optional) - * @returns {string} Result + * @returns {Promise} Result */ -const drivesToElements = (drives: Drive[], kBlockFormat = false): string => { - let result = drives.length - ? `

${Translate( - process.platform === 'linux' ? 'Pendrives' : 'Drives' - )}

` //eslint-disable-line - : ''; // Element Result - drives.forEach((drive: Drive) => { - const driveName = - drive.mounted.split('/')[drive.mounted.split('/').length - 1]; // Get name of drive +const drivesToElements = async (drives: Drive[]): Promise => { + let result = drives.length ? `

${await Translate(platform === 'linux' ? 'Pendrives' : 'Drives')}

` : ''; // Element Result + for (const drive of drives) { + const driveName = drive.mount_point.split('/')[drive.mount_point.split('/').length - 1]; // Get name of drive result += ` -
- USB icon +
+ USB icon
${ - drive.volumename || drive.filesystem - ? `

${ - drive.volumename && - /[^?]/.test(drive.volumename) - ? drive.volumename - : drive.filesystem - } (${driveName})

` //eslint-disable-line + drive.name ?? drive.disk_type + ? `

${drive.name && /[^?]/.test(drive.name) ? drive.name : drive.disk_type} (${driveName})

` //eslint-disable-line : `

${driveName}

` }
-

${formatBytes(drive.available, kBlockFormat)} ${Translate( - 'free of' - )} ${formatBytes(drive.blocks, kBlockFormat)}

+

${formatBytes(drive.available_space)} ${await Translate('free of')} ${formatBytes(drive.total_space)}

`; - }); + } return result; }; @@ -111,26 +52,16 @@ const drivesToElements = (drives: Drive[], kBlockFormat = false): string => { * @returns {string} drive section HTML code */ const Drives = async (): Promise => { - const drives = await getDrives(); - - const tabs = storage.get(`tabs-${windowGUID}`)?.data; - const focusingPath = tabs.tabs[tabs.focus].position; - - if (focusingPath === 'xplorer://Home') { - switch (process.platform) { - case 'win32': - return `
${drivesToElements( - drives - )}
`; - case 'darwin': - return ''; // Xplorer does not support drives for macOS recently - default: - return `
${drivesToElements( - drives, - true - )}
`; - } - } else return ''; + //if (focusingPath() === 'xplorer://Home') { + switch (platform) { + case 'win32': + return `
${await drivesToElements(driveInfo.DRIVES)}
`; + case 'darwin': + return ''; // Xplorer does not support drives for macOS currently + default: + return `
${await drivesToElements(driveInfo.DRIVES)}
`; + } + //} else return ''; }; /** @@ -138,42 +69,37 @@ const Drives = async (): Promise => { * @returns {string} */ const sidebarDrivesElement = async (): Promise => { - const { data } = storage.get('sidebar'); // Get user favorites data on sidebar - const drives = await getDrives(); - if (!drives.length || process.platform === 'darwin') - return ``; + const data = await Storage.get('sidebar'); // Get user favorites data on sidebar + const drives = driveInfo.DRIVES; + if (!drives.length || platform === 'darwin') return ``; // Return basic sidebar item element if there's no drives detected or its running on macOS else { let drivesElement = ''; for (const drive of drives) { //prettier-ignore - const driveName = process.platform === 'win32' + const driveName = platform === 'win32' //prettier-ignore - ? `${drive.volumename && /[^?]/.test(drive.volumename) - ? drive.volumename - : drive.filesystem} (${drive.mounted})` + ? `${drive.name && /[^?]/.test(drive.name) + ? drive.name + : drive.disk_type} (${drive.mount_point.replace(/\\$/g, '')})` //prettier-ignore - : drive.mounted.split('/')[drive.mounted.split('/').length - 1]; // Get name of drive - drivesElement += `${driveName}${driveName}`; } - const result = `