├── connector ├── .gitignore ├── src │ ├── shell_providers │ │ ├── mod.rs │ │ └── gnome.rs │ ├── webextension │ │ ├── mod.rs │ │ ├── native_messaging.rs │ │ └── communication.rs │ ├── meson.build │ └── main.rs ├── manifests │ ├── flatpak-chromium │ │ ├── flatpak-connector.sh.in │ │ ├── manifest.json.in │ │ └── meson.build │ ├── firefox │ │ ├── manifest.json.in │ │ └── meson.build │ ├── meson.build │ └── chrome │ │ ├── manifest.json.in │ │ └── meson.build ├── meson_options.txt ├── Cargo.toml ├── meson.build ├── build-aux │ ├── cargo.sh │ └── tabsearchproviderconnector.spec └── Cargo.lock ├── webextension ├── .gitignore ├── resources │ ├── chromium.manifest.json │ └── firefox.manifest.json ├── .eslintrc.yml ├── tsconfig.json ├── package.json ├── rollup.config.js ├── src │ └── background.ts └── yarn.lock ├── shellextension ├── .gitignore ├── extension │ ├── @types │ │ ├── extension.d.ts │ │ ├── misc │ │ │ └── util.d.ts │ │ ├── ui │ │ │ ├── windowAttentionHandler.d.ts │ │ │ ├── main.d.ts │ │ │ └── remoteSearch.d.ts │ │ ├── shell-gjs.d.ts │ │ └── shell-js.d.ts │ ├── prefs.ts │ ├── extension.ts │ └── src │ │ ├── windowAttensionHandler.ts │ │ └── browserTabs.ts ├── resources │ └── metadata.json ├── .eslintrc.yml ├── tsconfig.json ├── package.json ├── rollup.config.js └── yarn.lock ├── assets └── firefox-search-screenshot.png ├── .vscode └── settings.json ├── .github ├── dependabot.yml └── workflows │ ├── release.yml │ ├── ci.yml │ └── codeql-analysis.yml ├── LICENSE └── README.md /connector/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | build/ 3 | dist/ 4 | -------------------------------------------------------------------------------- /webextension/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | -------------------------------------------------------------------------------- /connector/src/shell_providers/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod gnome; 2 | -------------------------------------------------------------------------------- /shellextension/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | build/ 4 | *.zip 5 | -------------------------------------------------------------------------------- /connector/src/webextension/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod communication; 2 | pub mod native_messaging; 3 | -------------------------------------------------------------------------------- /connector/manifests/flatpak-chromium/flatpak-connector.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec /usr/bin/flatpak-spawn --host @connectorexepath@ "$@" 3 | -------------------------------------------------------------------------------- /assets/firefox-search-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harshadgavali/searchprovider-for-browser-tabs/HEAD/assets/firefox-search-screenshot.png -------------------------------------------------------------------------------- /shellextension/extension/@types/extension.d.ts: -------------------------------------------------------------------------------- 1 | 2 | interface IExtension { 3 | enable(): void; 4 | disable(): void; 5 | } 6 | 7 | 8 | interface ISubExtension { 9 | destroy(): void; 10 | } -------------------------------------------------------------------------------- /shellextension/extension/@types/misc/util.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'resource:///org/gnome/shell/js/misc/util.js' { 2 | export function spawn(argv: string[]): void; 3 | export function lerp(start: number, end: number, progress: number): number; 4 | } -------------------------------------------------------------------------------- /connector/manifests/firefox/manifest.json.in: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@app_id@", 3 | "description": "Tab search provider host connector", 4 | "path": "@connectorexepath@", 5 | "type": "stdio", 6 | "allowed_extensions": [ 7 | "tabsearchprovider@com.github.harshadgavali" 8 | ] 9 | } -------------------------------------------------------------------------------- /shellextension/extension/@types/ui/windowAttentionHandler.d.ts: -------------------------------------------------------------------------------- 1 | 2 | declare module 'resource:///org/gnome/shell/js/ui/windowAttentionHandler.js' { 3 | export class WindowAttentionHandler { 4 | _windowDemandsAttentionId: number; 5 | _windowMarkedUrgentId: number; 6 | } 7 | } -------------------------------------------------------------------------------- /connector/manifests/meson.build: -------------------------------------------------------------------------------- 1 | release_bindir = bindir 2 | if get_option('release-bindir') != '' 3 | release_bindir = get_option('release-bindir') 4 | endif 5 | 6 | subdir('chrome') 7 | subdir('firefox') 8 | 9 | if get_option('flatpak-chromium') 10 | subdir('flatpak-chromium') 11 | endif 12 | -------------------------------------------------------------------------------- /shellextension/extension/prefs.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line @typescript-eslint/no-empty-function 2 | function init() { } 3 | 4 | // eslint-disable-next-line @typescript-eslint/no-empty-function 5 | function buildPrefsWidget() { } 6 | 7 | export default { 8 | init, 9 | buildPrefsWidget, 10 | }; -------------------------------------------------------------------------------- /connector/meson_options.txt: -------------------------------------------------------------------------------- 1 | option('home', type: 'string', value: '', description: 'Location of user\'s home directory.') 2 | option('flatpak-chromium', type: 'boolean', value: false, description: 'Enable connector for flatpak chromium') 3 | option('release-bindir', type: 'string', value: '/usr/bin', description: 'Location where exe will be installed') 4 | -------------------------------------------------------------------------------- /connector/manifests/chrome/manifest.json.in: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@app_id@", 3 | "description": "Tab search provider host connector", 4 | "path": "@connectorexepath@", 5 | "type": "stdio", 6 | "allowed_origins": [ 7 | "chrome-extension://pjidkdbbdemngigldodbdpkpggmgilnl/", 8 | "chrome-extension://oemddknfonbdjbdggoopmapgojnjdmjc/", 9 | "chrome-extension://fjfcbcgllgpjkemliimiamjcefabdkik/" 10 | ] 11 | } -------------------------------------------------------------------------------- /connector/manifests/flatpak-chromium/manifest.json.in: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@app_id@", 3 | "description": "Tab search provider host connector", 4 | "path": "@connectorexepath@", 5 | "type": "stdio", 6 | "allowed_origins": [ 7 | "chrome-extension://pjidkdbbdemngigldodbdpkpggmgilnl/", 8 | "chrome-extension://oemddknfonbdjbdggoopmapgojnjdmjc/", 9 | "chrome-extension://fjfcbcgllgpjkemliimiamjcefabdkik/" 10 | ] 11 | } -------------------------------------------------------------------------------- /shellextension/extension/@types/ui/main.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'resource:///org/gnome/shell/js/ui/main.js' { 2 | import Meta from '@gi-types/meta8'; 3 | import { WindowAttentionHandler } from 'resource:///org/gnome/shell/js/ui/windowAttentionHandler.js'; 4 | 5 | export function activateWindow(window: Meta.Window, time?: number, workspaceNum?: number): void; 6 | export const windowAttentionHandler: WindowAttentionHandler; 7 | } -------------------------------------------------------------------------------- /connector/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "tabsearchproviderconnector" 3 | version = "0.1.1" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | zbus = "^2.0.1" 10 | zvariant = "^3.0.0" 11 | byteorder = "^1.4.3" 12 | serde_json = "^1.0.75" 13 | serde_repr = "^0.1.7" 14 | serde = { version = "^1.0.133", features = ["derive"] } 15 | -------------------------------------------------------------------------------- /webextension/resources/chromium.manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "Tab search provider for GNOME", 4 | "description": "Tab search provider for GNOME Shell", 5 | "version": "1.1.0", 6 | "background": { 7 | "scripts": [ 8 | "background.js" 9 | ], 10 | "persistent": true 11 | }, 12 | "permissions": [ 13 | "tabs", 14 | "nativeMessaging" 15 | ] 16 | } -------------------------------------------------------------------------------- /connector/manifests/firefox/meson.build: -------------------------------------------------------------------------------- 1 | # firefox 2 | appdata_conf = configuration_data() 3 | appdata_conf.set('app_id', app_id) 4 | appdata_conf.set('connectorexepath', release_bindir / app_id) 5 | output_file = '@0@.json'.format(app_id) 6 | configure_file( 7 | configuration: appdata_conf, 8 | input: 'manifest.json.in', 9 | output: output_file, 10 | install: true, 11 | install_dir: prefix / 'lib64/mozilla/native-messaging-hosts/' 12 | ) 13 | -------------------------------------------------------------------------------- /connector/manifests/chrome/meson.build: -------------------------------------------------------------------------------- 1 | # chrome 2 | appdata_conf = configuration_data() 3 | appdata_conf.set('app_id', app_id) 4 | appdata_conf.set('connectorexepath', release_bindir / app_id) 5 | output_file = '@0@.json'.format(app_id) 6 | configure_file( 7 | configuration: appdata_conf, 8 | input: 'manifest.json.in', 9 | output: output_file, 10 | install: true, 11 | install_dir: get_option('sysconfdir') / 'opt/chrome/native-messaging-hosts/' 12 | ) 13 | -------------------------------------------------------------------------------- /shellextension/resources/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Browser tabs", 3 | "description": "Search and switch to browser tabs using GNOME overview/ArcMenu\n\nSee following github link for installing necessary browser extension and host app!", 4 | "uuid": "browser-tabs@com.github.harshadgavali", 5 | "shell-version": [ 6 | "43", 7 | "44" 8 | ], 9 | "url": "https://github.com/harshadgavali/searchprovider-for-browser-tabs.git/", 10 | "version": 5 11 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": { 3 | "**/node_modules": true 4 | }, 5 | "editor.formatOnSave": true, 6 | "editor.codeActionsOnSave": { 7 | "source.fixAll": true, 8 | }, 9 | "javascript.preferences.importModuleSpecifierEnding": "js", 10 | "typescript.preferences.importModuleSpecifierEnding": "js", 11 | "typescript.preferences.importModuleSpecifier": "relative", 12 | "javascript.preferences.importModuleSpecifier": "relative", 13 | } -------------------------------------------------------------------------------- /shellextension/.eslintrc.yml: -------------------------------------------------------------------------------- 1 | env: 2 | es2021: true 3 | extends: 4 | - eslint:recommended 5 | - plugin:@typescript-eslint/recommended 6 | parser: "@typescript-eslint/parser" 7 | parserOptions: 8 | ecmaVersion: 13 9 | sourceType: module 10 | plugins: 11 | - "@typescript-eslint" 12 | rules: 13 | indent: 14 | - error 15 | - 4 16 | linebreak-style: 17 | - error 18 | - unix 19 | quotes: 20 | - error 21 | - single 22 | semi: 23 | - error 24 | - always 25 | -------------------------------------------------------------------------------- /webextension/.eslintrc.yml: -------------------------------------------------------------------------------- 1 | env: 2 | es2021: true 3 | extends: 4 | - eslint:recommended 5 | - plugin:@typescript-eslint/recommended 6 | parser: "@typescript-eslint/parser" 7 | parserOptions: 8 | ecmaVersion: 13 9 | sourceType: module 10 | plugins: 11 | - "@typescript-eslint" 12 | rules: 13 | indent: 14 | - error 15 | - 4 16 | - SwitchCase: 1 17 | 18 | linebreak-style: 19 | - error 20 | - unix 21 | quotes: off 22 | semi: off 23 | no-case-declarations: off 24 | -------------------------------------------------------------------------------- /webextension/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "module": "es6", 5 | "target": "es6", 6 | "esModuleInterop": true, 7 | "sourceMap": false, 8 | "rootDir": "src", 9 | "outDir": "resources/js", 10 | "noEmitOnError": true, 11 | "jsx": "react", 12 | "lib": [ 13 | "es6", 14 | "dom" 15 | ], 16 | "typeRoots": [ 17 | "node_modules/@types" 18 | ], 19 | "types": [ 20 | "@types/chrome" 21 | ], 22 | "noFallthroughCasesInSwitch": true, 23 | } 24 | } -------------------------------------------------------------------------------- /webextension/resources/firefox.manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "Tab search provider for GNOME", 4 | "description": "Tab search provider for GNOME Shell", 5 | "version": "1.1.0", 6 | "background": { 7 | "scripts": [ 8 | "background.js" 9 | ], 10 | "persistent": true 11 | }, 12 | "permissions": [ 13 | "tabs", 14 | "nativeMessaging" 15 | ], 16 | "browser_specific_settings": { 17 | "gecko": { 18 | "id": "tabsearchprovider@com.github.harshadgavali" 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /connector/meson.build: -------------------------------------------------------------------------------- 1 | project('tabsearchproviderconnector', 'rust', 2 | version: '0.1.1', 3 | meson_version: '>= 0.59.0', 4 | default_options: [ 'warning_level=2', 5 | ], 6 | ) 7 | prefix = get_option('prefix') 8 | libdir = prefix / get_option('libdir') 9 | bindir = prefix / get_option('bindir') 10 | datadir = prefix / get_option('datadir') 11 | 12 | domain_name = 'com.github.harshadgavali' 13 | app_id = '@0@.@1@'.format(domain_name, meson.project_name()) 14 | 15 | cargo_sources = files( 16 | 'Cargo.toml', 17 | 'Cargo.lock', 18 | ) 19 | 20 | subdir('src') 21 | subdir('manifests') 22 | -------------------------------------------------------------------------------- /shellextension/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "typeRoots": [ 5 | "./node_modules/@gi-types", 6 | ], 7 | "types": [ 8 | "gjs-environment", 9 | "base-types", 10 | // "gtk4-types", 11 | ], 12 | "lib": [ 13 | "ES2019" 14 | ], 15 | "allowSyntheticDefaultImports": true, 16 | "rootDir": "./extension", 17 | "outDir": "./dist", 18 | "target": "ES2019", 19 | "moduleResolution": "Node", 20 | "noImplicitOverride": true, 21 | }, 22 | } -------------------------------------------------------------------------------- /connector/src/meson.build: -------------------------------------------------------------------------------- 1 | connector_sources = [ 2 | cargo_sources, 3 | 'main.rs', 4 | ] 5 | 6 | cargo_script = find_program(join_paths(meson.project_source_root(), 'build-aux/cargo.sh')) 7 | cargo_release = custom_target( 8 | 'cargo-build', 9 | build_by_default: true, 10 | input: connector_sources, 11 | output: app_id, 12 | console: true, 13 | install: true, 14 | install_dir: get_option('bindir'), 15 | command: [ 16 | cargo_script, 17 | meson.project_build_root(), 18 | meson.project_source_root(), 19 | '@OUTPUT@', 20 | get_option('buildtype'), 21 | meson.project_name(), 22 | ] 23 | ) 24 | 25 | -------------------------------------------------------------------------------- /shellextension/extension/@types/shell-gjs.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'gi://Clutter' { 2 | export * from '@gi-types/clutter8'; 3 | } 4 | declare module 'gi://Meta' { 5 | export * from '@gi-types/meta8'; 6 | } 7 | 8 | declare module 'gi://St' { 9 | export * from '@gi-types/st1'; 10 | } 11 | 12 | declare module 'gi://Shell' { 13 | export * from '@gi-types/shell0'; 14 | } 15 | 16 | declare interface GjsGiImports { 17 | Clutter: typeof import('@gi-types/clutter8'), 18 | Meta: typeof import('@gi-types/meta8'), 19 | St: typeof import('@gi-types/st1'), 20 | Shell: typeof import('@gi-types/shell0'), 21 | } 22 | 23 | declare const global: import('@gi-types/shell0').Global; 24 | -------------------------------------------------------------------------------- /webextension/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webextension", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "watch": "rollup --config rollup.config.js --watch", 8 | "build": "rollup --config rollup.config.js", 9 | "clean": "rm -rf dist" 10 | }, 11 | "devDependencies": { 12 | "@rollup/plugin-typescript": "^8.3.0", 13 | "@types/chrome": "^0.0.176", 14 | "@typescript-eslint/eslint-plugin": "^5.10.0", 15 | "@typescript-eslint/parser": "^5.10.0", 16 | "eslint": "^8.7.0", 17 | "rollup": "^2.66.0", 18 | "rollup-plugin-copy": "^3.4.0", 19 | "tslib": "^2.3.1", 20 | "typescript": "^4.5.4" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /shellextension/extension/extension.ts: -------------------------------------------------------------------------------- 1 | import { BrowserTabExtension } from './src/browserTabs.js'; 2 | import { WindowAttentionHandlerExtension } from './src/windowAttensionHandler.js'; 3 | 4 | class Extension implements IExtension { 5 | private _extensions: ISubExtension[] = []; 6 | 7 | enable(): void { 8 | this._extensions = [ 9 | new BrowserTabExtension(), 10 | new WindowAttentionHandlerExtension(), 11 | ]; 12 | } 13 | 14 | disable(): void { 15 | this._extensions.reverse().forEach(extension => extension.destroy()); 16 | this._extensions = []; 17 | } 18 | } 19 | 20 | export default function init() { 21 | return new Extension(); 22 | } 23 | -------------------------------------------------------------------------------- /shellextension/extension/@types/shell-js.d.ts: -------------------------------------------------------------------------------- 1 | 2 | // imports variable 3 | declare interface GjsImports { 4 | ui: { 5 | main: typeof import('resource:///org/gnome/shell/js/ui/main.js'), 6 | remoteSearch: typeof import('resource:///org/gnome/shell/js/ui/remoteSearch.js'), 7 | } 8 | 9 | misc: { 10 | util: typeof import('resource:///org/gnome/shell/js/misc/util.js'), 11 | } 12 | } 13 | 14 | /* ui folder */ 15 | 16 | // declare module 'resource:///org/gnome/shell/js/ui/main.js' { 17 | // export default imports.ui.main; 18 | // } 19 | 20 | // /* util folder */ 21 | 22 | // declare module 'resource:///org/gnome/shell/js/misc/util.js' { 23 | // export default imports.misc.util; 24 | // } -------------------------------------------------------------------------------- /connector/build-aux/cargo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export MESON_BUILD_ROOT="$1" 4 | export MESON_SOURCE_ROOT="$2" 5 | export CARGO_TARGET_DIR="$MESON_BUILD_ROOT"/target 6 | export OUTPUT="$3" 7 | export BUILDTYPE="$4" 8 | export APP_BIN="$5" 9 | 10 | export PATH="$PATH:$HOME/.local/bin:$HOME/.cargo/bin" 11 | 12 | if [ $BUILDTYPE = "release" ]; then 13 | echo "RELEASE MODE" 14 | cargo build --manifest-path \ 15 | "$MESON_SOURCE_ROOT"/Cargo.toml --release --locked && 16 | cp "$CARGO_TARGET_DIR"/release/"$APP_BIN" "$OUTPUT" 17 | else 18 | echo "DEBUG MODE" 19 | cargo build --manifest-path \ 20 | "$MESON_SOURCE_ROOT"/Cargo.toml && 21 | cp "$CARGO_TARGET_DIR"/debug/"$APP_BIN" "$OUTPUT" 22 | fi 23 | -------------------------------------------------------------------------------- /shellextension/extension/@types/ui/remoteSearch.d.ts: -------------------------------------------------------------------------------- 1 | 2 | declare module 'resource:///org/gnome/shell/js/ui/remoteSearch.js' { 3 | import Gio from 'gi://Gio'; 4 | 5 | class RemoteSearchProvider2 { 6 | constructor(appInfo: typeof Gio.DesktopAppInfo.prototype, dbusName: string, dbusPath: string, autoStart: boolean); 7 | canLaunchSearch: boolean; 8 | appInfo: Gio.DesktopAppInfo; 9 | id: string; 10 | isRemoteProvider: boolean; 11 | proxy: Gio.DBusProxy; 12 | 13 | getInitialResultSet(terms: string[], cancellable: Gio.Cancellable): Promise; 14 | getSubsearchResultSet(previousResults: unknown[], newTerms: string[], cancellable: Gio.Cancellable): Promise; 15 | } 16 | 17 | function loadRemoteSearchProviders(searchSettings: typeof Gio.Settings.prototype): RemoteSearchProvider2[]; 18 | } -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "npm" # See documentation for possible values 9 | directory: "/webextension" # Location of package manifests 10 | schedule: 11 | interval: "monthly" 12 | 13 | - package-ecosystem: "npm" # See documentation for possible values 14 | directory: "/shellextension" # Location of package manifests 15 | schedule: 16 | interval: "monthly" 17 | 18 | - package-ecosystem: "cargo" # See documentation for possible values 19 | directory: "/connector" # Location of package manifests 20 | schedule: 21 | interval: "monthly" 22 | -------------------------------------------------------------------------------- /webextension/rollup.config.js: -------------------------------------------------------------------------------- 1 | import typescript from '@rollup/plugin-typescript'; 2 | import copy from 'rollup-plugin-copy'; 3 | 4 | const buildPath = 'dist'; 5 | const isProduction = !process.env.ROLLUP_WATCH; 6 | 7 | function getConfig(browser) { 8 | const browserBuildPath = `${buildPath}/${browser}` 9 | return { 10 | input: 'src/background.ts', 11 | output: { 12 | sourcemap: !isProduction, 13 | file: `${browserBuildPath}/background.js`, 14 | // format: 'iife', 15 | // exports: 'default', 16 | // name: 'init', 17 | }, 18 | plugins: [ 19 | typescript({ 20 | tsconfig: './tsconfig.json', 21 | sourceMap: !isProduction, 22 | }), 23 | copy({ 24 | targets: [ 25 | { src: `resources/${browser}.manifest.json`, dest: browserBuildPath, rename: 'manifest.json' } 26 | ] 27 | }) 28 | ] 29 | } 30 | } 31 | 32 | export default [ 33 | getConfig('chromium'), 34 | getConfig('firefox'), 35 | ]; -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Harshad 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /connector/manifests/flatpak-chromium/meson.build: -------------------------------------------------------------------------------- 1 | if get_option('home') == '' 2 | cmd = run_command('sh', '-c', 'echo $HOME') 3 | HOME_DIR = cmd.stdout().strip() 4 | else 5 | HOME_DIR = get_option('home') 6 | endif 7 | 8 | appdata_conf = configuration_data() 9 | appdata_conf.set('connectorexepath', release_bindir / app_id) 10 | local_exe_name = '@0@-flatpak-wrapper.sh'.format(app_id) 11 | local_exe_dir = join_paths(HOME_DIR, '.local/bin') 12 | configure_file( 13 | configuration: appdata_conf, 14 | input: 'flatpak-connector.sh.in', 15 | output: local_exe_name, 16 | install: true, 17 | install_dir: local_exe_dir 18 | ) 19 | 20 | # chromium 21 | appdata_conf = configuration_data() 22 | appdata_conf.set('app_id', app_id) 23 | appdata_conf.set('connectorexepath', join_paths(local_exe_dir, local_exe_name)) 24 | output_file = '@0@.json'.format(app_id) 25 | configure_file( 26 | configuration: appdata_conf, 27 | input: 'manifest.json.in', 28 | output: output_file, 29 | install: true, 30 | install_dir: join_paths(HOME_DIR, '.var/app/org.chromium.Chromium/config/chromium/NativeMessagingHosts/') 31 | ) 32 | -------------------------------------------------------------------------------- /shellextension/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shellextension", 3 | "version": "1.0.0", 4 | "source": "build/extension.js", 5 | "main": "dist/extension.js", 6 | "license": "MIT", 7 | "scripts": { 8 | "build": "rollup --config rollup.config.js", 9 | "preextension:install": "gnome-extensions pack --force dist", 10 | "extension:install": "gnome-extensions install --force *.shell-extension.zip" 11 | }, 12 | "devDependencies": { 13 | "@gi-types/base-types": "^1.0.0", 14 | "@gi-types/clutter8": "^8.0.0", 15 | "@gi-types/gio2": "^2.68.0", 16 | "@gi-types/gjs-environment": "^1.0.0", 17 | "@gi-types/glib2": "^2.68.0", 18 | "@gi-types/gobject2": "^2.68.0", 19 | "@gi-types/gtk4": "^4.2.0", 20 | "@gi-types/meta8": "^8.0.0", 21 | "@gi-types/shell0": "^0.1.0", 22 | "@gi-types/st1": "^1.0.0", 23 | "@rollup/plugin-typescript": "^8.3.0", 24 | "@types/node": "^17.0.10", 25 | "@typescript-eslint/eslint-plugin": "^5.10.0", 26 | "@typescript-eslint/parser": "^5.10.0", 27 | "eslint": "^8.7.0", 28 | "rollup": "^2.66.0", 29 | "rollup-plugin-copy": "^3.4.0", 30 | "tslib": "^2.3.1", 31 | "typescript": "^4.5.2" 32 | } 33 | } -------------------------------------------------------------------------------- /connector/src/webextension/native_messaging.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | error::Error, 3 | io::{Read, Write}, 4 | }; 5 | 6 | use byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; 7 | use serde::{de::DeserializeOwned, Serialize}; 8 | 9 | pub fn write_output( 10 | mut output: W, 11 | value: &T, 12 | ) -> Result<(), Box> { 13 | let msg = serde_json::to_string(value)?; 14 | let size: u32 = msg.len().try_into()?; 15 | if size > 1024 * 1024 { 16 | return Err(format!("Message was too large, length: {}", size).into()); 17 | } 18 | // output.write_all(&size.to_ne_bytes())?; 19 | output.write_u32::(size)?; 20 | output.write_all(msg.as_bytes())?; 21 | // println!("{:?}", size); 22 | output.flush()?; 23 | 24 | Ok(()) 25 | } 26 | 27 | pub fn read_input( 28 | mut input: R, 29 | ) -> Result> { 30 | let size: usize = input.read_u32::()?.try_into()?; 31 | let mut buffer = vec![0; size]; 32 | input.read_exact(&mut buffer)?; 33 | 34 | match serde_json::from_slice(&buffer) { 35 | Ok(v) => Ok(v), 36 | Err(e) => Err(Box::new(e)), 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /connector/build-aux/tabsearchproviderconnector.spec: -------------------------------------------------------------------------------- 1 | %global debug_package %{nil} 2 | %global gitrepo_name searchprovider-for-browser-tabs 3 | %global subpackage_name connector 4 | %global tarball_version %{subpackage_name}-v%%(echo %{version} | tr '~' '-') 5 | 6 | Name: tabsearchproviderconnector 7 | Version: 0.1.1 8 | Release: 1%{?dist} 9 | Summary: Browser tab search provider for GNOME 10 | 11 | License: MIT 12 | URL: https://github.com/harshadgavali/%{gitrepo_name} 13 | Source0: %{url}/archive/refs/tags/%{tarball_version}.tar.gz 14 | 15 | BuildRequires: cargo >= 1.39 16 | BuildRequires: meson >= 0.59.0 17 | BuildRequires: rust >= 1.39 18 | 19 | Requires: dbus-daemon 20 | 21 | %description 22 | Host connector for browser tab search provider for GNOME 23 | See ${url} for information for installing shell and browser extension 24 | 25 | %prep 26 | %autosetup -v -n %{gitrepo_name}-%{tarball_version}/%{subpackage_name} 27 | 28 | %build 29 | %meson --buildtype=release 30 | %meson_build 31 | 32 | %install 33 | %meson_install 34 | strip --strip-all %{buildroot}%{_bindir}/* 35 | 36 | %files 37 | %{_prefix}/bin/*%{name} 38 | %{_sysconfdir}/opt/chrome/native-messaging-hosts/*%{name}.json 39 | %{_prefix}/lib64/mozilla/native-messaging-hosts/*%{name}.json 40 | 41 | %changelog 42 | -------------------------------------------------------------------------------- /shellextension/rollup.config.js: -------------------------------------------------------------------------------- 1 | 2 | import typescript from '@rollup/plugin-typescript'; 3 | import copy from 'rollup-plugin-copy'; 4 | 5 | const buildPath = 'dist'; 6 | 7 | export default [ 8 | { 9 | input: 'extension/extension.ts', 10 | output: { 11 | file: `${buildPath}/extension.js`, 12 | format: 'iife', 13 | exports: 'default', 14 | name: 'init', 15 | }, 16 | plugins: [ 17 | typescript(), 18 | // scss({ 19 | // output: `${buildPath}/stylesheet.css`, 20 | // failOnError: true, 21 | // watch: 'src/styles', 22 | // }), 23 | copy({ 24 | targets: [ 25 | { src: './resources/metadata.json', dest: `${buildPath}` }, 26 | ], 27 | }), 28 | ], 29 | }, 30 | // { 31 | // input: 'extension/prefs.ts', 32 | // output: { 33 | // file: `${buildPath}/prefs.js`, 34 | // format: 'iife', 35 | // exports: 'default', 36 | // name: 'prefs', 37 | // footer: [ 38 | // 'var init = prefs.init;', 39 | // 'var buildPrefsWidget = prefs.buildPrefsWidget;', 40 | // ].join('\n'), 41 | // }, 42 | // plugins: [ 43 | // typescript(), 44 | // ], 45 | // }, 46 | ]; -------------------------------------------------------------------------------- /shellextension/extension/src/windowAttensionHandler.ts: -------------------------------------------------------------------------------- 1 | const { Meta } = imports.gi; 2 | const { windowAttentionHandler, activateWindow } = imports.ui.main; 3 | 4 | export class WindowAttentionHandlerExtension implements ISubExtension { 5 | private _signalIds: number[]; 6 | constructor() { 7 | if (windowAttentionHandler._windowDemandsAttentionId) 8 | global.display.block_signal_handler(windowAttentionHandler._windowDemandsAttentionId); 9 | if (windowAttentionHandler._windowMarkedUrgentId) 10 | global.display.block_signal_handler(windowAttentionHandler._windowMarkedUrgentId); 11 | 12 | this._signalIds = [ 13 | global.display.connect('window-demands-attention', this._windowDemandsAttention.bind(this)), 14 | global.display.connect('window-marked-urgent', this._windowDemandsAttention.bind(this)), 15 | ]; 16 | } 17 | 18 | destroy() { 19 | this._signalIds.reverse().forEach(id => global.display.disconnect(id)); 20 | this._signalIds = []; 21 | 22 | if (windowAttentionHandler._windowMarkedUrgentId) 23 | global.display.unblock_signal_handler(windowAttentionHandler._windowMarkedUrgentId); 24 | if (windowAttentionHandler._windowDemandsAttentionId) 25 | global.display.unblock_signal_handler(windowAttentionHandler._windowDemandsAttentionId); 26 | } 27 | 28 | _windowDemandsAttention(_display: never, window: typeof Meta.Window.prototype) { 29 | if (!window || window.skip_taskbar) 30 | return; 31 | activateWindow(window); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Connector Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - "connector-v*" 7 | 8 | jobs: 9 | Release: 10 | if: github.event.base_ref == 'refs/heads/main' 11 | runs-on: ubuntu-latest 12 | env: 13 | working-directory: ./connector 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: Set variables 17 | id: zipName 18 | run: | 19 | echo "::set-output name=tagname::${GITHUB_REF#refs/*/}" 20 | echo "::set-output name=filename::gnome-tabsearchprovider-connector.${GITHUB_REF#refs/*/}.zip" 21 | 22 | - name: Install dependencies 23 | run: | 24 | python3 -m pip install --user meson ninja 25 | 26 | - name: Clippy 27 | working-directory: ${{ env.working-directory }} 28 | run: | 29 | export CARGO_TARGET_DIR=build/target 30 | cargo clippy --release -- -D warnings 31 | 32 | - name: Build 33 | working-directory: ${{ env.working-directory }} 34 | run: | 35 | export GIT_HEAD_SHA=$(git rev-parse HEAD) 36 | meson --prefix=$PWD/dist/usr --sysconfdir=$PWD/dist/etc --buildtype=release build 37 | ninja -C build install 38 | 39 | - name: Create Zip 40 | working-directory: ${{ env.working-directory }} 41 | run: | 42 | cd dist 43 | zip -r ${{ steps.zipName.outputs.filename }} . 44 | 45 | - name: Upload archive artifact 46 | uses: actions/upload-artifact@v2 47 | with: 48 | name: ${{ steps.zipName.outputs.filename }} 49 | path: ${{ env.working-directory }}/dist/${{ steps.zipName.outputs.filename }} 50 | 51 | - name: Automatic Releases 52 | uses: marvinpinto/action-automatic-releases@v1.2.1 53 | with: 54 | repo_token: ${{ secrets.GITHUB_TOKEN }} 55 | prerelease: false 56 | automatic_release_tag: ${{ steps.zipName.outputs.tagname }} 57 | files: ${{ env.working-directory }}/dist/${{ steps.zipName.outputs.filename }} 58 | -------------------------------------------------------------------------------- /connector/src/webextension/communication.rs: -------------------------------------------------------------------------------- 1 | use serde::{de::DeserializeOwned, Deserialize, Serialize}; 2 | use serde_repr::{Deserialize_repr, Serialize_repr}; 3 | use zvariant::Type; 4 | 5 | use super::native_messaging; 6 | 7 | #[derive(Serialize, Deserialize)] 8 | struct ActivateTabRequestData { 9 | id: u64, 10 | } 11 | 12 | #[derive(Serialize, Deserialize)] 13 | #[serde(rename_all = "lowercase")] 14 | enum Routes { 15 | // History, 16 | Tabs, 17 | Tab, 18 | } 19 | 20 | #[derive(Serialize, Deserialize)] 21 | struct RequestData { 22 | route: Routes, 23 | data: Option, 24 | } 25 | 26 | #[derive(Serialize, Deserialize)] 27 | #[serde(tag = "type")] 28 | #[allow(clippy::upper_case_acronyms)] 29 | enum Request { 30 | GET(RequestData), 31 | POST(RequestData), 32 | } 33 | 34 | #[derive(Serialize, Deserialize, Type, Default, Debug)] 35 | #[serde(default)] 36 | pub struct TabsResponseData { 37 | pub id: u64, 38 | pub title: String, 39 | pub url: String, 40 | } 41 | 42 | #[derive(Serialize_repr, Deserialize_repr)] 43 | #[repr(u16)] 44 | enum ResponseStatus { 45 | Ok = 200, 46 | NotFound = 404, 47 | } 48 | 49 | #[derive(Serialize, Deserialize)] 50 | struct Response { 51 | status: ResponseStatus, 52 | data: T, 53 | } 54 | 55 | fn read_vec_data(req: &Request) -> Vec { 56 | if native_messaging::write_output(std::io::stdout(), &req).is_err() { 57 | return vec![]; 58 | } 59 | 60 | let response = 61 | native_messaging::read_input::>, std::io::Stdin>(std::io::stdin()); 62 | 63 | match response { 64 | Ok(response) => response.data, 65 | Err(_) => vec![], 66 | } 67 | } 68 | 69 | pub fn get_tabs() -> Vec { 70 | let req = Request::GET(RequestData:: { 71 | route: Routes::Tabs, 72 | data: None, 73 | }); 74 | read_vec_data(&req) 75 | } 76 | 77 | pub fn activate_tab(id: u64) { 78 | let req = Request::POST(RequestData { 79 | route: Routes::Tab, 80 | data: Some(ActivateTabRequestData { id }), 81 | }); 82 | if native_messaging::write_output(std::io::stdout(), &req).is_err() {} 83 | } 84 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | - github-ci 8 | pull_request: 9 | # The branches below must be a subset of the branches above 10 | branches: [main] 11 | # paths: 12 | # - "connector/**" 13 | 14 | jobs: 15 | connector: 16 | name: "Host connector" 17 | runs-on: ubuntu-latest 18 | env: 19 | working-directory: ./connector 20 | steps: 21 | - uses: actions/checkout@v2 22 | - name: Set variables 23 | id: zipName 24 | run: | 25 | echo "::set-output name=tagname::${GITHUB_REF#refs/*/}" 26 | echo "::set-output name=filename::gnome-tabsearchprovider-connector.$(date --iso-8601).$(git rev-parse --short HEAD).zip" 27 | 28 | - name: Install dependencies 29 | run: | 30 | python3 -m pip install --user meson ninja 31 | 32 | - name: Clippy 33 | working-directory: ${{ env.working-directory }} 34 | run: | 35 | export CARGO_TARGET_DIR=build/target 36 | cargo clippy -- -D warnings 37 | 38 | - name: Build 39 | working-directory: ${{ env.working-directory }} 40 | run: | 41 | export GIT_HEAD_SHA=$(git rev-parse HEAD) 42 | meson --prefix=$PWD/dist/usr --sysconfdir=$PWD/dist/etc build 43 | ninja -C build install 44 | 45 | - name: Create Zip 46 | working-directory: ${{ env.working-directory }} 47 | run: | 48 | cd dist 49 | zip -r ${{ steps.zipName.outputs.filename }} . 50 | 51 | - name: Upload archive artifact 52 | uses: actions/upload-artifact@v2 53 | with: 54 | name: ${{ steps.zipName.outputs.filename }} 55 | path: ${{ env.working-directory }}/dist/${{ steps.zipName.outputs.filename }} 56 | 57 | shell-extension: 58 | name: "Shell extension" 59 | runs-on: ubuntu-latest 60 | env: 61 | working-directory: ./shellextension 62 | steps: 63 | - uses: actions/checkout@v2 64 | - name: Lint 65 | working-directory: ${{ env.working-directory }} 66 | run: | 67 | yarn 68 | yarn eslint "extension/**/*.ts" 69 | 70 | web-extension: 71 | name: "Web extension" 72 | runs-on: ubuntu-latest 73 | env: 74 | working-directory: ./webextension 75 | steps: 76 | - uses: actions/checkout@v2 77 | - name: Lint 78 | working-directory: ${{ env.working-directory }} 79 | run: | 80 | yarn 81 | yarn eslint "src/**/*.ts" 82 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ main ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ main ] 20 | schedule: 21 | - cron: '32 14 * * 3' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | permissions: 28 | actions: read 29 | contents: read 30 | security-events: write 31 | 32 | strategy: 33 | fail-fast: false 34 | matrix: 35 | language: [ 'javascript' ] 36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] 37 | # Learn more about CodeQL language support at https://git.io/codeql-language-support 38 | 39 | steps: 40 | - name: Checkout repository 41 | uses: actions/checkout@v2 42 | 43 | # Initializes the CodeQL tools for scanning. 44 | - name: Initialize CodeQL 45 | uses: github/codeql-action/init@v1 46 | with: 47 | languages: ${{ matrix.language }} 48 | # If you wish to specify custom queries, you can do so here or in a config file. 49 | # By default, queries listed here will override any specified in a config file. 50 | # Prefix the list here with "+" to use these queries and those in the config file. 51 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 52 | 53 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 54 | # If this step fails, then you should remove it and run the build manually (see below) 55 | - name: Autobuild 56 | uses: github/codeql-action/autobuild@v1 57 | 58 | # ℹ️ Command-line programs to run using the OS shell. 59 | # 📚 https://git.io/JvXDl 60 | 61 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 62 | # and modify them (or add more) to build your code if your project 63 | # uses a compiled language 64 | 65 | #- run: | 66 | # make bootstrap 67 | # make release 68 | 69 | - name: Perform CodeQL Analysis 70 | uses: github/codeql-action/analyze@v1 71 | -------------------------------------------------------------------------------- /connector/src/main.rs: -------------------------------------------------------------------------------- 1 | use std::env::args; 2 | use zbus::{ 3 | blocking::{fdo, Connection}, 4 | fdo::RequestNameFlags, 5 | }; 6 | 7 | mod shell_providers; 8 | mod webextension; 9 | 10 | use shell_providers::gnome::WebSearchProvider; 11 | 12 | const EDGE_EXTENSIONS_IDS: &[&str] = &[ 13 | "chrome-extension://oemddknfonbdjbdggoopmapgojnjdmjc/", // devel id, keeps changing depending on directory where code is 14 | "chrome-extension://pjidkdbbdemngigldodbdpkpggmgilnl/", // store id 15 | ]; 16 | 17 | const VERSION: Option<&str> = option_env!("CARGO_PKG_VERSION"); 18 | const COMMIT: Option<&str> = option_env!("GIT_HEAD_SHA"); 19 | 20 | fn start_dbus_server(greeter: WebSearchProvider) -> zbus::Result<()> { 21 | let app_id = format!( 22 | "com.github.harshadgavali.SearchProvider.{}", 23 | greeter.get_app_name() 24 | ); 25 | let app_path = format!( 26 | "/com/github/harshadgavali/SearchProvider/{}", 27 | greeter.get_app_name() 28 | ); 29 | 30 | let connection = Connection::session()?; 31 | let dbus_proxy = fdo::DBusProxy::new(&connection)?; 32 | connection.object_server().at(app_path, greeter)?; 33 | dbus_proxy.request_name( 34 | app_id.try_into()?, 35 | RequestNameFlags::AllowReplacement | RequestNameFlags::ReplaceExisting, 36 | )?; 37 | 38 | if (dbus_proxy.receive_name_lost()?).next().is_some() { 39 | return Ok(()); 40 | } 41 | 42 | Ok(()) 43 | } 44 | 45 | fn print_help(args: &[String]) { 46 | println!( 47 | "You weren't supposed to do that!\n\ 48 | This executable should be started by browser not by users.\n\ 49 | Unknown arguments: {:}\n\ 50 | Supported arguments:\n\ 51 | \t--version\tdisplay version information\n", 52 | &args[1..args.len()].join(" ") 53 | ); 54 | } 55 | 56 | fn print_version() { 57 | println!("version: {}", VERSION.unwrap_or("unknown")); 58 | if let Some(commit) = COMMIT { 59 | println!("commit: {}", commit) 60 | } 61 | } 62 | 63 | fn main() -> zbus::Result<()> { 64 | let args: Vec = args().collect(); 65 | 66 | match args.len() { 67 | 3 => start_dbus_server(WebSearchProvider::new("Firefox", "firefox"))?, 68 | 69 | 2 => match args[1].as_str() { 70 | "--version" => print_version(), 71 | "--help" => print_help(&args), 72 | extension_id => { 73 | if EDGE_EXTENSIONS_IDS.contains(&extension_id) { 74 | start_dbus_server(WebSearchProvider::new("Edge", "microsoft-edge"))? 75 | } else { 76 | start_dbus_server(WebSearchProvider::new("Chromium", "org.chromium.Chromium"))? 77 | } 78 | } 79 | }, 80 | 81 | _ => print_help(&args), 82 | }; 83 | 84 | Ok(()) 85 | } 86 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # What is this ? 2 | This project provides browser tab search provider for [GNOME](https://www.gnome.org/) 3 | ### Screenshot 4 | ![Firefox search screenshot](./assets/firefox-search-screenshot.png) 5 | 6 | # Installation 7 | Installl all 3 components for tab search to work 8 | 1. [Browser extension](#browser-extension) 9 | 1. [Shell extension](#shell-extension) 10 | 1. [Host connector](#host-connector) 11 | 12 | 13 | ## Browser extension 14 | 15 |

16 | 17 | Get for Firefox 18 | 19 | 20 | Get for Edge 21 | 22 |

23 | 24 | ## Shell extension 25 | 26 | Get it on EGO 27 | 28 | 29 | Or from source 30 | ``` 31 | cd shellextension 32 | yarn 33 | yarn build 34 | yarn extension:install 35 | ``` 36 | 37 | ## Host connector 38 | ### For Fedora Linux 39 | Install from [copr](https://copr.fedorainfracloud.org/coprs/harshadgavali/searchproviders/) 40 | ``` 41 | sudo dnf copr enable harshadgavali/searchproviders 42 | sudo dnf install tabsearchproviderconnector 43 | ``` 44 | 45 | ### For Manjaro, Arch Linux and derivatives 46 | Install [tabsearchproviderconnector](https://aur.archlinux.org/packages/tabsearchproviderconnector/) from AUR (packaged by [@bartlibert](https://github.com/bartlibert)). 47 | 48 | ### For other distributions 49 | #### Install from releases 50 | * Download zip of latest release from [here](https://github.com/harshadgavali/searchprovider-for-browser-tabs/releases/) 51 | ``` 52 | # first verify what files zip has 53 | zip -sf gnome-tabsearchprovider-connector.connector-*.zip 54 | # output should have following files 55 | # - etc/opt/chrome/native-messaging-hosts/com.github.harshadgavali.tabsearchproviderconnector.json 56 | # - usr/bin/com.github.harshadgavali.tabsearchproviderconnector 57 | # - usr/lib64/mozilla/native-messaging-hosts/com.github.harshadgavali.tabsearchproviderconnector.json 58 | 59 | sudo unzip -o -d / gnome-tabsearchprovider-connector.connector-*.zip 60 | 61 | # create link for file from lib64 to lib 62 | sudo mkdir -p /usr/lib/mozilla/native-messaging-hosts/ 63 | sudo ln -s /usr/lib{64,}/mozilla/native-messaging-hosts/com.github.harshadgavali.tabsearchproviderconnector.json 64 | ``` 65 | 66 | #### Install from git 67 | **Dependencies**: meson, ninja, cargo, rust 68 | ``` 69 | cd connector 70 | meson --prefix=/usr build 71 | ninja -C build install 72 | 73 | # create link for file from lib64 to lib 74 | sudo mkdir -p /usr/lib/mozilla/native-messaging-hosts/ 75 | sudo ln -s /usr/lib{64,}/mozilla/native-messaging-hosts/com.github.harshadgavali.tabsearchproviderconnector.json 76 | ``` 77 | 78 | ## If you installed browser addons in different way 79 | * Then update manifest in following locations 80 | with ids of browser addons 81 | * /etc/opt/chrome/native-messaging-hosts/ 82 | * /usr/lib64/mozilla/native-messaging-hosts/ 83 | 84 | ## After installation 85 | * Open browser 86 | * Start searching with `Super` key 87 | * Browser tabs(except active tabs) will appear in search results 88 | -------------------------------------------------------------------------------- /shellextension/extension/src/browserTabs.ts: -------------------------------------------------------------------------------- 1 | const { Shell, Gio } = imports.gi; 2 | 3 | const RemoteSearch = imports.ui.remoteSearch; 4 | const Util = imports.misc.util; 5 | 6 | const DOMAIN_NAME = 'com.github.harshadgavali'; 7 | const BASE_ID = `${DOMAIN_NAME}.SearchProvider`; 8 | const BASE_PATH = `/${DOMAIN_NAME.replace(/\./g, '/')}/SearchProvider`; 9 | const SEARCH_PROVIDERS_SCHEMA = 'org.gnome.desktop.search-providers'; 10 | const EXENAME = `${DOMAIN_NAME}.tabsearchproviderconnector`; 11 | 12 | export class WebBrowserTabSearchProvider extends RemoteSearch.RemoteSearchProvider2 { 13 | constructor(appInfo: typeof Gio.DesktopAppInfo.prototype, dbusName: string, dbusPath: string, autoStart: boolean) { 14 | super(appInfo, dbusName, dbusPath, autoStart); 15 | 16 | this.id = `tabsearchprovider.${dbusName}`; 17 | this.isRemoteProvider = true; 18 | this.canLaunchSearch = false; 19 | } 20 | 21 | override async getInitialResultSet(terms: string[], cancellable: typeof Gio.Cancellable.prototype) { 22 | try { 23 | const [results] = await this.proxy.GetInitialResultSetAsync(terms, cancellable); 24 | return results; 25 | } 26 | catch (error) { 27 | this._handleGioDbusError(error); 28 | return []; 29 | } 30 | } 31 | 32 | override async getSubsearchResultSet(previousResults: unknown[], newTerms: string[], cancellable: typeof Gio.Cancellable.prototype) { 33 | try { 34 | const [results] = await this.proxy.GetSubsearchResultSetAsync(previousResults, newTerms, cancellable); 35 | return results; 36 | } 37 | catch (error) { 38 | this._handleGioDbusError(error); 39 | return []; 40 | } 41 | } 42 | 43 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 44 | private _handleGioDbusError(error: any) { 45 | if ( 46 | !error?.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED) && 47 | !error?.matches(Gio.DBusError, Gio.DBusError.SERVICE_UNKNOWN) 48 | ) { 49 | log(`Received error from D-Bus search provider ${this.id}: ${error}`); 50 | } 51 | } 52 | } 53 | 54 | function getProvider(app: typeof Shell.App.prototype | undefined, appName: string) { 55 | if (!app) 56 | return; 57 | const appInfo = app.get_app_info(); 58 | appInfo.get_description = () => `List of tabs open in ${appInfo}`; 59 | appInfo.get_name = () => `${appName} Tabs`; 60 | 61 | return new WebBrowserTabSearchProvider( 62 | appInfo, 63 | `${BASE_ID}.${appName}`, 64 | `${BASE_PATH}/${appName}`, 65 | true, 66 | ); 67 | } 68 | 69 | export class BrowserTabExtension implements ISubExtension { 70 | private _searchSettings: typeof Gio.Settings.prototype; 71 | private _appIds: { id: string, name: string }[]; 72 | private _loadRemoteSearchProviders: typeof RemoteSearch.loadRemoteSearchProviders; 73 | 74 | constructor() { 75 | this._searchSettings = new Gio.Settings({ schema_id: SEARCH_PROVIDERS_SCHEMA }); 76 | this._loadRemoteSearchProviders = RemoteSearch.loadRemoteSearchProviders; 77 | this._appIds = [ 78 | { id: 'firefox.desktop', name: 'Firefox' }, 79 | { id: 'microsoft-edge.desktop', name: 'Edge' }, 80 | { id: 'org.chromium.Chromium.desktop', name: 'Chromium' }, 81 | ]; 82 | this._appIds.reverse(); 83 | 84 | const appSystem = Shell.AppSystem.get_default(); 85 | // eslint-disable-next-line @typescript-eslint/no-this-alias 86 | const extensionThis = this; 87 | 88 | RemoteSearch.loadRemoteSearchProviders = function (searchSettings) { 89 | const providers = extensionThis._loadRemoteSearchProviders(searchSettings); 90 | extensionThis._appIds.forEach(app => { 91 | const provider = getProvider(appSystem.lookup_app(app.id), app.name); 92 | if (provider) 93 | providers.unshift(provider); 94 | }); 95 | return providers; 96 | }; 97 | 98 | this._reloadProviders(); 99 | } 100 | 101 | destroy() { 102 | RemoteSearch.loadRemoteSearchProviders = this._loadRemoteSearchProviders; 103 | this._reloadProviders(); 104 | Util.spawn(['/usr/bin/killall', EXENAME]); 105 | } 106 | 107 | _reloadProviders() { 108 | this._searchSettings.set_boolean('disable-external', true); 109 | this._searchSettings.set_boolean('disable-external', false); 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /connector/src/shell_providers/gnome.rs: -------------------------------------------------------------------------------- 1 | use std::collections::HashMap; 2 | 3 | use zbus::dbus_interface; 4 | use zvariant::{DeserializeDict, SerializeDict, TypeDict}; 5 | 6 | use crate::webextension::communication::{self, TabsResponseData}; 7 | 8 | #[derive(SerializeDict, DeserializeDict, TypeDict)] 9 | struct TabResultMetaData { 10 | id: String, 11 | name: String, 12 | gicon: String, 13 | description: String, 14 | } 15 | 16 | trait GnomeSearchProvider { 17 | fn get_initial_result_set(&mut self, terms: Vec) -> Vec; 18 | fn get_subsearch_result_set( 19 | &self, 20 | previous_results: Vec, 21 | terms: Vec, 22 | ) -> Vec; 23 | 24 | fn get_result_metas(&self, tab_ids: Vec) -> Vec; 25 | fn activate_result(&self, tab_id: String, terms: Vec, timestamp: u32); 26 | fn launch_search(&self, terms: Vec, timestamp: u32); 27 | } 28 | 29 | pub struct WebSearchProvider { 30 | pub name: String, 31 | gicon: String, 32 | tabs: HashMap, 33 | } 34 | 35 | impl WebSearchProvider { 36 | pub fn new(name: &str, gicon: &str) -> Self { 37 | WebSearchProvider { 38 | name: name.into(), 39 | gicon: gicon.into(), 40 | tabs: HashMap::new(), 41 | } 42 | } 43 | 44 | pub fn get_app_name(&self) -> String { 45 | self.name.clone() 46 | } 47 | 48 | fn get_tab(&self, id: &str) -> Option<&TabsResponseData> { 49 | let id: Option = match id.parse() { 50 | Ok(v) => Some(v), 51 | Err(_) => None, 52 | }; 53 | 54 | match id { 55 | Some(id) => self.tabs.get(&id), 56 | None => None, 57 | } 58 | } 59 | } 60 | 61 | fn get_string_match_score(text: &str, normalized_terms: &[String]) -> i32 { 62 | let text = text.to_lowercase(); 63 | normalized_terms 64 | .iter() 65 | .map(|term| text.to_lowercase().contains(term) as i32) 66 | .sum() 67 | } 68 | 69 | fn filter_tabs(tabs: Vec<&TabsResponseData>, terms: &[String], app_name: &str) -> Vec { 70 | let terms: Vec = terms.iter().map(|term| term.to_lowercase()).collect(); 71 | 72 | let common_score = 73 | get_string_match_score(app_name, &terms) + get_string_match_score("tabs", &terms); 74 | 75 | let mut tab_score = HashMap::::new(); 76 | for tab in &tabs { 77 | let score = common_score 78 | + get_string_match_score(tab.title.as_str(), &terms) * 2 79 | + get_string_match_score(tab.url.as_str(), &terms); 80 | 81 | tab_score.insert(tab.id, score); 82 | } 83 | 84 | let threshold = 0; // threshold scroe 85 | 86 | let mut tabs = tabs 87 | .into_iter() 88 | .filter(|tab| tab_score.get(&tab.id).unwrap_or(&threshold) > &threshold) 89 | .collect::>(); 90 | tabs.sort_by_cached_key(|tab| tab_score.get(&tab.id).unwrap_or(&threshold)); 91 | tabs.into_iter() 92 | .rev() // reverse sorting to have tabs with more match score at beginning 93 | .map(|tab| tab.id.to_string()) 94 | .collect() 95 | } 96 | 97 | #[dbus_interface(name = "org.gnome.Shell.SearchProvider2")] 98 | impl GnomeSearchProvider for WebSearchProvider { 99 | fn get_initial_result_set(&mut self, terms: Vec) -> Vec { 100 | self.tabs.clear(); 101 | for tab in communication::get_tabs() { 102 | self.tabs.insert(tab.id, tab); 103 | } 104 | let tabs = self.tabs.values().collect(); 105 | filter_tabs(tabs, &terms, self.name.as_str()) 106 | } 107 | 108 | fn get_subsearch_result_set( 109 | &self, 110 | _previous_results: Vec, 111 | terms: Vec, 112 | ) -> Vec { 113 | let tabs = self.tabs.values().collect(); 114 | filter_tabs(tabs, &terms, self.name.as_str()) 115 | } 116 | 117 | fn get_result_metas(&self, tab_ids: Vec) -> Vec { 118 | tab_ids 119 | .iter() 120 | .filter_map(|id| self.get_tab(id)) 121 | .map(|tab| TabResultMetaData { 122 | id: tab.id.to_string(), 123 | name: tab.title.clone(), 124 | gicon: self.gicon.clone(), 125 | description: tab.url.clone(), 126 | }) 127 | .collect() 128 | } 129 | 130 | fn activate_result(&self, tab_id: String, _terms: Vec, _timestamp: u32) { 131 | if let Ok(id) = tab_id.parse() { 132 | if self.tabs.contains_key(&id) { 133 | communication::activate_tab(id); 134 | } 135 | } 136 | } 137 | 138 | fn launch_search(&self, _terms: Vec, _timestamp: u32) { 139 | // todo!() 140 | } 141 | } 142 | -------------------------------------------------------------------------------- /webextension/src/background.ts: -------------------------------------------------------------------------------- 1 | interface IConstants { 2 | readonly NATIVE_APPID: string, 3 | readonly SUPPORTED_PLATFORMS: ReadonlyArray 4 | } 5 | 6 | const Constants: IConstants = { 7 | NATIVE_APPID: "com.github.harshadgavali.tabsearchproviderconnector", 8 | SUPPORTED_PLATFORMS: ['linux'], 9 | }; 10 | 11 | type Nullable = T | undefined | null; 12 | 13 | /** 14 | * This is typescript type gaurd to determine whether object is non nullable 15 | * @returns true if obj is neither null nor undefined 16 | */ 17 | function IsNonNullable(obj: Nullable): obj is T { 18 | return obj !== undefined && obj !== null; 19 | } 20 | 21 | const State = { 22 | port: undefined as Nullable, 23 | reconnectTimer: 0 as Nullable, 24 | // restart host app after 5ms 25 | // host app is killed when session is locked 26 | // so this delay needs to be small 27 | reconnectDelay: 5_000, 28 | activeTabTracker: new Map(), 29 | }; 30 | 31 | interface IResponse { 32 | status: 200 | 404, 33 | data: unknown, 34 | } 35 | 36 | interface IResponseTab { 37 | id: number, 38 | title: string, 39 | url: string, 40 | } 41 | 42 | interface IRequest { 43 | type?: 'GET' | 'POST', 44 | route?: 'tabs' | 'tab', 45 | data?: any, 46 | } 47 | 48 | interface IGetTabsRequestData { 49 | // let client requesting tabs decide whether to exclude active tabs from result 50 | excludeActiveTabs?: boolean, 51 | } 52 | 53 | interface IActiveTabRequestData { 54 | id?: any, 55 | } 56 | 57 | /** 58 | * Send message to native host 59 | */ 60 | function sendResponse(message: IResponse) { 61 | try { 62 | // console.log(`WebExtension SEND: ${JSON.stringify(message)}`); 63 | if (State.port) 64 | State.port.postMessage(message); 65 | else 66 | console.warn('port is disconnected'); 67 | } catch (e) { 68 | console.error(e); 69 | } 70 | } 71 | 72 | 73 | function getAllTabs(reqData: Nullable, callback: (tabs: IResponseTab[]) => void) { 74 | chrome.tabs.query( 75 | { 76 | // if true, only active tabs are returned 77 | // if false, active tabs are excluded, 78 | // if undefined, all tabs are returned 79 | active: reqData?.excludeActiveTabs ? false : undefined, 80 | }, 81 | allTabs => { 82 | const tabs = allTabs 83 | .map(t => { 84 | if (IsNonNullable(t.id) && IsNonNullable(t.title) && IsNonNullable(t.url)) { 85 | return { 86 | id: t.id, 87 | title: t.title, 88 | url: t.url 89 | } 90 | } 91 | return undefined; 92 | }) 93 | .filter(IsNonNullable); 94 | callback(tabs); 95 | }, 96 | ); 97 | } 98 | 99 | function handleGetRquest(req: IRequest) { 100 | switch (req.route) { 101 | case 'tabs': 102 | getAllTabs(req.data, tabs => { 103 | sendResponse({ status: 200, data: tabs }); 104 | }); 105 | break; 106 | default: 107 | sendResponse({ status: 404, data: `Route '${req.route}' is not available for GET request.` }); 108 | } 109 | } 110 | 111 | /** 112 | * Activate browser tab with given id and focus window containing tab 113 | * @param id id of tab 114 | */ 115 | function activateTab(id: number) { 116 | chrome.tabs.update(id, { active: true }, tab => { 117 | if (IsNonNullable(tab)) { 118 | chrome.windows.update(tab.windowId, { focused: true }); 119 | } 120 | }); 121 | } 122 | 123 | function handlePostRquest(req: IRequest) { 124 | switch (req.route) { 125 | case 'tab': 126 | const data: Nullable = req.data; 127 | if (typeof data?.id === 'number') 128 | activateTab(data.id); 129 | break; 130 | } 131 | } 132 | 133 | /** 134 | * handle request received from native host 135 | */ 136 | function onRequestReceived(request: IRequest) { 137 | try { 138 | // console.log(`WebExtension RECV: ${JSON.stringify(request)}`); 139 | switch (request.type) { 140 | case 'GET': 141 | handleGetRquest(request); 142 | break; 143 | case 'POST': 144 | handlePostRquest(request); 145 | break; 146 | } 147 | } catch (e) { 148 | console.error(e); 149 | } 150 | } 151 | 152 | function onDisconnect(port: chrome.runtime.Port) { 153 | const errorMessage = (chrome.runtime.lastError ?? ((port as any).error as Nullable))?.message; 154 | console.log("Inside onDisconnected(): " + errorMessage); 155 | State.port = undefined; 156 | State.reconnectTimer = setTimeout(connectNative, State.reconnectDelay); 157 | } 158 | 159 | function connectNative() { 160 | if (IsNonNullable(State.reconnectTimer)) { 161 | clearTimeout(State.reconnectTimer); 162 | State.reconnectTimer = undefined; 163 | } 164 | 165 | State.port = chrome.runtime.connectNative(Constants.NATIVE_APPID); 166 | State.port.onDisconnect.addListener(onDisconnect); 167 | State.port.onMessage.addListener(onRequestReceived); 168 | } 169 | 170 | chrome.runtime.getPlatformInfo(platformInfo => { 171 | if (Constants.SUPPORTED_PLATFORMS.indexOf(platformInfo.os) >= 0) 172 | connectNative(); 173 | }); -------------------------------------------------------------------------------- /connector/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "aho-corasick" 7 | version = "0.7.18" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" 10 | dependencies = [ 11 | "memchr", 12 | ] 13 | 14 | [[package]] 15 | name = "async-broadcast" 16 | version = "0.3.4" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "90622698a1218e0b2fb846c97b5f19a0831f6baddee73d9454156365ccfa473b" 19 | dependencies = [ 20 | "easy-parallel", 21 | "event-listener", 22 | "futures-core", 23 | ] 24 | 25 | [[package]] 26 | name = "async-channel" 27 | version = "1.6.1" 28 | source = "registry+https://github.com/rust-lang/crates.io-index" 29 | checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" 30 | dependencies = [ 31 | "concurrent-queue", 32 | "event-listener", 33 | "futures-core", 34 | ] 35 | 36 | [[package]] 37 | name = "async-executor" 38 | version = "1.4.1" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" 41 | dependencies = [ 42 | "async-task", 43 | "concurrent-queue", 44 | "fastrand", 45 | "futures-lite", 46 | "once_cell", 47 | "slab", 48 | ] 49 | 50 | [[package]] 51 | name = "async-io" 52 | version = "1.6.0" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" 55 | dependencies = [ 56 | "concurrent-queue", 57 | "futures-lite", 58 | "libc", 59 | "log", 60 | "once_cell", 61 | "parking", 62 | "polling", 63 | "slab", 64 | "socket2", 65 | "waker-fn", 66 | "winapi", 67 | ] 68 | 69 | [[package]] 70 | name = "async-lock" 71 | version = "2.4.0" 72 | source = "registry+https://github.com/rust-lang/crates.io-index" 73 | checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" 74 | dependencies = [ 75 | "event-listener", 76 | ] 77 | 78 | [[package]] 79 | name = "async-recursion" 80 | version = "0.3.2" 81 | source = "registry+https://github.com/rust-lang/crates.io-index" 82 | checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" 83 | dependencies = [ 84 | "proc-macro2", 85 | "quote", 86 | "syn", 87 | ] 88 | 89 | [[package]] 90 | name = "async-task" 91 | version = "4.0.3" 92 | source = "registry+https://github.com/rust-lang/crates.io-index" 93 | checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" 94 | 95 | [[package]] 96 | name = "async-trait" 97 | version = "0.1.52" 98 | source = "registry+https://github.com/rust-lang/crates.io-index" 99 | checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" 100 | dependencies = [ 101 | "proc-macro2", 102 | "quote", 103 | "syn", 104 | ] 105 | 106 | [[package]] 107 | name = "autocfg" 108 | version = "1.0.1" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" 111 | 112 | [[package]] 113 | name = "bitflags" 114 | version = "1.3.2" 115 | source = "registry+https://github.com/rust-lang/crates.io-index" 116 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 117 | 118 | [[package]] 119 | name = "byteorder" 120 | version = "1.4.3" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 123 | 124 | [[package]] 125 | name = "cache-padded" 126 | version = "1.2.0" 127 | source = "registry+https://github.com/rust-lang/crates.io-index" 128 | checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" 129 | 130 | [[package]] 131 | name = "cc" 132 | version = "1.0.72" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" 135 | 136 | [[package]] 137 | name = "cfg-if" 138 | version = "1.0.0" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 141 | 142 | [[package]] 143 | name = "concurrent-queue" 144 | version = "1.2.2" 145 | source = "registry+https://github.com/rust-lang/crates.io-index" 146 | checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" 147 | dependencies = [ 148 | "cache-padded", 149 | ] 150 | 151 | [[package]] 152 | name = "derivative" 153 | version = "2.2.0" 154 | source = "registry+https://github.com/rust-lang/crates.io-index" 155 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 156 | dependencies = [ 157 | "proc-macro2", 158 | "quote", 159 | "syn", 160 | ] 161 | 162 | [[package]] 163 | name = "easy-parallel" 164 | version = "3.2.0" 165 | source = "registry+https://github.com/rust-lang/crates.io-index" 166 | checksum = "6907e25393cdcc1f4f3f513d9aac1e840eb1cc341a0fccb01171f7d14d10b946" 167 | 168 | [[package]] 169 | name = "enumflags2" 170 | version = "0.7.3" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "a25c90b056b3f84111cf183cbeddef0d3a0bbe9a674f057e1a1533c315f24def" 173 | dependencies = [ 174 | "enumflags2_derive", 175 | "serde", 176 | ] 177 | 178 | [[package]] 179 | name = "enumflags2_derive" 180 | version = "0.7.3" 181 | source = "registry+https://github.com/rust-lang/crates.io-index" 182 | checksum = "144ec79496cbab6f84fa125dc67be9264aef22eb8a28da8454d9c33f15108da4" 183 | dependencies = [ 184 | "proc-macro2", 185 | "quote", 186 | "syn", 187 | ] 188 | 189 | [[package]] 190 | name = "event-listener" 191 | version = "2.5.1" 192 | source = "registry+https://github.com/rust-lang/crates.io-index" 193 | checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" 194 | 195 | [[package]] 196 | name = "fastrand" 197 | version = "1.6.0" 198 | source = "registry+https://github.com/rust-lang/crates.io-index" 199 | checksum = "779d043b6a0b90cc4c0ed7ee380a6504394cee7efd7db050e3774eee387324b2" 200 | dependencies = [ 201 | "instant", 202 | ] 203 | 204 | [[package]] 205 | name = "futures-core" 206 | version = "0.3.19" 207 | source = "registry+https://github.com/rust-lang/crates.io-index" 208 | checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" 209 | 210 | [[package]] 211 | name = "futures-io" 212 | version = "0.3.19" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" 215 | 216 | [[package]] 217 | name = "futures-lite" 218 | version = "1.12.0" 219 | source = "registry+https://github.com/rust-lang/crates.io-index" 220 | checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" 221 | dependencies = [ 222 | "fastrand", 223 | "futures-core", 224 | "futures-io", 225 | "memchr", 226 | "parking", 227 | "pin-project-lite", 228 | "waker-fn", 229 | ] 230 | 231 | [[package]] 232 | name = "futures-sink" 233 | version = "0.3.19" 234 | source = "registry+https://github.com/rust-lang/crates.io-index" 235 | checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" 236 | 237 | [[package]] 238 | name = "futures-task" 239 | version = "0.3.19" 240 | source = "registry+https://github.com/rust-lang/crates.io-index" 241 | checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" 242 | 243 | [[package]] 244 | name = "futures-util" 245 | version = "0.3.19" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" 248 | dependencies = [ 249 | "futures-core", 250 | "futures-sink", 251 | "futures-task", 252 | "pin-project-lite", 253 | "pin-utils", 254 | "slab", 255 | ] 256 | 257 | [[package]] 258 | name = "getrandom" 259 | version = "0.2.3" 260 | source = "registry+https://github.com/rust-lang/crates.io-index" 261 | checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" 262 | dependencies = [ 263 | "cfg-if", 264 | "libc", 265 | "wasi", 266 | ] 267 | 268 | [[package]] 269 | name = "hex" 270 | version = "0.4.3" 271 | source = "registry+https://github.com/rust-lang/crates.io-index" 272 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 273 | 274 | [[package]] 275 | name = "instant" 276 | version = "0.1.12" 277 | source = "registry+https://github.com/rust-lang/crates.io-index" 278 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 279 | dependencies = [ 280 | "cfg-if", 281 | ] 282 | 283 | [[package]] 284 | name = "itoa" 285 | version = "1.0.1" 286 | source = "registry+https://github.com/rust-lang/crates.io-index" 287 | checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" 288 | 289 | [[package]] 290 | name = "libc" 291 | version = "0.2.112" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" 294 | 295 | [[package]] 296 | name = "log" 297 | version = "0.4.14" 298 | source = "registry+https://github.com/rust-lang/crates.io-index" 299 | checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" 300 | dependencies = [ 301 | "cfg-if", 302 | ] 303 | 304 | [[package]] 305 | name = "memchr" 306 | version = "2.4.1" 307 | source = "registry+https://github.com/rust-lang/crates.io-index" 308 | checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" 309 | 310 | [[package]] 311 | name = "memoffset" 312 | version = "0.6.5" 313 | source = "registry+https://github.com/rust-lang/crates.io-index" 314 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 315 | dependencies = [ 316 | "autocfg", 317 | ] 318 | 319 | [[package]] 320 | name = "nix" 321 | version = "0.23.1" 322 | source = "registry+https://github.com/rust-lang/crates.io-index" 323 | checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" 324 | dependencies = [ 325 | "bitflags", 326 | "cc", 327 | "cfg-if", 328 | "libc", 329 | "memoffset", 330 | ] 331 | 332 | [[package]] 333 | name = "once_cell" 334 | version = "1.9.0" 335 | source = "registry+https://github.com/rust-lang/crates.io-index" 336 | checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" 337 | 338 | [[package]] 339 | name = "ordered-stream" 340 | version = "0.0.1" 341 | source = "registry+https://github.com/rust-lang/crates.io-index" 342 | checksum = "44630c059eacfd6e08bdaa51b1db2ce33119caa4ddc1235e923109aa5f25ccb1" 343 | dependencies = [ 344 | "futures-core", 345 | "pin-project-lite", 346 | ] 347 | 348 | [[package]] 349 | name = "parking" 350 | version = "2.0.0" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" 353 | 354 | [[package]] 355 | name = "pin-project-lite" 356 | version = "0.2.8" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" 359 | 360 | [[package]] 361 | name = "pin-utils" 362 | version = "0.1.0" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 365 | 366 | [[package]] 367 | name = "polling" 368 | version = "2.2.0" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" 371 | dependencies = [ 372 | "cfg-if", 373 | "libc", 374 | "log", 375 | "wepoll-ffi", 376 | "winapi", 377 | ] 378 | 379 | [[package]] 380 | name = "ppv-lite86" 381 | version = "0.2.16" 382 | source = "registry+https://github.com/rust-lang/crates.io-index" 383 | checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" 384 | 385 | [[package]] 386 | name = "proc-macro-crate" 387 | version = "1.1.0" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" 390 | dependencies = [ 391 | "thiserror", 392 | "toml", 393 | ] 394 | 395 | [[package]] 396 | name = "proc-macro2" 397 | version = "1.0.36" 398 | source = "registry+https://github.com/rust-lang/crates.io-index" 399 | checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" 400 | dependencies = [ 401 | "unicode-xid", 402 | ] 403 | 404 | [[package]] 405 | name = "quote" 406 | version = "1.0.14" 407 | source = "registry+https://github.com/rust-lang/crates.io-index" 408 | checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d" 409 | dependencies = [ 410 | "proc-macro2", 411 | ] 412 | 413 | [[package]] 414 | name = "rand" 415 | version = "0.8.4" 416 | source = "registry+https://github.com/rust-lang/crates.io-index" 417 | checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" 418 | dependencies = [ 419 | "libc", 420 | "rand_chacha", 421 | "rand_core", 422 | "rand_hc", 423 | ] 424 | 425 | [[package]] 426 | name = "rand_chacha" 427 | version = "0.3.1" 428 | source = "registry+https://github.com/rust-lang/crates.io-index" 429 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 430 | dependencies = [ 431 | "ppv-lite86", 432 | "rand_core", 433 | ] 434 | 435 | [[package]] 436 | name = "rand_core" 437 | version = "0.6.3" 438 | source = "registry+https://github.com/rust-lang/crates.io-index" 439 | checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" 440 | dependencies = [ 441 | "getrandom", 442 | ] 443 | 444 | [[package]] 445 | name = "rand_hc" 446 | version = "0.3.1" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" 449 | dependencies = [ 450 | "rand_core", 451 | ] 452 | 453 | [[package]] 454 | name = "regex" 455 | version = "1.5.4" 456 | source = "registry+https://github.com/rust-lang/crates.io-index" 457 | checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" 458 | dependencies = [ 459 | "aho-corasick", 460 | "memchr", 461 | "regex-syntax", 462 | ] 463 | 464 | [[package]] 465 | name = "regex-syntax" 466 | version = "0.6.25" 467 | source = "registry+https://github.com/rust-lang/crates.io-index" 468 | checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" 469 | 470 | [[package]] 471 | name = "ryu" 472 | version = "1.0.9" 473 | source = "registry+https://github.com/rust-lang/crates.io-index" 474 | checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" 475 | 476 | [[package]] 477 | name = "serde" 478 | version = "1.0.133" 479 | source = "registry+https://github.com/rust-lang/crates.io-index" 480 | checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" 481 | dependencies = [ 482 | "serde_derive", 483 | ] 484 | 485 | [[package]] 486 | name = "serde_derive" 487 | version = "1.0.133" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" 490 | dependencies = [ 491 | "proc-macro2", 492 | "quote", 493 | "syn", 494 | ] 495 | 496 | [[package]] 497 | name = "serde_json" 498 | version = "1.0.78" 499 | source = "registry+https://github.com/rust-lang/crates.io-index" 500 | checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" 501 | dependencies = [ 502 | "itoa", 503 | "ryu", 504 | "serde", 505 | ] 506 | 507 | [[package]] 508 | name = "serde_repr" 509 | version = "0.1.7" 510 | source = "registry+https://github.com/rust-lang/crates.io-index" 511 | checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5" 512 | dependencies = [ 513 | "proc-macro2", 514 | "quote", 515 | "syn", 516 | ] 517 | 518 | [[package]] 519 | name = "sha1" 520 | version = "0.6.0" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" 523 | 524 | [[package]] 525 | name = "slab" 526 | version = "0.4.5" 527 | source = "registry+https://github.com/rust-lang/crates.io-index" 528 | checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" 529 | 530 | [[package]] 531 | name = "socket2" 532 | version = "0.4.2" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" 535 | dependencies = [ 536 | "libc", 537 | "winapi", 538 | ] 539 | 540 | [[package]] 541 | name = "static_assertions" 542 | version = "1.1.0" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 545 | 546 | [[package]] 547 | name = "syn" 548 | version = "1.0.84" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "ecb2e6da8ee5eb9a61068762a32fa9619cc591ceb055b3687f4cd4051ec2e06b" 551 | dependencies = [ 552 | "proc-macro2", 553 | "quote", 554 | "unicode-xid", 555 | ] 556 | 557 | [[package]] 558 | name = "tabsearchproviderconnector" 559 | version = "0.1.1" 560 | dependencies = [ 561 | "byteorder", 562 | "serde", 563 | "serde_json", 564 | "serde_repr", 565 | "zbus", 566 | "zvariant", 567 | ] 568 | 569 | [[package]] 570 | name = "thiserror" 571 | version = "1.0.30" 572 | source = "registry+https://github.com/rust-lang/crates.io-index" 573 | checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" 574 | dependencies = [ 575 | "thiserror-impl", 576 | ] 577 | 578 | [[package]] 579 | name = "thiserror-impl" 580 | version = "1.0.30" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" 583 | dependencies = [ 584 | "proc-macro2", 585 | "quote", 586 | "syn", 587 | ] 588 | 589 | [[package]] 590 | name = "toml" 591 | version = "0.5.8" 592 | source = "registry+https://github.com/rust-lang/crates.io-index" 593 | checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" 594 | dependencies = [ 595 | "serde", 596 | ] 597 | 598 | [[package]] 599 | name = "unicode-xid" 600 | version = "0.2.2" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" 603 | 604 | [[package]] 605 | name = "waker-fn" 606 | version = "1.1.0" 607 | source = "registry+https://github.com/rust-lang/crates.io-index" 608 | checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" 609 | 610 | [[package]] 611 | name = "wasi" 612 | version = "0.10.2+wasi-snapshot-preview1" 613 | source = "registry+https://github.com/rust-lang/crates.io-index" 614 | checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" 615 | 616 | [[package]] 617 | name = "wepoll-ffi" 618 | version = "0.1.2" 619 | source = "registry+https://github.com/rust-lang/crates.io-index" 620 | checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" 621 | dependencies = [ 622 | "cc", 623 | ] 624 | 625 | [[package]] 626 | name = "winapi" 627 | version = "0.3.9" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 630 | dependencies = [ 631 | "winapi-i686-pc-windows-gnu", 632 | "winapi-x86_64-pc-windows-gnu", 633 | ] 634 | 635 | [[package]] 636 | name = "winapi-i686-pc-windows-gnu" 637 | version = "0.4.0" 638 | source = "registry+https://github.com/rust-lang/crates.io-index" 639 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 640 | 641 | [[package]] 642 | name = "winapi-x86_64-pc-windows-gnu" 643 | version = "0.4.0" 644 | source = "registry+https://github.com/rust-lang/crates.io-index" 645 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 646 | 647 | [[package]] 648 | name = "zbus" 649 | version = "2.0.1" 650 | source = "registry+https://github.com/rust-lang/crates.io-index" 651 | checksum = "2ac8424f5aa1f239d2d7ecb32f9d5ffc6fcf5fb9298d2d524a7e7c8b258c3f80" 652 | dependencies = [ 653 | "async-broadcast", 654 | "async-channel", 655 | "async-executor", 656 | "async-io", 657 | "async-lock", 658 | "async-recursion", 659 | "async-task", 660 | "async-trait", 661 | "byteorder", 662 | "derivative", 663 | "enumflags2", 664 | "event-listener", 665 | "futures-core", 666 | "futures-sink", 667 | "futures-util", 668 | "hex", 669 | "nix", 670 | "once_cell", 671 | "ordered-stream", 672 | "rand", 673 | "serde", 674 | "serde_repr", 675 | "sha1", 676 | "static_assertions", 677 | "zbus_macros", 678 | "zbus_names", 679 | "zvariant", 680 | ] 681 | 682 | [[package]] 683 | name = "zbus_macros" 684 | version = "2.0.1" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | checksum = "3e03af45fc15e2c977161c5ffea56c43c41f425a963affd7074bf91b5bf5a8cf" 687 | dependencies = [ 688 | "proc-macro-crate", 689 | "proc-macro2", 690 | "quote", 691 | "regex", 692 | "syn", 693 | ] 694 | 695 | [[package]] 696 | name = "zbus_names" 697 | version = "2.0.0" 698 | source = "registry+https://github.com/rust-lang/crates.io-index" 699 | checksum = "ae1f142d242d6854815a8c5c2aea83d9508f72f5757d0a137c21ef4b07bfee66" 700 | dependencies = [ 701 | "serde", 702 | "static_assertions", 703 | "zvariant", 704 | ] 705 | 706 | [[package]] 707 | name = "zvariant" 708 | version = "3.0.0" 709 | source = "registry+https://github.com/rust-lang/crates.io-index" 710 | checksum = "4a946c049b2eac1a253f98e9267a8ce7a3d93be274ea146e6dd7a0965232a911" 711 | dependencies = [ 712 | "byteorder", 713 | "enumflags2", 714 | "libc", 715 | "serde", 716 | "static_assertions", 717 | "zvariant_derive", 718 | ] 719 | 720 | [[package]] 721 | name = "zvariant_derive" 722 | version = "3.0.0" 723 | source = "registry+https://github.com/rust-lang/crates.io-index" 724 | checksum = "28fce5afb8d639bff79b1e8cdb258a3ca22d458f4603b23d794b4cb4e878c990" 725 | dependencies = [ 726 | "proc-macro-crate", 727 | "proc-macro2", 728 | "quote", 729 | "syn", 730 | ] 731 | -------------------------------------------------------------------------------- /webextension/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@eslint/eslintrc@^1.0.5": 6 | version "1.0.5" 7 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" 8 | integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== 9 | dependencies: 10 | ajv "^6.12.4" 11 | debug "^4.3.2" 12 | espree "^9.2.0" 13 | globals "^13.9.0" 14 | ignore "^4.0.6" 15 | import-fresh "^3.2.1" 16 | js-yaml "^4.1.0" 17 | minimatch "^3.0.4" 18 | strip-json-comments "^3.1.1" 19 | 20 | "@humanwhocodes/config-array@^0.9.2": 21 | version "0.9.2" 22 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" 23 | integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== 24 | dependencies: 25 | "@humanwhocodes/object-schema" "^1.2.1" 26 | debug "^4.1.1" 27 | minimatch "^3.0.4" 28 | 29 | "@humanwhocodes/object-schema@^1.2.1": 30 | version "1.2.1" 31 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 32 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 33 | 34 | "@nodelib/fs.scandir@2.1.5": 35 | version "2.1.5" 36 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 37 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 38 | dependencies: 39 | "@nodelib/fs.stat" "2.0.5" 40 | run-parallel "^1.1.9" 41 | 42 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 43 | version "2.0.5" 44 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 45 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 46 | 47 | "@nodelib/fs.walk@^1.2.3": 48 | version "1.2.8" 49 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 50 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 51 | dependencies: 52 | "@nodelib/fs.scandir" "2.1.5" 53 | fastq "^1.6.0" 54 | 55 | "@rollup/plugin-typescript@^8.3.0": 56 | version "8.3.0" 57 | resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.3.0.tgz#bc1077fa5897b980fc27e376c4e377882c63e68b" 58 | integrity sha512-I5FpSvLbtAdwJ+naznv+B4sjXZUcIvLLceYpITAn7wAP8W0wqc5noLdGIp9HGVntNhRWXctwPYrSSFQxtl0FPA== 59 | dependencies: 60 | "@rollup/pluginutils" "^3.1.0" 61 | resolve "^1.17.0" 62 | 63 | "@rollup/pluginutils@^3.1.0": 64 | version "3.1.0" 65 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" 66 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 67 | dependencies: 68 | "@types/estree" "0.0.39" 69 | estree-walker "^1.0.1" 70 | picomatch "^2.2.2" 71 | 72 | "@types/chrome@^0.0.176": 73 | version "0.0.176" 74 | resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.176.tgz#617fcbe41ea1d9c5d50c9e7fb8ebfe2d9aef853a" 75 | integrity sha512-LOveFOMIUhMJjvRzZv5whGBpncP/gdJ4hcxeAqg94wGi6CyKaCmLgFSofgItf85GuLTl/0BQ6J/Y1e8BqZWfEg== 76 | dependencies: 77 | "@types/filesystem" "*" 78 | "@types/har-format" "*" 79 | 80 | "@types/estree@0.0.39": 81 | version "0.0.39" 82 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 83 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 84 | 85 | "@types/filesystem@*": 86 | version "0.0.32" 87 | resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.32.tgz#307df7cc084a2293c3c1a31151b178063e0a8edf" 88 | integrity sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ== 89 | dependencies: 90 | "@types/filewriter" "*" 91 | 92 | "@types/filewriter@*": 93 | version "0.0.29" 94 | resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.29.tgz#a48795ecadf957f6c0d10e0c34af86c098fa5bee" 95 | integrity sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ== 96 | 97 | "@types/fs-extra@^8.0.1": 98 | version "8.1.2" 99 | resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.2.tgz#7125cc2e4bdd9bd2fc83005ffdb1d0ba00cca61f" 100 | integrity sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg== 101 | dependencies: 102 | "@types/node" "*" 103 | 104 | "@types/glob@^7.1.1": 105 | version "7.2.0" 106 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" 107 | integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== 108 | dependencies: 109 | "@types/minimatch" "*" 110 | "@types/node" "*" 111 | 112 | "@types/har-format@*": 113 | version "1.2.8" 114 | resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.8.tgz#e6908b76d4c88be3db642846bb8b455f0bfb1c4e" 115 | integrity sha512-OP6L9VuZNdskgNN3zFQQ54ceYD8OLq5IbqO4VK91ORLfOm7WdT/CiT/pHEBSQEqCInJ2y3O6iCm/zGtPElpgJQ== 116 | 117 | "@types/json-schema@^7.0.9": 118 | version "7.0.9" 119 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" 120 | integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== 121 | 122 | "@types/minimatch@*": 123 | version "3.0.5" 124 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" 125 | integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== 126 | 127 | "@types/node@*": 128 | version "17.0.0" 129 | resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.0.tgz#62797cee3b8b497f6547503b2312254d4fe3c2bb" 130 | integrity sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw== 131 | 132 | "@typescript-eslint/eslint-plugin@^5.10.0": 133 | version "5.10.0" 134 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.0.tgz#e90afea96dff8620892ad216b0e4ccdf8ee32d3a" 135 | integrity sha512-XXVKnMsq2fuu9K2KsIxPUGqb6xAImz8MEChClbXmE3VbveFtBUU5bzM6IPVWqzyADIgdkS2Ws/6Xo7W2TeZWjQ== 136 | dependencies: 137 | "@typescript-eslint/scope-manager" "5.10.0" 138 | "@typescript-eslint/type-utils" "5.10.0" 139 | "@typescript-eslint/utils" "5.10.0" 140 | debug "^4.3.2" 141 | functional-red-black-tree "^1.0.1" 142 | ignore "^5.1.8" 143 | regexpp "^3.2.0" 144 | semver "^7.3.5" 145 | tsutils "^3.21.0" 146 | 147 | "@typescript-eslint/parser@^5.10.0": 148 | version "5.10.0" 149 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.10.0.tgz#8f59e036f5f1cffc178cacbd5ccdd02aeb96c91c" 150 | integrity sha512-pJB2CCeHWtwOAeIxv8CHVGJhI5FNyJAIpx5Pt72YkK3QfEzt6qAlXZuyaBmyfOdM62qU0rbxJzNToPTVeJGrQw== 151 | dependencies: 152 | "@typescript-eslint/scope-manager" "5.10.0" 153 | "@typescript-eslint/types" "5.10.0" 154 | "@typescript-eslint/typescript-estree" "5.10.0" 155 | debug "^4.3.2" 156 | 157 | "@typescript-eslint/scope-manager@5.10.0": 158 | version "5.10.0" 159 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.10.0.tgz#bb5d872e8b9e36203908595507fbc4d3105329cb" 160 | integrity sha512-tgNgUgb4MhqK6DoKn3RBhyZ9aJga7EQrw+2/OiDk5hKf3pTVZWyqBi7ukP+Z0iEEDMF5FDa64LqODzlfE4O/Dg== 161 | dependencies: 162 | "@typescript-eslint/types" "5.10.0" 163 | "@typescript-eslint/visitor-keys" "5.10.0" 164 | 165 | "@typescript-eslint/type-utils@5.10.0": 166 | version "5.10.0" 167 | resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.10.0.tgz#8524b9479c19c478347a7df216827e749e4a51e5" 168 | integrity sha512-TzlyTmufJO5V886N+hTJBGIfnjQDQ32rJYxPaeiyWKdjsv2Ld5l8cbS7pxim4DeNs62fKzRSt8Q14Evs4JnZyQ== 169 | dependencies: 170 | "@typescript-eslint/utils" "5.10.0" 171 | debug "^4.3.2" 172 | tsutils "^3.21.0" 173 | 174 | "@typescript-eslint/types@5.10.0": 175 | version "5.10.0" 176 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.0.tgz#beb3cb345076f5b088afe996d57bcd1dfddaa75c" 177 | integrity sha512-wUljCgkqHsMZbw60IbOqT/puLfyqqD5PquGiBo1u1IS3PLxdi3RDGlyf032IJyh+eQoGhz9kzhtZa+VC4eWTlQ== 178 | 179 | "@typescript-eslint/typescript-estree@5.10.0": 180 | version "5.10.0" 181 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.0.tgz#4be24a3dea0f930bb1397c46187d0efdd955a224" 182 | integrity sha512-x+7e5IqfwLwsxTdliHRtlIYkgdtYXzE0CkFeV6ytAqq431ZyxCFzNMNR5sr3WOlIG/ihVZr9K/y71VHTF/DUQA== 183 | dependencies: 184 | "@typescript-eslint/types" "5.10.0" 185 | "@typescript-eslint/visitor-keys" "5.10.0" 186 | debug "^4.3.2" 187 | globby "^11.0.4" 188 | is-glob "^4.0.3" 189 | semver "^7.3.5" 190 | tsutils "^3.21.0" 191 | 192 | "@typescript-eslint/utils@5.10.0": 193 | version "5.10.0" 194 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.10.0.tgz#c3d152a85da77c400e37281355561c72fb1b5a65" 195 | integrity sha512-IGYwlt1CVcFoE2ueW4/ioEwybR60RAdGeiJX/iDAw0t5w0wK3S7QncDwpmsM70nKgGTuVchEWB8lwZwHqPAWRg== 196 | dependencies: 197 | "@types/json-schema" "^7.0.9" 198 | "@typescript-eslint/scope-manager" "5.10.0" 199 | "@typescript-eslint/types" "5.10.0" 200 | "@typescript-eslint/typescript-estree" "5.10.0" 201 | eslint-scope "^5.1.1" 202 | eslint-utils "^3.0.0" 203 | 204 | "@typescript-eslint/visitor-keys@5.10.0": 205 | version "5.10.0" 206 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.0.tgz#770215497ad67cd15a572b52089991d5dfe06281" 207 | integrity sha512-GMxj0K1uyrFLPKASLmZzCuSddmjZVbVj3Ouy5QVuIGKZopxvOr24JsS7gruz6C3GExE01mublZ3mIBOaon9zuQ== 208 | dependencies: 209 | "@typescript-eslint/types" "5.10.0" 210 | eslint-visitor-keys "^3.0.0" 211 | 212 | acorn-jsx@^5.3.1: 213 | version "5.3.2" 214 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 215 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 216 | 217 | acorn@^8.7.0: 218 | version "8.7.0" 219 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" 220 | integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== 221 | 222 | ajv@^6.10.0, ajv@^6.12.4: 223 | version "6.12.6" 224 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 225 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 226 | dependencies: 227 | fast-deep-equal "^3.1.1" 228 | fast-json-stable-stringify "^2.0.0" 229 | json-schema-traverse "^0.4.1" 230 | uri-js "^4.2.2" 231 | 232 | ansi-regex@^5.0.1: 233 | version "5.0.1" 234 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 235 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 236 | 237 | ansi-styles@^4.1.0: 238 | version "4.3.0" 239 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 240 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 241 | dependencies: 242 | color-convert "^2.0.1" 243 | 244 | argparse@^2.0.1: 245 | version "2.0.1" 246 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 247 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 248 | 249 | array-union@^2.1.0: 250 | version "2.1.0" 251 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 252 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 253 | 254 | balanced-match@^1.0.0: 255 | version "1.0.2" 256 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 257 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 258 | 259 | brace-expansion@^1.1.7: 260 | version "1.1.11" 261 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 262 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 263 | dependencies: 264 | balanced-match "^1.0.0" 265 | concat-map "0.0.1" 266 | 267 | braces@^3.0.1: 268 | version "3.0.2" 269 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 270 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 271 | dependencies: 272 | fill-range "^7.0.1" 273 | 274 | callsites@^3.0.0: 275 | version "3.1.0" 276 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 277 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 278 | 279 | chalk@^4.0.0: 280 | version "4.1.2" 281 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 282 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 283 | dependencies: 284 | ansi-styles "^4.1.0" 285 | supports-color "^7.1.0" 286 | 287 | color-convert@^2.0.1: 288 | version "2.0.1" 289 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 290 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 291 | dependencies: 292 | color-name "~1.1.4" 293 | 294 | color-name@~1.1.4: 295 | version "1.1.4" 296 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 297 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 298 | 299 | colorette@^1.1.0: 300 | version "1.4.0" 301 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" 302 | integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== 303 | 304 | concat-map@0.0.1: 305 | version "0.0.1" 306 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 307 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 308 | 309 | cross-spawn@^7.0.2: 310 | version "7.0.3" 311 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 312 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 313 | dependencies: 314 | path-key "^3.1.0" 315 | shebang-command "^2.0.0" 316 | which "^2.0.1" 317 | 318 | debug@^4.1.1, debug@^4.3.2: 319 | version "4.3.3" 320 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" 321 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== 322 | dependencies: 323 | ms "2.1.2" 324 | 325 | deep-is@^0.1.3: 326 | version "0.1.4" 327 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 328 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 329 | 330 | dir-glob@^3.0.1: 331 | version "3.0.1" 332 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 333 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 334 | dependencies: 335 | path-type "^4.0.0" 336 | 337 | doctrine@^3.0.0: 338 | version "3.0.0" 339 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 340 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 341 | dependencies: 342 | esutils "^2.0.2" 343 | 344 | escape-string-regexp@^4.0.0: 345 | version "4.0.0" 346 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 347 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 348 | 349 | eslint-scope@^5.1.1: 350 | version "5.1.1" 351 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 352 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 353 | dependencies: 354 | esrecurse "^4.3.0" 355 | estraverse "^4.1.1" 356 | 357 | eslint-scope@^7.1.0: 358 | version "7.1.0" 359 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" 360 | integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== 361 | dependencies: 362 | esrecurse "^4.3.0" 363 | estraverse "^5.2.0" 364 | 365 | eslint-utils@^3.0.0: 366 | version "3.0.0" 367 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" 368 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== 369 | dependencies: 370 | eslint-visitor-keys "^2.0.0" 371 | 372 | eslint-visitor-keys@^2.0.0: 373 | version "2.1.0" 374 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" 375 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 376 | 377 | eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.2.0: 378 | version "3.2.0" 379 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1" 380 | integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ== 381 | 382 | eslint@^8.7.0: 383 | version "8.7.0" 384 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.7.0.tgz#22e036842ee5b7cf87b03fe237731675b4d3633c" 385 | integrity sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w== 386 | dependencies: 387 | "@eslint/eslintrc" "^1.0.5" 388 | "@humanwhocodes/config-array" "^0.9.2" 389 | ajv "^6.10.0" 390 | chalk "^4.0.0" 391 | cross-spawn "^7.0.2" 392 | debug "^4.3.2" 393 | doctrine "^3.0.0" 394 | escape-string-regexp "^4.0.0" 395 | eslint-scope "^7.1.0" 396 | eslint-utils "^3.0.0" 397 | eslint-visitor-keys "^3.2.0" 398 | espree "^9.3.0" 399 | esquery "^1.4.0" 400 | esutils "^2.0.2" 401 | fast-deep-equal "^3.1.3" 402 | file-entry-cache "^6.0.1" 403 | functional-red-black-tree "^1.0.1" 404 | glob-parent "^6.0.1" 405 | globals "^13.6.0" 406 | ignore "^5.2.0" 407 | import-fresh "^3.0.0" 408 | imurmurhash "^0.1.4" 409 | is-glob "^4.0.0" 410 | js-yaml "^4.1.0" 411 | json-stable-stringify-without-jsonify "^1.0.1" 412 | levn "^0.4.1" 413 | lodash.merge "^4.6.2" 414 | minimatch "^3.0.4" 415 | natural-compare "^1.4.0" 416 | optionator "^0.9.1" 417 | regexpp "^3.2.0" 418 | strip-ansi "^6.0.1" 419 | strip-json-comments "^3.1.0" 420 | text-table "^0.2.0" 421 | v8-compile-cache "^2.0.3" 422 | 423 | espree@^9.2.0, espree@^9.3.0: 424 | version "9.3.0" 425 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8" 426 | integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ== 427 | dependencies: 428 | acorn "^8.7.0" 429 | acorn-jsx "^5.3.1" 430 | eslint-visitor-keys "^3.1.0" 431 | 432 | esquery@^1.4.0: 433 | version "1.4.0" 434 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 435 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 436 | dependencies: 437 | estraverse "^5.1.0" 438 | 439 | esrecurse@^4.3.0: 440 | version "4.3.0" 441 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 442 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 443 | dependencies: 444 | estraverse "^5.2.0" 445 | 446 | estraverse@^4.1.1: 447 | version "4.3.0" 448 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 449 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 450 | 451 | estraverse@^5.1.0, estraverse@^5.2.0: 452 | version "5.3.0" 453 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 454 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 455 | 456 | estree-walker@^1.0.1: 457 | version "1.0.1" 458 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" 459 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 460 | 461 | esutils@^2.0.2: 462 | version "2.0.3" 463 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 464 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 465 | 466 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 467 | version "3.1.3" 468 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 469 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 470 | 471 | fast-glob@^3.0.3: 472 | version "3.2.7" 473 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" 474 | integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== 475 | dependencies: 476 | "@nodelib/fs.stat" "^2.0.2" 477 | "@nodelib/fs.walk" "^1.2.3" 478 | glob-parent "^5.1.2" 479 | merge2 "^1.3.0" 480 | micromatch "^4.0.4" 481 | 482 | fast-glob@^3.2.9: 483 | version "3.2.11" 484 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" 485 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== 486 | dependencies: 487 | "@nodelib/fs.stat" "^2.0.2" 488 | "@nodelib/fs.walk" "^1.2.3" 489 | glob-parent "^5.1.2" 490 | merge2 "^1.3.0" 491 | micromatch "^4.0.4" 492 | 493 | fast-json-stable-stringify@^2.0.0: 494 | version "2.1.0" 495 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 496 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 497 | 498 | fast-levenshtein@^2.0.6: 499 | version "2.0.6" 500 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 501 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 502 | 503 | fastq@^1.6.0: 504 | version "1.13.0" 505 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 506 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 507 | dependencies: 508 | reusify "^1.0.4" 509 | 510 | file-entry-cache@^6.0.1: 511 | version "6.0.1" 512 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 513 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 514 | dependencies: 515 | flat-cache "^3.0.4" 516 | 517 | fill-range@^7.0.1: 518 | version "7.0.1" 519 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 520 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 521 | dependencies: 522 | to-regex-range "^5.0.1" 523 | 524 | flat-cache@^3.0.4: 525 | version "3.0.4" 526 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 527 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 528 | dependencies: 529 | flatted "^3.1.0" 530 | rimraf "^3.0.2" 531 | 532 | flatted@^3.1.0: 533 | version "3.2.4" 534 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" 535 | integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== 536 | 537 | fs-extra@^8.1.0: 538 | version "8.1.0" 539 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" 540 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== 541 | dependencies: 542 | graceful-fs "^4.2.0" 543 | jsonfile "^4.0.0" 544 | universalify "^0.1.0" 545 | 546 | fs.realpath@^1.0.0: 547 | version "1.0.0" 548 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 549 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 550 | 551 | fsevents@~2.3.2: 552 | version "2.3.2" 553 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 554 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 555 | 556 | function-bind@^1.1.1: 557 | version "1.1.1" 558 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 559 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 560 | 561 | functional-red-black-tree@^1.0.1: 562 | version "1.0.1" 563 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 564 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 565 | 566 | glob-parent@^5.1.2: 567 | version "5.1.2" 568 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 569 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 570 | dependencies: 571 | is-glob "^4.0.1" 572 | 573 | glob-parent@^6.0.1: 574 | version "6.0.2" 575 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 576 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 577 | dependencies: 578 | is-glob "^4.0.3" 579 | 580 | glob@^7.1.3: 581 | version "7.2.0" 582 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 583 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 584 | dependencies: 585 | fs.realpath "^1.0.0" 586 | inflight "^1.0.4" 587 | inherits "2" 588 | minimatch "^3.0.4" 589 | once "^1.3.0" 590 | path-is-absolute "^1.0.0" 591 | 592 | globals@^13.6.0, globals@^13.9.0: 593 | version "13.12.0" 594 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" 595 | integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== 596 | dependencies: 597 | type-fest "^0.20.2" 598 | 599 | globby@10.0.1: 600 | version "10.0.1" 601 | resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22" 602 | integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A== 603 | dependencies: 604 | "@types/glob" "^7.1.1" 605 | array-union "^2.1.0" 606 | dir-glob "^3.0.1" 607 | fast-glob "^3.0.3" 608 | glob "^7.1.3" 609 | ignore "^5.1.1" 610 | merge2 "^1.2.3" 611 | slash "^3.0.0" 612 | 613 | globby@^11.0.4: 614 | version "11.1.0" 615 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" 616 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 617 | dependencies: 618 | array-union "^2.1.0" 619 | dir-glob "^3.0.1" 620 | fast-glob "^3.2.9" 621 | ignore "^5.2.0" 622 | merge2 "^1.4.1" 623 | slash "^3.0.0" 624 | 625 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 626 | version "4.2.8" 627 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" 628 | integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== 629 | 630 | has-flag@^4.0.0: 631 | version "4.0.0" 632 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 633 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 634 | 635 | has@^1.0.3: 636 | version "1.0.3" 637 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 638 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 639 | dependencies: 640 | function-bind "^1.1.1" 641 | 642 | ignore@^4.0.6: 643 | version "4.0.6" 644 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 645 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 646 | 647 | ignore@^5.1.1, ignore@^5.1.8, ignore@^5.2.0: 648 | version "5.2.0" 649 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" 650 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== 651 | 652 | import-fresh@^3.0.0, import-fresh@^3.2.1: 653 | version "3.3.0" 654 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 655 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 656 | dependencies: 657 | parent-module "^1.0.0" 658 | resolve-from "^4.0.0" 659 | 660 | imurmurhash@^0.1.4: 661 | version "0.1.4" 662 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 663 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 664 | 665 | inflight@^1.0.4: 666 | version "1.0.6" 667 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 668 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 669 | dependencies: 670 | once "^1.3.0" 671 | wrappy "1" 672 | 673 | inherits@2: 674 | version "2.0.4" 675 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 676 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 677 | 678 | is-core-module@^2.2.0: 679 | version "2.8.0" 680 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" 681 | integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== 682 | dependencies: 683 | has "^1.0.3" 684 | 685 | is-extglob@^2.1.1: 686 | version "2.1.1" 687 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 688 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 689 | 690 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: 691 | version "4.0.3" 692 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 693 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 694 | dependencies: 695 | is-extglob "^2.1.1" 696 | 697 | is-number@^7.0.0: 698 | version "7.0.0" 699 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 700 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 701 | 702 | is-plain-object@^3.0.0: 703 | version "3.0.1" 704 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" 705 | integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== 706 | 707 | isexe@^2.0.0: 708 | version "2.0.0" 709 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 710 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 711 | 712 | js-yaml@^4.1.0: 713 | version "4.1.0" 714 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 715 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 716 | dependencies: 717 | argparse "^2.0.1" 718 | 719 | json-schema-traverse@^0.4.1: 720 | version "0.4.1" 721 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 722 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 723 | 724 | json-stable-stringify-without-jsonify@^1.0.1: 725 | version "1.0.1" 726 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 727 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 728 | 729 | jsonfile@^4.0.0: 730 | version "4.0.0" 731 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 732 | integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= 733 | optionalDependencies: 734 | graceful-fs "^4.1.6" 735 | 736 | levn@^0.4.1: 737 | version "0.4.1" 738 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 739 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 740 | dependencies: 741 | prelude-ls "^1.2.1" 742 | type-check "~0.4.0" 743 | 744 | lodash.merge@^4.6.2: 745 | version "4.6.2" 746 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 747 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 748 | 749 | lru-cache@^6.0.0: 750 | version "6.0.0" 751 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 752 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 753 | dependencies: 754 | yallist "^4.0.0" 755 | 756 | merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: 757 | version "1.4.1" 758 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 759 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 760 | 761 | micromatch@^4.0.4: 762 | version "4.0.4" 763 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 764 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== 765 | dependencies: 766 | braces "^3.0.1" 767 | picomatch "^2.2.3" 768 | 769 | minimatch@^3.0.4: 770 | version "3.0.4" 771 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 772 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 773 | dependencies: 774 | brace-expansion "^1.1.7" 775 | 776 | ms@2.1.2: 777 | version "2.1.2" 778 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 779 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 780 | 781 | natural-compare@^1.4.0: 782 | version "1.4.0" 783 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 784 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 785 | 786 | once@^1.3.0: 787 | version "1.4.0" 788 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 789 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 790 | dependencies: 791 | wrappy "1" 792 | 793 | optionator@^0.9.1: 794 | version "0.9.1" 795 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 796 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 797 | dependencies: 798 | deep-is "^0.1.3" 799 | fast-levenshtein "^2.0.6" 800 | levn "^0.4.1" 801 | prelude-ls "^1.2.1" 802 | type-check "^0.4.0" 803 | word-wrap "^1.2.3" 804 | 805 | parent-module@^1.0.0: 806 | version "1.0.1" 807 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 808 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 809 | dependencies: 810 | callsites "^3.0.0" 811 | 812 | path-is-absolute@^1.0.0: 813 | version "1.0.1" 814 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 815 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 816 | 817 | path-key@^3.1.0: 818 | version "3.1.1" 819 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 820 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 821 | 822 | path-parse@^1.0.6: 823 | version "1.0.7" 824 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 825 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 826 | 827 | path-type@^4.0.0: 828 | version "4.0.0" 829 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 830 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 831 | 832 | picomatch@^2.2.2, picomatch@^2.2.3: 833 | version "2.3.0" 834 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 835 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 836 | 837 | prelude-ls@^1.2.1: 838 | version "1.2.1" 839 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 840 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 841 | 842 | punycode@^2.1.0: 843 | version "2.1.1" 844 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 845 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 846 | 847 | queue-microtask@^1.2.2: 848 | version "1.2.3" 849 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 850 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 851 | 852 | regexpp@^3.2.0: 853 | version "3.2.0" 854 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" 855 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== 856 | 857 | resolve-from@^4.0.0: 858 | version "4.0.0" 859 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 860 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 861 | 862 | resolve@^1.17.0: 863 | version "1.20.0" 864 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 865 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 866 | dependencies: 867 | is-core-module "^2.2.0" 868 | path-parse "^1.0.6" 869 | 870 | reusify@^1.0.4: 871 | version "1.0.4" 872 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 873 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 874 | 875 | rimraf@^3.0.2: 876 | version "3.0.2" 877 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 878 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 879 | dependencies: 880 | glob "^7.1.3" 881 | 882 | rollup-plugin-copy@^3.4.0: 883 | version "3.4.0" 884 | resolved "https://registry.yarnpkg.com/rollup-plugin-copy/-/rollup-plugin-copy-3.4.0.tgz#f1228a3ffb66ffad8606e2f3fb7ff23141ed3286" 885 | integrity sha512-rGUmYYsYsceRJRqLVlE9FivJMxJ7X6jDlP79fmFkL8sJs7VVMSVyA2yfyL+PGyO/vJs4A87hwhgVfz61njI+uQ== 886 | dependencies: 887 | "@types/fs-extra" "^8.0.1" 888 | colorette "^1.1.0" 889 | fs-extra "^8.1.0" 890 | globby "10.0.1" 891 | is-plain-object "^3.0.0" 892 | 893 | rollup@^2.66.0: 894 | version "2.66.0" 895 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.66.0.tgz#ee529ea15a20485d579039637fec3050bad03bbb" 896 | integrity sha512-L6mKOkdyP8HK5kKJXaiWG7KZDumPJjuo1P+cfyHOJPNNTK3Moe7zCH5+fy7v8pVmHXtlxorzaBjvkBMB23s98g== 897 | optionalDependencies: 898 | fsevents "~2.3.2" 899 | 900 | run-parallel@^1.1.9: 901 | version "1.2.0" 902 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 903 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 904 | dependencies: 905 | queue-microtask "^1.2.2" 906 | 907 | semver@^7.3.5: 908 | version "7.3.5" 909 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 910 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 911 | dependencies: 912 | lru-cache "^6.0.0" 913 | 914 | shebang-command@^2.0.0: 915 | version "2.0.0" 916 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 917 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 918 | dependencies: 919 | shebang-regex "^3.0.0" 920 | 921 | shebang-regex@^3.0.0: 922 | version "3.0.0" 923 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 924 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 925 | 926 | slash@^3.0.0: 927 | version "3.0.0" 928 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 929 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 930 | 931 | strip-ansi@^6.0.1: 932 | version "6.0.1" 933 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 934 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 935 | dependencies: 936 | ansi-regex "^5.0.1" 937 | 938 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 939 | version "3.1.1" 940 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 941 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 942 | 943 | supports-color@^7.1.0: 944 | version "7.2.0" 945 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 946 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 947 | dependencies: 948 | has-flag "^4.0.0" 949 | 950 | text-table@^0.2.0: 951 | version "0.2.0" 952 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 953 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 954 | 955 | to-regex-range@^5.0.1: 956 | version "5.0.1" 957 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 958 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 959 | dependencies: 960 | is-number "^7.0.0" 961 | 962 | tslib@^1.8.1: 963 | version "1.14.1" 964 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 965 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 966 | 967 | tslib@^2.3.1: 968 | version "2.3.1" 969 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 970 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 971 | 972 | tsutils@^3.21.0: 973 | version "3.21.0" 974 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" 975 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== 976 | dependencies: 977 | tslib "^1.8.1" 978 | 979 | type-check@^0.4.0, type-check@~0.4.0: 980 | version "0.4.0" 981 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 982 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 983 | dependencies: 984 | prelude-ls "^1.2.1" 985 | 986 | type-fest@^0.20.2: 987 | version "0.20.2" 988 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 989 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 990 | 991 | typescript@^4.5.4: 992 | version "4.5.4" 993 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" 994 | integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== 995 | 996 | universalify@^0.1.0: 997 | version "0.1.2" 998 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 999 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 1000 | 1001 | uri-js@^4.2.2: 1002 | version "4.4.1" 1003 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1004 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1005 | dependencies: 1006 | punycode "^2.1.0" 1007 | 1008 | v8-compile-cache@^2.0.3: 1009 | version "2.3.0" 1010 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 1011 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 1012 | 1013 | which@^2.0.1: 1014 | version "2.0.2" 1015 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1016 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1017 | dependencies: 1018 | isexe "^2.0.0" 1019 | 1020 | word-wrap@^1.2.3: 1021 | version "1.2.3" 1022 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1023 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 1024 | 1025 | wrappy@1: 1026 | version "1.0.2" 1027 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1028 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1029 | 1030 | yallist@^4.0.0: 1031 | version "4.0.0" 1032 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1033 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1034 | -------------------------------------------------------------------------------- /shellextension/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@eslint/eslintrc@^1.0.5": 6 | version "1.0.5" 7 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" 8 | integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== 9 | dependencies: 10 | ajv "^6.12.4" 11 | debug "^4.3.2" 12 | espree "^9.2.0" 13 | globals "^13.9.0" 14 | ignore "^4.0.6" 15 | import-fresh "^3.2.1" 16 | js-yaml "^4.1.0" 17 | minimatch "^3.0.4" 18 | strip-json-comments "^3.1.1" 19 | 20 | "@gi-types/accountsservice1@^1.0.0": 21 | version "1.0.0" 22 | resolved "https://registry.yarnpkg.com/@gi-types/accountsservice1/-/accountsservice1-1.0.0.tgz#3249bf6a557841c93b92a2fce3978ae23f3e36f5" 23 | integrity sha512-EbtQcheg/Xj5y4k4/HoYr6y2VX80zf93SO4lEN0f6lrdUWKwndEZ5h24bgsDlv2+PoVlrgD6U9OLuRnniKWfFw== 24 | dependencies: 25 | "@gi-types/gio2" "^2.68.0" 26 | "@gi-types/glib2" "^2.68.0" 27 | "@gi-types/gobject2" "^2.68.0" 28 | 29 | "@gi-types/atk1@*", "@gi-types/atk1@^2.36.0": 30 | version "2.36.0" 31 | resolved "https://registry.yarnpkg.com/@gi-types/atk1/-/atk1-2.36.0.tgz#24bbd25e11a8c7465349af040350f86af46c3ecb" 32 | integrity sha512-lCuoaJwqFDV+V+sf4mOcciLCJitiUsGNg/W2Q5Y+21FycPZqlsjgXb0pimo7gLdq11d1lEfHffh3AkY80+7SHw== 33 | dependencies: 34 | "@gi-types/glib2" "^2.68.0" 35 | "@gi-types/gobject2" "^2.68.0" 36 | 37 | "@gi-types/atspi2@*": 38 | version "2.0.0" 39 | resolved "https://registry.yarnpkg.com/@gi-types/atspi2/-/atspi2-2.0.0.tgz#694ee30789fb5f522fb61bd410cf50120636219c" 40 | integrity sha512-B6E6YUEi74ylX2XVRVOhK2jwZhXijcmd2UUp9XdOXg3Ja8Z9+NleOVugShsK7v6B55E3Qzj+W8PyW2ucBnAKVA== 41 | dependencies: 42 | "@gi-types/dbus1" "^1.0.0" 43 | "@gi-types/glib2" "^2.68.0" 44 | "@gi-types/gobject2" "^2.68.0" 45 | 46 | "@gi-types/base-types@^1.0.0": 47 | version "1.0.0" 48 | resolved "https://registry.yarnpkg.com/@gi-types/base-types/-/base-types-1.0.0.tgz#0c584ebaa96ce34d835407e9bb50bd9e3953ad32" 49 | integrity sha512-A+TMfI4f+RgBx5uM5la4tqRrraP8N9B3SDFFPvYyH3h9VMcy03/Fp4X0LVtHuYdAUHmdRR8Z4Got9lwVd975+g== 50 | dependencies: 51 | "@gi-types/accountsservice1" "^1.0.0" 52 | "@gi-types/atk1" "*" 53 | "@gi-types/atspi2" "*" 54 | "@gi-types/cairo1" "*" 55 | "@gi-types/dbus1" "*" 56 | "@gi-types/gck1" "*" 57 | "@gi-types/gcr3" "*" 58 | "@gi-types/gdkpixbuf2" "*" 59 | "@gi-types/gdm1" "*" 60 | "@gi-types/geoclue2" "*" 61 | "@gi-types/gio2" "*" 62 | "@gi-types/girepository2" "^1.68.0" 63 | "@gi-types/glib2" "*" 64 | "@gi-types/gmodule2" "*" 65 | "@gi-types/gobject2" "*" 66 | "@gi-types/harfbuzz2" "*" 67 | "@gi-types/ibus1" "*" 68 | "@gi-types/json1" "*" 69 | "@gi-types/malcontent0" "*" 70 | "@gi-types/modemmanager1" "*" 71 | "@gi-types/nm1" "*" 72 | "@gi-types/notify0" "*" 73 | "@gi-types/pango1" "*" 74 | "@gi-types/polkit1" "*" 75 | "@gi-types/polkitagent1" "*" 76 | "@gi-types/rsvg2" "*" 77 | "@gi-types/soup2" "*" 78 | "@gi-types/telepathyglib0" "*" 79 | "@gi-types/telepathylogger0" "*" 80 | "@gi-types/upowerglib1" "*" 81 | "@gi-types/xlib2" "*" 82 | 83 | "@gi-types/cairo1@*", "@gi-types/cairo1@^1.0.0": 84 | version "1.0.0" 85 | resolved "https://registry.yarnpkg.com/@gi-types/cairo1/-/cairo1-1.0.0.tgz#50eca301ca38a88491a2659be8c344613c2fab8a" 86 | integrity sha512-EURdj33wnPbspWDOyHc2yNmzqnUaDJ+ix6paIooffuPyOKLer+M/+eBFcou6X3j8o6CZvH4D/dguoi3gNzsTQw== 87 | dependencies: 88 | "@gi-types/gobject2" "^2.68.0" 89 | 90 | "@gi-types/cally8@^8.0.0": 91 | version "8.0.0" 92 | resolved "https://registry.yarnpkg.com/@gi-types/cally8/-/cally8-8.0.0.tgz#a41182f31b79dfcca9a98dbe647da79a0d935865" 93 | integrity sha512-HRopQhj9JJtNdNepyVa+UfXgVj6MqJC/4Gl3AbVfPUJtoWegi6G7mUGL8LJO9897+tLaJkgtQ7+LKUwsgNOjaw== 94 | dependencies: 95 | "@gi-types/atk1" "^2.36.0" 96 | "@gi-types/clutter8" "^8.0.0" 97 | "@gi-types/gobject2" "^2.68.0" 98 | 99 | "@gi-types/clutter8@^8.0.0": 100 | version "8.0.0" 101 | resolved "https://registry.yarnpkg.com/@gi-types/clutter8/-/clutter8-8.0.0.tgz#6186cead54923197a495395e916e4f8fd874c01e" 102 | integrity sha512-hKTNjn1j5gxc/iNkiIPbsh0uE9COC6qPIpG7yzAsr7/khSil8hIJKYvBtNOu1BAnSe7D8gTCKjqgXBqyoFSHkw== 103 | dependencies: 104 | "@gi-types/atk1" "^2.36.0" 105 | "@gi-types/cairo1" "^1.0.0" 106 | "@gi-types/cogl8" "^8.0.0" 107 | "@gi-types/gio2" "^2.68.0" 108 | "@gi-types/glib2" "^2.68.0" 109 | "@gi-types/gobject2" "^2.68.0" 110 | "@gi-types/graphene1" "^1.0.0" 111 | "@gi-types/json1" "^1.6.0" 112 | "@gi-types/pango1" "^1.0.0" 113 | 114 | "@gi-types/cogl8@^8.0.0": 115 | version "8.0.0" 116 | resolved "https://registry.yarnpkg.com/@gi-types/cogl8/-/cogl8-8.0.0.tgz#3e667310f2063021dd82e84bcffe2bce9ae0e403" 117 | integrity sha512-MsKbP3DjRhbbY+jLCbjd7B8wycMwGkNbopStVkIW9EVkJouy2VdIShLFD44WW51GugdE4+JAeW3iQ2H9rtp5WQ== 118 | dependencies: 119 | "@gi-types/cairo1" "^1.0.0" 120 | "@gi-types/glib2" "^2.68.0" 121 | "@gi-types/gobject2" "^2.68.0" 122 | "@gi-types/graphene1" "^1.0.0" 123 | 124 | "@gi-types/dbus1@*", "@gi-types/dbus1@^1.0.0": 125 | version "1.0.0" 126 | resolved "https://registry.yarnpkg.com/@gi-types/dbus1/-/dbus1-1.0.0.tgz#2eb7424a74220e65804befd64c9c12d4fd23ea71" 127 | integrity sha512-MyT8RkHL6vySSpd5UWmDmojBZyC3W6zLtpJykABi0TV+pw+TVXQUghP7aYOiFGaXfiYzzRxBp8JoNq6PHHmw+A== 128 | dependencies: 129 | "@gi-types/gobject2" "^2.68.0" 130 | 131 | "@gi-types/gck1@*", "@gi-types/gck1@^1.0.0": 132 | version "1.0.0" 133 | resolved "https://registry.yarnpkg.com/@gi-types/gck1/-/gck1-1.0.0.tgz#8022f52224464266badf356413e8c6b9c99d7cd2" 134 | integrity sha512-MZOJt+9AFiMCAcvi4aIwLCJxqpUrVQTjnLfncK5+52q6Tap6Pw5nMj5RVg5ks6BGL9F2I4BO4689m/TqYlJ8QA== 135 | dependencies: 136 | "@gi-types/gio2" "^2.68.0" 137 | "@gi-types/glib2" "^2.68.0" 138 | "@gi-types/gobject2" "^2.68.0" 139 | 140 | "@gi-types/gcr3@*", "@gi-types/gcr3@^3.40.0": 141 | version "3.40.0" 142 | resolved "https://registry.yarnpkg.com/@gi-types/gcr3/-/gcr3-3.40.0.tgz#e50ba6e6c9449dca06ba04ca3e5da4e277ce2785" 143 | integrity sha512-bgEq++sDcq+8VHFcURCX983/8ifANy9T5LawOiXrN5VVgul7UtO9E+17D1ffiVgQvl2vk13yedN3oboouVG7lg== 144 | dependencies: 145 | "@gi-types/gck1" "^1.0.0" 146 | "@gi-types/gio2" "^2.68.0" 147 | "@gi-types/glib2" "^2.68.0" 148 | "@gi-types/gobject2" "^2.68.0" 149 | 150 | "@gi-types/gdesktopenums3@^3.0.0": 151 | version "3.0.0" 152 | resolved "https://registry.yarnpkg.com/@gi-types/gdesktopenums3/-/gdesktopenums3-3.0.0.tgz#ae7f9748734879adb2dbf95cb69b174ce5ceacc0" 153 | integrity sha512-++nr84oT0UU5SQTBGkAkJO+SKGOYkav2p87J3zKM3Ksr1Obrt6C1lMOgnCBv9LaxA8KQKQyH1a8diZV8eYssYQ== 154 | dependencies: 155 | "@gi-types/gobject2" "^2.68.0" 156 | 157 | "@gi-types/gdk3@^3.24.0": 158 | version "3.24.0" 159 | resolved "https://registry.yarnpkg.com/@gi-types/gdk3/-/gdk3-3.24.0.tgz#dac22e08482956c57d60a8ca8d93984a4e2cfe9b" 160 | integrity sha512-Cp15QJwepyn9xRtzZDDmyF89VpXdxePTa9GeSE5C1iPH9QFQXxHMs37RCCAjgq3pgGbc3v6AkjLsleYGv0LYwg== 161 | dependencies: 162 | "@gi-types/cairo1" "^1.0.0" 163 | "@gi-types/gdkpixbuf2" "^2.0.0" 164 | "@gi-types/gio2" "^2.68.0" 165 | "@gi-types/glib2" "^2.68.0" 166 | "@gi-types/gobject2" "^2.68.0" 167 | "@gi-types/pango1" "^1.0.0" 168 | 169 | "@gi-types/gdk4@^4.0.0": 170 | version "4.0.0" 171 | resolved "https://registry.yarnpkg.com/@gi-types/gdk4/-/gdk4-4.0.0.tgz#e39fd6ee35ab3f8e96711c7cccbe68da9fc31b4f" 172 | integrity sha512-rlBQByuGyszxPcjzUE945+8b+psrlAtnG25EaBZsthNG6ZPZ0AI2Gflezg/Lzfz3HVJadr/faZnGrQhk1JtxQw== 173 | dependencies: 174 | "@gi-types/cairo1" "^1.0.0" 175 | "@gi-types/gdkpixbuf2" "^2.0.0" 176 | "@gi-types/gio2" "^2.68.0" 177 | "@gi-types/glib2" "^2.68.0" 178 | "@gi-types/gobject2" "^2.68.0" 179 | "@gi-types/pango1" "^1.0.0" 180 | 181 | "@gi-types/gdkpixbuf2@*", "@gi-types/gdkpixbuf2@^2.0.0": 182 | version "2.0.0" 183 | resolved "https://registry.yarnpkg.com/@gi-types/gdkpixbuf2/-/gdkpixbuf2-2.0.0.tgz#90d0298d215220b272f7d4c53cbae9ca125efd59" 184 | integrity sha512-8oSX5p09U1JwoNvo8s+OPTsUn6n4K7lkKVa8LC12VxL1z9csI63zmQ4LVHmL54+PQDkVjZGM/zNnV0aHerO2Tw== 185 | dependencies: 186 | "@gi-types/gio2" "^2.68.0" 187 | "@gi-types/glib2" "^2.68.0" 188 | "@gi-types/gmodule2" "^2.0.0" 189 | "@gi-types/gobject2" "^2.68.0" 190 | 191 | "@gi-types/gdm1@*": 192 | version "1.0.0" 193 | resolved "https://registry.yarnpkg.com/@gi-types/gdm1/-/gdm1-1.0.0.tgz#145f18bbf430c448703d01c1019c1c451f4df741" 194 | integrity sha512-I3p/NPRFRgP2PFLkz64yGNlM5ZGH0ZtWWnivrhEL4Kx7YLfHpRULj1KW2x2W5xIsHMKLwgQmum1qb3dpbQk+Mw== 195 | dependencies: 196 | "@gi-types/gio2" "^2.68.0" 197 | "@gi-types/glib2" "^2.68.0" 198 | "@gi-types/gobject2" "^2.68.0" 199 | 200 | "@gi-types/geoclue2@*": 201 | version "2.0.0" 202 | resolved "https://registry.yarnpkg.com/@gi-types/geoclue2/-/geoclue2-2.0.0.tgz#168f595c43c851f39d4a65b41a3f209fa856202d" 203 | integrity sha512-fgtBPESIGkxmKFQ2TIWN2OTfJLj3PYgZUYDa/DPTL0GbLLOZuclLw+Bt+ON2gljf23Lr1CunZqz1f8IcwUzpLQ== 204 | dependencies: 205 | "@gi-types/gio2" "^2.68.0" 206 | "@gi-types/glib2" "^2.68.0" 207 | "@gi-types/gobject2" "^2.68.0" 208 | 209 | "@gi-types/gio2@*", "@gi-types/gio2@^2.68.0": 210 | version "2.68.0" 211 | resolved "https://registry.yarnpkg.com/@gi-types/gio2/-/gio2-2.68.0.tgz#45c35975c0a85e257b492e156cf2c82eb6dd2ad5" 212 | integrity sha512-VEjaLR96r9HOqf9YfVN4tAVeCAIqccoOz2KUJyqj3Ha/GABBilEucJUr7VK7t2Vogtlp7VyqdSa2AilORqPg1A== 213 | dependencies: 214 | "@gi-types/glib2" "^2.68.0" 215 | "@gi-types/gobject2" "^2.68.0" 216 | 217 | "@gi-types/girepository2@^1.68.0": 218 | version "1.68.0" 219 | resolved "https://registry.yarnpkg.com/@gi-types/girepository2/-/girepository2-1.68.0.tgz#96b4efb800f62aef94282d48966ee3cc9e8bb6fd" 220 | integrity sha512-OYTsgMdQ1UWua6Bvx/rSL29qn9CCZ1rMpoBsfvDs5ol+9nNYsxUIl7AvRIojEk/IbWmYh/K9Kv3Mqi3ntB3aTA== 221 | dependencies: 222 | "@gi-types/glib2" "^2.68.0" 223 | "@gi-types/gobject2" "^2.68.0" 224 | 225 | "@gi-types/gjs-environment@^1.0.0": 226 | version "1.0.0" 227 | resolved "https://registry.yarnpkg.com/@gi-types/gjs-environment/-/gjs-environment-1.0.0.tgz#201d55e32dbba8d6f6bd76808e129d574200a471" 228 | integrity sha512-UD4cGWT5rgYormf+P5cd/Wqk3VsAKNuclCPtXXSuglpGkwKdJp0hcxz3Ohpwe0+9rOG0xs6sNAJgtpR/uwk4NA== 229 | dependencies: 230 | "@gi-types/gio2" "^2.68.0" 231 | "@gi-types/glib2" "^2.68.0" 232 | "@gi-types/gobject2" "^2.68.0" 233 | 234 | "@gi-types/glib2@*", "@gi-types/glib2@^2.68.0": 235 | version "2.68.0" 236 | resolved "https://registry.yarnpkg.com/@gi-types/glib2/-/glib2-2.68.0.tgz#9cbb46eec42a21058823c29237ac81a676f8bc95" 237 | integrity sha512-xm0VaFsL3YbjmwgiWFMX/yX/nxKu1xXsSY7pnHL7T5bQcb28oNCfWBH1Rhlx6wjL7DR2mQjX5owbaA5ZXUFLHQ== 238 | dependencies: 239 | "@gi-types/gobject2" "^2.68.0" 240 | 241 | "@gi-types/gmodule2@*", "@gi-types/gmodule2@^2.0.0": 242 | version "2.0.0" 243 | resolved "https://registry.yarnpkg.com/@gi-types/gmodule2/-/gmodule2-2.0.0.tgz#ac6b7fe22fef804b2762e371e7129ca5994edf44" 244 | integrity sha512-Wnn3CImVWdJbAU2dqeCa7ieFEtxhcCyZVR2d6QHOrFngKBZqDnUqw35mv9mUjp48D5B3kS1QuCszvUZ8VSeHcA== 245 | dependencies: 246 | "@gi-types/gobject2" "^2.68.0" 247 | 248 | "@gi-types/gobject2@*", "@gi-types/gobject2@^2.68.0": 249 | version "2.68.0" 250 | resolved "https://registry.yarnpkg.com/@gi-types/gobject2/-/gobject2-2.68.0.tgz#d19ed29a41309c8c300572e94b317c329af1c323" 251 | integrity sha512-Ka/vZnb+VLg68eNJ6rnkU6qjqupnpPjq8JFmJsdUsMyZPV9WTG7YOKiAZBQ3BfSO5LsiDdAyVWfU7OHu//So0Q== 252 | dependencies: 253 | "@gi-types/glib2" "^2.68.0" 254 | 255 | "@gi-types/graphene1@^1.0.0": 256 | version "1.0.0" 257 | resolved "https://registry.yarnpkg.com/@gi-types/graphene1/-/graphene1-1.0.0.tgz#5db7be8abb11c8b33b12366aa05c05116c72f680" 258 | integrity sha512-C3vM6xLBc/P4yMCVYQDtW04OaLrbesXDR+TN5XQuwWXOchDJIky3cSCOdBw8ZdWHFELz8WRc0yEAIQTqCKVEnQ== 259 | dependencies: 260 | "@gi-types/gobject2" "^2.68.0" 261 | 262 | "@gi-types/gsk4@^4.0.0": 263 | version "4.0.0" 264 | resolved "https://registry.yarnpkg.com/@gi-types/gsk4/-/gsk4-4.0.0.tgz#2c4da35cb74b1333def509c0f9fb0437d8ca3ad6" 265 | integrity sha512-fO6YCSU5ck05PNqB6zSUNjGev++4iziujZmeAaMqqSFt3eNoZNy38hGdljnB2+Y1691fOQgsVY35J0yZzZyNGg== 266 | dependencies: 267 | "@gi-types/cairo1" "^1.0.0" 268 | "@gi-types/gdk4" "^4.0.0" 269 | "@gi-types/glib2" "^2.68.0" 270 | "@gi-types/gobject2" "^2.68.0" 271 | "@gi-types/graphene1" "^1.0.0" 272 | "@gi-types/pango1" "^1.0.0" 273 | 274 | "@gi-types/gtk3@^3.24.0": 275 | version "3.24.0" 276 | resolved "https://registry.yarnpkg.com/@gi-types/gtk3/-/gtk3-3.24.0.tgz#926acf7f4fda487052eb620e06034d71cefa2f42" 277 | integrity sha512-D3EKqE+hcltQAGrFGry2X4zaLUYwCMr/7mym6oq78mF5hM2DSoUnDA9qfTYLImqQ//8fs9rBe4HPSXeYcHoNLg== 278 | dependencies: 279 | "@gi-types/atk1" "^2.36.0" 280 | "@gi-types/cairo1" "^1.0.0" 281 | "@gi-types/gdk3" "^3.24.0" 282 | "@gi-types/gdkpixbuf2" "^2.0.0" 283 | "@gi-types/gio2" "^2.68.0" 284 | "@gi-types/glib2" "^2.68.0" 285 | "@gi-types/gobject2" "^2.68.0" 286 | "@gi-types/pango1" "^1.0.0" 287 | "@gi-types/xlib2" "^2.0.0" 288 | 289 | "@gi-types/gtk4@^4.2.0": 290 | version "4.2.0" 291 | resolved "https://registry.yarnpkg.com/@gi-types/gtk4/-/gtk4-4.2.0.tgz#9e14b7b1d51a6c99186dacb63e5fcbd13b1ec9cb" 292 | integrity sha512-YYwzQLRZXOYL6wXy7l3YjLBR2mUVyLAz5gXUBjdSgMtERLKPWpPepZdJ2zoztmdSO8Sfn2CG1rTZhuF73cQtsQ== 293 | dependencies: 294 | "@gi-types/cairo1" "^1.0.0" 295 | "@gi-types/gdk4" "^4.0.0" 296 | "@gi-types/gdkpixbuf2" "^2.0.0" 297 | "@gi-types/gio2" "^2.68.0" 298 | "@gi-types/glib2" "^2.68.0" 299 | "@gi-types/gobject2" "^2.68.0" 300 | "@gi-types/graphene1" "^1.0.0" 301 | "@gi-types/gsk4" "^4.0.0" 302 | "@gi-types/pango1" "^1.0.0" 303 | 304 | "@gi-types/harfbuzz2@*", "@gi-types/harfbuzz2@^2.8.1": 305 | version "2.8.1" 306 | resolved "https://registry.yarnpkg.com/@gi-types/harfbuzz2/-/harfbuzz2-2.8.1.tgz#757301194a7408afcd386c1de13b4061411116a1" 307 | integrity sha512-XeobP2BuLuF5xyxCd2WqxlnUSqhwFED3mJQ7JTcWvKd59BR0tWK1Qd+v7OOcYHdUFYS2Y1+EibfhR7hOH7TZCA== 308 | dependencies: 309 | "@gi-types/glib2" "^2.68.0" 310 | "@gi-types/gobject2" "^2.68.0" 311 | 312 | "@gi-types/ibus1@*": 313 | version "1.5.0" 314 | resolved "https://registry.yarnpkg.com/@gi-types/ibus1/-/ibus1-1.5.0.tgz#c537530076b9fd0978d979012b27045496b6c3c1" 315 | integrity sha512-s8122Qp6jU1xgetUgFRaDto5hNKSFNwDITya+nXL9QWqw2Q4MGPHJlwNb+/QHbcc2rZ0dSu39jW+Z/zWpIlzbg== 316 | dependencies: 317 | "@gi-types/gio2" "^2.68.0" 318 | "@gi-types/glib2" "^2.68.0" 319 | "@gi-types/gobject2" "^2.68.0" 320 | 321 | "@gi-types/json1@*", "@gi-types/json1@^1.6.0": 322 | version "1.6.0" 323 | resolved "https://registry.yarnpkg.com/@gi-types/json1/-/json1-1.6.0.tgz#d4468d3bf222243d2b870ce5aba58f20c7c50115" 324 | integrity sha512-qqnqOb+lAkVs0BGAFolAd8SP2NBu0gnaSzECjzWxsjK5VLxd5uYDv6ChDjTW8bhgLWJ9vtG3HQAvsd0O6kU4XQ== 325 | dependencies: 326 | "@gi-types/gio2" "^2.68.0" 327 | "@gi-types/glib2" "^2.68.0" 328 | "@gi-types/gobject2" "^2.68.0" 329 | 330 | "@gi-types/malcontent0@*": 331 | version "0.0.0" 332 | resolved "https://registry.yarnpkg.com/@gi-types/malcontent0/-/malcontent0-0.0.0.tgz#99b9f98e8c96d67490dce5ba88245b16a03e684b" 333 | integrity sha512-btlw8DK4rEbLwC47J6Q2NSom7UiSytPZy5JVPK4/faP45CFOCOQ1aJpi5lNaa9cN5AB+Br5EJFVCMDob6hUu8A== 334 | dependencies: 335 | "@gi-types/gio2" "^2.68.0" 336 | "@gi-types/glib2" "^2.68.0" 337 | "@gi-types/gobject2" "^2.68.0" 338 | 339 | "@gi-types/meta8@^8.0.0": 340 | version "8.0.0" 341 | resolved "https://registry.yarnpkg.com/@gi-types/meta8/-/meta8-8.0.0.tgz#a46b63d4b5325a16c38c9e7d500695ec2e7bd135" 342 | integrity sha512-YNqE3BXmpG4N/yQMAt7z2W7mODiDG3dgki0MeGBCVh65uTpYS2E6hVwqlAk9K8B0zSSxy4IiSG9bAu5znkJ60A== 343 | dependencies: 344 | "@gi-types/atk1" "^2.36.0" 345 | "@gi-types/cairo1" "^1.0.0" 346 | "@gi-types/clutter8" "^8.0.0" 347 | "@gi-types/cogl8" "^8.0.0" 348 | "@gi-types/gdesktopenums3" "^3.0.0" 349 | "@gi-types/gio2" "^2.68.0" 350 | "@gi-types/glib2" "^2.68.0" 351 | "@gi-types/gobject2" "^2.68.0" 352 | "@gi-types/graphene1" "^1.0.0" 353 | "@gi-types/gtk3" "^3.24.0" 354 | "@gi-types/json1" "^1.6.0" 355 | "@gi-types/pango1" "^1.0.0" 356 | "@gi-types/xfixes4" "^4.0.0" 357 | "@gi-types/xlib2" "^2.0.0" 358 | 359 | "@gi-types/modemmanager1@*": 360 | version "1.16.0" 361 | resolved "https://registry.yarnpkg.com/@gi-types/modemmanager1/-/modemmanager1-1.16.0.tgz#03496725c9c30efec9caaff0f241ce32427deb8f" 362 | integrity sha512-6pKXtRp+v/TuSS8fsdCTNLDTBp/+cYphmxPhs6UzPxJW56yvmoxbwv+Y5YbKhHxc+hKfBqzP7iNB/JBj+4pF8Q== 363 | dependencies: 364 | "@gi-types/gio2" "^2.68.0" 365 | "@gi-types/glib2" "^2.68.0" 366 | "@gi-types/gobject2" "^2.68.0" 367 | 368 | "@gi-types/nm1@*", "@gi-types/nm1@^1.32.0": 369 | version "1.32.0" 370 | resolved "https://registry.yarnpkg.com/@gi-types/nm1/-/nm1-1.32.0.tgz#aa44279f175ba90e58179f7cc36693676a22a809" 371 | integrity sha512-TPF9iVP2eZR+z0hw1vFvl7ae7hmPE04mpLaoEYfpH65wW/3ldZ8G72AryKu86zMQ99BEwGU7aplA3gCfPFGI0w== 372 | dependencies: 373 | "@gi-types/gio2" "^2.68.0" 374 | "@gi-types/glib2" "^2.68.0" 375 | "@gi-types/gobject2" "^2.68.0" 376 | 377 | "@gi-types/notify0@*": 378 | version "0.7.0" 379 | resolved "https://registry.yarnpkg.com/@gi-types/notify0/-/notify0-0.7.0.tgz#c22b7b5b0b5dc025a3574fa3d86a2a4db28e9ee7" 380 | integrity sha512-trQXuPvPlQ6DHj45THn4tbPHjIZumG6CZkspcAzzjDBK2XLIcDVIbUee5YMQUISiAqNKgKzQWp4C63cRYsFazQ== 381 | dependencies: 382 | "@gi-types/gdkpixbuf2" "^2.0.0" 383 | "@gi-types/glib2" "^2.68.0" 384 | "@gi-types/gobject2" "^2.68.0" 385 | 386 | "@gi-types/pango1@*", "@gi-types/pango1@^1.0.0": 387 | version "1.0.0" 388 | resolved "https://registry.yarnpkg.com/@gi-types/pango1/-/pango1-1.0.0.tgz#51dc46cc97ae24650f23ab591aa12d43f957da9e" 389 | integrity sha512-ZDYC0tW+SNUjrjxGSEIJo8oPLlpz+WwvwRH2d0mTTX3p2SuQNV7rkYjdR0L2uAuD15NBe7mM6wvLcxJ2WZurGg== 390 | dependencies: 391 | "@gi-types/glib2" "^2.68.0" 392 | "@gi-types/gobject2" "^2.68.0" 393 | "@gi-types/harfbuzz2" "^2.8.1" 394 | 395 | "@gi-types/polkit1@*", "@gi-types/polkit1@^1.0.0": 396 | version "1.0.0" 397 | resolved "https://registry.yarnpkg.com/@gi-types/polkit1/-/polkit1-1.0.0.tgz#1f5ef0a77ab971198827f33b07172e33961921b3" 398 | integrity sha512-2yQ0btuZXU6ajMgUccIrEQSkE9SUNyL3EbbQ0FkpkJIGMl+c531iXlppVXbNVfovNw6lrVuOHQCaPMH7UJoBpA== 399 | dependencies: 400 | "@gi-types/gio2" "^2.68.0" 401 | "@gi-types/glib2" "^2.68.0" 402 | "@gi-types/gobject2" "^2.68.0" 403 | 404 | "@gi-types/polkitagent1@*", "@gi-types/polkitagent1@^1.0.0": 405 | version "1.0.0" 406 | resolved "https://registry.yarnpkg.com/@gi-types/polkitagent1/-/polkitagent1-1.0.0.tgz#b875c077f315153a27d4398ff64a74efe0e70c85" 407 | integrity sha512-7dT5BqG9cJk9SEuTnq7BKxa36U20RqFY7udA5OrLuPudrHxIG/fkRAY5+DgVKjVGtp+DO5T2IlYBGDqyQyk3Cg== 408 | dependencies: 409 | "@gi-types/gio2" "^2.68.0" 410 | "@gi-types/glib2" "^2.68.0" 411 | "@gi-types/gobject2" "^2.68.0" 412 | "@gi-types/polkit1" "^1.0.0" 413 | 414 | "@gi-types/rsvg2@*": 415 | version "2.50.0" 416 | resolved "https://registry.yarnpkg.com/@gi-types/rsvg2/-/rsvg2-2.50.0.tgz#38ba8029b39ecf367e0e5134b969a32663f75798" 417 | integrity sha512-KfODNokeIxse65cah4IVPdDmZ4A8NcKQuhUOldcx259vQZz8VzYbAJiCw9PZ3BKZFqqEMitX3YSnzlHPZ0xK1Q== 418 | dependencies: 419 | "@gi-types/cairo1" "^1.0.0" 420 | "@gi-types/gdkpixbuf2" "^2.0.0" 421 | "@gi-types/gio2" "^2.68.0" 422 | "@gi-types/glib2" "^2.68.0" 423 | "@gi-types/gobject2" "^2.68.0" 424 | 425 | "@gi-types/shell0@^0.1.0": 426 | version "0.1.0" 427 | resolved "https://registry.yarnpkg.com/@gi-types/shell0/-/shell0-0.1.0.tgz#dfa79b9c81be742b92cad2d647fe3eedd574de4f" 428 | integrity sha512-YoAWAN+Icja2sbR+2jJivofvo9zyRQTHijAZMaFX+neZfCokA5X7f0U3iXH3nFBmMYLJcasRiaOMMOU1k1sX7A== 429 | dependencies: 430 | "@gi-types/atk1" "^2.36.0" 431 | "@gi-types/cairo1" "^1.0.0" 432 | "@gi-types/clutter8" "^8.0.0" 433 | "@gi-types/cogl8" "^8.0.0" 434 | "@gi-types/gcr3" "^3.40.0" 435 | "@gi-types/gdkpixbuf2" "^2.0.0" 436 | "@gi-types/gio2" "^2.68.0" 437 | "@gi-types/glib2" "^2.68.0" 438 | "@gi-types/gobject2" "^2.68.0" 439 | "@gi-types/gtk3" "^3.24.0" 440 | "@gi-types/meta8" "^8.0.0" 441 | "@gi-types/nm1" "^1.32.0" 442 | "@gi-types/polkitagent1" "^1.0.0" 443 | "@gi-types/st1" "^1.0.0" 444 | 445 | "@gi-types/soup2@*": 446 | version "2.72.0" 447 | resolved "https://registry.yarnpkg.com/@gi-types/soup2/-/soup2-2.72.0.tgz#f1a25e478b2f1c66a1298dbfcd622724903e6a9e" 448 | integrity sha512-PGCUaj9IEfA9vIhZPbXNFamklWWCIqszV0OIdyzzQxcL6EcJTdW8mn0DTRGqJPXuC52l/V5smOSF9eelyhMKZA== 449 | dependencies: 450 | "@gi-types/gio2" "^2.68.0" 451 | "@gi-types/glib2" "^2.68.0" 452 | "@gi-types/gobject2" "^2.68.0" 453 | 454 | "@gi-types/st1@^1.0.0": 455 | version "1.0.0" 456 | resolved "https://registry.yarnpkg.com/@gi-types/st1/-/st1-1.0.0.tgz#e76c6c046d6efb0bf63f27a3304dc2268f584204" 457 | integrity sha512-/61lxOuLfLWVSpjFI6mRNGFfNKf5SbTDIOo1z67e5d7yyUGeqrYlPrFaPm8e0usaA3JolucmPnR6RyXvn2Txlw== 458 | dependencies: 459 | "@gi-types/atk1" "^2.36.0" 460 | "@gi-types/cairo1" "^1.0.0" 461 | "@gi-types/cally8" "^8.0.0" 462 | "@gi-types/clutter8" "^8.0.0" 463 | "@gi-types/cogl8" "^8.0.0" 464 | "@gi-types/gio2" "^2.68.0" 465 | "@gi-types/glib2" "^2.68.0" 466 | "@gi-types/gobject2" "^2.68.0" 467 | "@gi-types/json1" "^1.6.0" 468 | "@gi-types/pango1" "^1.0.0" 469 | 470 | "@gi-types/telepathyglib0@*", "@gi-types/telepathyglib0@^0.12.0": 471 | version "0.12.0" 472 | resolved "https://registry.yarnpkg.com/@gi-types/telepathyglib0/-/telepathyglib0-0.12.0.tgz#241ba4ded6fee19f799d79e3eac4d44862bd2d9c" 473 | integrity sha512-mtuSOev0fP8J4mq+EkVpZpBGwqJhFFPp8yEpNm7LB72xqgHRBSI07hYjgMPO7Fm3EC+i/2aUCoRH/b26sGchBg== 474 | dependencies: 475 | "@gi-types/gio2" "^2.68.0" 476 | "@gi-types/glib2" "^2.68.0" 477 | "@gi-types/gobject2" "^2.68.0" 478 | 479 | "@gi-types/telepathylogger0@*": 480 | version "0.2.0" 481 | resolved "https://registry.yarnpkg.com/@gi-types/telepathylogger0/-/telepathylogger0-0.2.0.tgz#917ee7eab4cd3b836ec216ebd600598283ea2728" 482 | integrity sha512-rIL+MbB204Gpc3pqbr0xKarFBCcS0gaV3f1u523MQZfAfuK6Hh7ci2tSHmTcXjLtT7+w6F5kcBrHXP7uwMgU9w== 483 | dependencies: 484 | "@gi-types/gio2" "^2.68.0" 485 | "@gi-types/glib2" "^2.68.0" 486 | "@gi-types/gobject2" "^2.68.0" 487 | "@gi-types/telepathyglib0" "^0.12.0" 488 | 489 | "@gi-types/upowerglib1@*": 490 | version "0.99.0" 491 | resolved "https://registry.yarnpkg.com/@gi-types/upowerglib1/-/upowerglib1-0.99.0.tgz#1317ff03b4104d6afd9f417f5ae5044d4197b473" 492 | integrity sha512-MPqFnwKmW4RlV3ififdXiUgzs3+kRjUBmJiM8y+NQApLIbqLipBrpm3IxwkB5oRZV6i9KnHp47AguQvqfjoxtA== 493 | dependencies: 494 | "@gi-types/gio2" "^2.68.0" 495 | "@gi-types/gobject2" "^2.68.0" 496 | 497 | "@gi-types/xfixes4@^4.0.0": 498 | version "4.0.0" 499 | resolved "https://registry.yarnpkg.com/@gi-types/xfixes4/-/xfixes4-4.0.0.tgz#be6ee76d3a48ac1e48433003c3a47b822a8e825f" 500 | integrity sha512-NYIHJ8fP2rawTN7Yhf5HJ1RQBBeiYHJcYXH7GNTkHwChJIThbt1CsEfW8s9x7PzgXm0FIPoEdaRRdWEhhwBWtg== 501 | dependencies: 502 | "@gi-types/gobject2" "^2.68.0" 503 | 504 | "@gi-types/xlib2@*", "@gi-types/xlib2@^2.0.0": 505 | version "2.0.0" 506 | resolved "https://registry.yarnpkg.com/@gi-types/xlib2/-/xlib2-2.0.0.tgz#1072b392a42266832dc8f329db30e005dce8b024" 507 | integrity sha512-wFeKKC104EUj6h3HsAIBMUSCZYgphZgNARy4NUWfbjLF0Mx+N84PgzAcUgrWsbrxXKappsZ3mqZfPvdtea948A== 508 | dependencies: 509 | "@gi-types/gobject2" "^2.68.0" 510 | 511 | "@humanwhocodes/config-array@^0.9.2": 512 | version "0.9.2" 513 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" 514 | integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== 515 | dependencies: 516 | "@humanwhocodes/object-schema" "^1.2.1" 517 | debug "^4.1.1" 518 | minimatch "^3.0.4" 519 | 520 | "@humanwhocodes/object-schema@^1.2.1": 521 | version "1.2.1" 522 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 523 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 524 | 525 | "@nodelib/fs.scandir@2.1.5": 526 | version "2.1.5" 527 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 528 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 529 | dependencies: 530 | "@nodelib/fs.stat" "2.0.5" 531 | run-parallel "^1.1.9" 532 | 533 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 534 | version "2.0.5" 535 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 536 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 537 | 538 | "@nodelib/fs.walk@^1.2.3": 539 | version "1.2.8" 540 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 541 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 542 | dependencies: 543 | "@nodelib/fs.scandir" "2.1.5" 544 | fastq "^1.6.0" 545 | 546 | "@rollup/plugin-typescript@^8.3.0": 547 | version "8.3.0" 548 | resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.3.0.tgz#bc1077fa5897b980fc27e376c4e377882c63e68b" 549 | integrity sha512-I5FpSvLbtAdwJ+naznv+B4sjXZUcIvLLceYpITAn7wAP8W0wqc5noLdGIp9HGVntNhRWXctwPYrSSFQxtl0FPA== 550 | dependencies: 551 | "@rollup/pluginutils" "^3.1.0" 552 | resolve "^1.17.0" 553 | 554 | "@rollup/pluginutils@^3.1.0": 555 | version "3.1.0" 556 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" 557 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 558 | dependencies: 559 | "@types/estree" "0.0.39" 560 | estree-walker "^1.0.1" 561 | picomatch "^2.2.2" 562 | 563 | "@types/estree@0.0.39": 564 | version "0.0.39" 565 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 566 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 567 | 568 | "@types/fs-extra@^8.0.1": 569 | version "8.1.2" 570 | resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.2.tgz#7125cc2e4bdd9bd2fc83005ffdb1d0ba00cca61f" 571 | integrity sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg== 572 | dependencies: 573 | "@types/node" "*" 574 | 575 | "@types/glob@^7.1.1": 576 | version "7.2.0" 577 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" 578 | integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== 579 | dependencies: 580 | "@types/minimatch" "*" 581 | "@types/node" "*" 582 | 583 | "@types/json-schema@^7.0.9": 584 | version "7.0.9" 585 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" 586 | integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== 587 | 588 | "@types/minimatch@*": 589 | version "3.0.5" 590 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" 591 | integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== 592 | 593 | "@types/node@*", "@types/node@^17.0.10": 594 | version "17.0.10" 595 | resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.10.tgz#616f16e9d3a2a3d618136b1be244315d95bd7cab" 596 | integrity sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog== 597 | 598 | "@typescript-eslint/eslint-plugin@^5.10.0": 599 | version "5.10.0" 600 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.0.tgz#e90afea96dff8620892ad216b0e4ccdf8ee32d3a" 601 | integrity sha512-XXVKnMsq2fuu9K2KsIxPUGqb6xAImz8MEChClbXmE3VbveFtBUU5bzM6IPVWqzyADIgdkS2Ws/6Xo7W2TeZWjQ== 602 | dependencies: 603 | "@typescript-eslint/scope-manager" "5.10.0" 604 | "@typescript-eslint/type-utils" "5.10.0" 605 | "@typescript-eslint/utils" "5.10.0" 606 | debug "^4.3.2" 607 | functional-red-black-tree "^1.0.1" 608 | ignore "^5.1.8" 609 | regexpp "^3.2.0" 610 | semver "^7.3.5" 611 | tsutils "^3.21.0" 612 | 613 | "@typescript-eslint/parser@^5.10.0": 614 | version "5.10.0" 615 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.10.0.tgz#8f59e036f5f1cffc178cacbd5ccdd02aeb96c91c" 616 | integrity sha512-pJB2CCeHWtwOAeIxv8CHVGJhI5FNyJAIpx5Pt72YkK3QfEzt6qAlXZuyaBmyfOdM62qU0rbxJzNToPTVeJGrQw== 617 | dependencies: 618 | "@typescript-eslint/scope-manager" "5.10.0" 619 | "@typescript-eslint/types" "5.10.0" 620 | "@typescript-eslint/typescript-estree" "5.10.0" 621 | debug "^4.3.2" 622 | 623 | "@typescript-eslint/scope-manager@5.10.0": 624 | version "5.10.0" 625 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.10.0.tgz#bb5d872e8b9e36203908595507fbc4d3105329cb" 626 | integrity sha512-tgNgUgb4MhqK6DoKn3RBhyZ9aJga7EQrw+2/OiDk5hKf3pTVZWyqBi7ukP+Z0iEEDMF5FDa64LqODzlfE4O/Dg== 627 | dependencies: 628 | "@typescript-eslint/types" "5.10.0" 629 | "@typescript-eslint/visitor-keys" "5.10.0" 630 | 631 | "@typescript-eslint/type-utils@5.10.0": 632 | version "5.10.0" 633 | resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.10.0.tgz#8524b9479c19c478347a7df216827e749e4a51e5" 634 | integrity sha512-TzlyTmufJO5V886N+hTJBGIfnjQDQ32rJYxPaeiyWKdjsv2Ld5l8cbS7pxim4DeNs62fKzRSt8Q14Evs4JnZyQ== 635 | dependencies: 636 | "@typescript-eslint/utils" "5.10.0" 637 | debug "^4.3.2" 638 | tsutils "^3.21.0" 639 | 640 | "@typescript-eslint/types@5.10.0": 641 | version "5.10.0" 642 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.0.tgz#beb3cb345076f5b088afe996d57bcd1dfddaa75c" 643 | integrity sha512-wUljCgkqHsMZbw60IbOqT/puLfyqqD5PquGiBo1u1IS3PLxdi3RDGlyf032IJyh+eQoGhz9kzhtZa+VC4eWTlQ== 644 | 645 | "@typescript-eslint/typescript-estree@5.10.0": 646 | version "5.10.0" 647 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.0.tgz#4be24a3dea0f930bb1397c46187d0efdd955a224" 648 | integrity sha512-x+7e5IqfwLwsxTdliHRtlIYkgdtYXzE0CkFeV6ytAqq431ZyxCFzNMNR5sr3WOlIG/ihVZr9K/y71VHTF/DUQA== 649 | dependencies: 650 | "@typescript-eslint/types" "5.10.0" 651 | "@typescript-eslint/visitor-keys" "5.10.0" 652 | debug "^4.3.2" 653 | globby "^11.0.4" 654 | is-glob "^4.0.3" 655 | semver "^7.3.5" 656 | tsutils "^3.21.0" 657 | 658 | "@typescript-eslint/utils@5.10.0": 659 | version "5.10.0" 660 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.10.0.tgz#c3d152a85da77c400e37281355561c72fb1b5a65" 661 | integrity sha512-IGYwlt1CVcFoE2ueW4/ioEwybR60RAdGeiJX/iDAw0t5w0wK3S7QncDwpmsM70nKgGTuVchEWB8lwZwHqPAWRg== 662 | dependencies: 663 | "@types/json-schema" "^7.0.9" 664 | "@typescript-eslint/scope-manager" "5.10.0" 665 | "@typescript-eslint/types" "5.10.0" 666 | "@typescript-eslint/typescript-estree" "5.10.0" 667 | eslint-scope "^5.1.1" 668 | eslint-utils "^3.0.0" 669 | 670 | "@typescript-eslint/visitor-keys@5.10.0": 671 | version "5.10.0" 672 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.0.tgz#770215497ad67cd15a572b52089991d5dfe06281" 673 | integrity sha512-GMxj0K1uyrFLPKASLmZzCuSddmjZVbVj3Ouy5QVuIGKZopxvOr24JsS7gruz6C3GExE01mublZ3mIBOaon9zuQ== 674 | dependencies: 675 | "@typescript-eslint/types" "5.10.0" 676 | eslint-visitor-keys "^3.0.0" 677 | 678 | acorn-jsx@^5.3.1: 679 | version "5.3.2" 680 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 681 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 682 | 683 | acorn@^8.7.0: 684 | version "8.7.0" 685 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" 686 | integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== 687 | 688 | ajv@^6.10.0, ajv@^6.12.4: 689 | version "6.12.6" 690 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 691 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 692 | dependencies: 693 | fast-deep-equal "^3.1.1" 694 | fast-json-stable-stringify "^2.0.0" 695 | json-schema-traverse "^0.4.1" 696 | uri-js "^4.2.2" 697 | 698 | ansi-regex@^5.0.1: 699 | version "5.0.1" 700 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 701 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 702 | 703 | ansi-styles@^4.1.0: 704 | version "4.3.0" 705 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 706 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 707 | dependencies: 708 | color-convert "^2.0.1" 709 | 710 | argparse@^2.0.1: 711 | version "2.0.1" 712 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 713 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 714 | 715 | array-union@^2.1.0: 716 | version "2.1.0" 717 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 718 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 719 | 720 | balanced-match@^1.0.0: 721 | version "1.0.2" 722 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 723 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 724 | 725 | brace-expansion@^1.1.7: 726 | version "1.1.11" 727 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 728 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 729 | dependencies: 730 | balanced-match "^1.0.0" 731 | concat-map "0.0.1" 732 | 733 | braces@^3.0.1: 734 | version "3.0.2" 735 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 736 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 737 | dependencies: 738 | fill-range "^7.0.1" 739 | 740 | callsites@^3.0.0: 741 | version "3.1.0" 742 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 743 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 744 | 745 | chalk@^4.0.0: 746 | version "4.1.2" 747 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 748 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 749 | dependencies: 750 | ansi-styles "^4.1.0" 751 | supports-color "^7.1.0" 752 | 753 | color-convert@^2.0.1: 754 | version "2.0.1" 755 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 756 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 757 | dependencies: 758 | color-name "~1.1.4" 759 | 760 | color-name@~1.1.4: 761 | version "1.1.4" 762 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 763 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 764 | 765 | colorette@^1.1.0: 766 | version "1.4.0" 767 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" 768 | integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== 769 | 770 | concat-map@0.0.1: 771 | version "0.0.1" 772 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 773 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 774 | 775 | cross-spawn@^7.0.2: 776 | version "7.0.3" 777 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 778 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 779 | dependencies: 780 | path-key "^3.1.0" 781 | shebang-command "^2.0.0" 782 | which "^2.0.1" 783 | 784 | debug@^4.1.1, debug@^4.3.2: 785 | version "4.3.3" 786 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" 787 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== 788 | dependencies: 789 | ms "2.1.2" 790 | 791 | deep-is@^0.1.3: 792 | version "0.1.4" 793 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 794 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 795 | 796 | dir-glob@^3.0.1: 797 | version "3.0.1" 798 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 799 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 800 | dependencies: 801 | path-type "^4.0.0" 802 | 803 | doctrine@^3.0.0: 804 | version "3.0.0" 805 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 806 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 807 | dependencies: 808 | esutils "^2.0.2" 809 | 810 | escape-string-regexp@^4.0.0: 811 | version "4.0.0" 812 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 813 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 814 | 815 | eslint-scope@^5.1.1: 816 | version "5.1.1" 817 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 818 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 819 | dependencies: 820 | esrecurse "^4.3.0" 821 | estraverse "^4.1.1" 822 | 823 | eslint-scope@^7.1.0: 824 | version "7.1.0" 825 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" 826 | integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== 827 | dependencies: 828 | esrecurse "^4.3.0" 829 | estraverse "^5.2.0" 830 | 831 | eslint-utils@^3.0.0: 832 | version "3.0.0" 833 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" 834 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== 835 | dependencies: 836 | eslint-visitor-keys "^2.0.0" 837 | 838 | eslint-visitor-keys@^2.0.0: 839 | version "2.1.0" 840 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" 841 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 842 | 843 | eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.2.0: 844 | version "3.2.0" 845 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1" 846 | integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ== 847 | 848 | eslint@^8.7.0: 849 | version "8.7.0" 850 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.7.0.tgz#22e036842ee5b7cf87b03fe237731675b4d3633c" 851 | integrity sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w== 852 | dependencies: 853 | "@eslint/eslintrc" "^1.0.5" 854 | "@humanwhocodes/config-array" "^0.9.2" 855 | ajv "^6.10.0" 856 | chalk "^4.0.0" 857 | cross-spawn "^7.0.2" 858 | debug "^4.3.2" 859 | doctrine "^3.0.0" 860 | escape-string-regexp "^4.0.0" 861 | eslint-scope "^7.1.0" 862 | eslint-utils "^3.0.0" 863 | eslint-visitor-keys "^3.2.0" 864 | espree "^9.3.0" 865 | esquery "^1.4.0" 866 | esutils "^2.0.2" 867 | fast-deep-equal "^3.1.3" 868 | file-entry-cache "^6.0.1" 869 | functional-red-black-tree "^1.0.1" 870 | glob-parent "^6.0.1" 871 | globals "^13.6.0" 872 | ignore "^5.2.0" 873 | import-fresh "^3.0.0" 874 | imurmurhash "^0.1.4" 875 | is-glob "^4.0.0" 876 | js-yaml "^4.1.0" 877 | json-stable-stringify-without-jsonify "^1.0.1" 878 | levn "^0.4.1" 879 | lodash.merge "^4.6.2" 880 | minimatch "^3.0.4" 881 | natural-compare "^1.4.0" 882 | optionator "^0.9.1" 883 | regexpp "^3.2.0" 884 | strip-ansi "^6.0.1" 885 | strip-json-comments "^3.1.0" 886 | text-table "^0.2.0" 887 | v8-compile-cache "^2.0.3" 888 | 889 | espree@^9.2.0, espree@^9.3.0: 890 | version "9.3.0" 891 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8" 892 | integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ== 893 | dependencies: 894 | acorn "^8.7.0" 895 | acorn-jsx "^5.3.1" 896 | eslint-visitor-keys "^3.1.0" 897 | 898 | esquery@^1.4.0: 899 | version "1.4.0" 900 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 901 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 902 | dependencies: 903 | estraverse "^5.1.0" 904 | 905 | esrecurse@^4.3.0: 906 | version "4.3.0" 907 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 908 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 909 | dependencies: 910 | estraverse "^5.2.0" 911 | 912 | estraverse@^4.1.1: 913 | version "4.3.0" 914 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 915 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 916 | 917 | estraverse@^5.1.0, estraverse@^5.2.0: 918 | version "5.3.0" 919 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 920 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 921 | 922 | estree-walker@^1.0.1: 923 | version "1.0.1" 924 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" 925 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 926 | 927 | esutils@^2.0.2: 928 | version "2.0.3" 929 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 930 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 931 | 932 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 933 | version "3.1.3" 934 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 935 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 936 | 937 | fast-glob@^3.0.3, fast-glob@^3.1.1: 938 | version "3.2.7" 939 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" 940 | integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== 941 | dependencies: 942 | "@nodelib/fs.stat" "^2.0.2" 943 | "@nodelib/fs.walk" "^1.2.3" 944 | glob-parent "^5.1.2" 945 | merge2 "^1.3.0" 946 | micromatch "^4.0.4" 947 | 948 | fast-json-stable-stringify@^2.0.0: 949 | version "2.1.0" 950 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 951 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 952 | 953 | fast-levenshtein@^2.0.6: 954 | version "2.0.6" 955 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 956 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 957 | 958 | fastq@^1.6.0: 959 | version "1.13.0" 960 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 961 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 962 | dependencies: 963 | reusify "^1.0.4" 964 | 965 | file-entry-cache@^6.0.1: 966 | version "6.0.1" 967 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 968 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 969 | dependencies: 970 | flat-cache "^3.0.4" 971 | 972 | fill-range@^7.0.1: 973 | version "7.0.1" 974 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 975 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 976 | dependencies: 977 | to-regex-range "^5.0.1" 978 | 979 | flat-cache@^3.0.4: 980 | version "3.0.4" 981 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 982 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 983 | dependencies: 984 | flatted "^3.1.0" 985 | rimraf "^3.0.2" 986 | 987 | flatted@^3.1.0: 988 | version "3.2.4" 989 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" 990 | integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== 991 | 992 | fs-extra@^8.1.0: 993 | version "8.1.0" 994 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" 995 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== 996 | dependencies: 997 | graceful-fs "^4.2.0" 998 | jsonfile "^4.0.0" 999 | universalify "^0.1.0" 1000 | 1001 | fs.realpath@^1.0.0: 1002 | version "1.0.0" 1003 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1004 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1005 | 1006 | fsevents@~2.3.2: 1007 | version "2.3.2" 1008 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1009 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1010 | 1011 | function-bind@^1.1.1: 1012 | version "1.1.1" 1013 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1014 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1015 | 1016 | functional-red-black-tree@^1.0.1: 1017 | version "1.0.1" 1018 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 1019 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 1020 | 1021 | glob-parent@^5.1.2: 1022 | version "5.1.2" 1023 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1024 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1025 | dependencies: 1026 | is-glob "^4.0.1" 1027 | 1028 | glob-parent@^6.0.1: 1029 | version "6.0.2" 1030 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 1031 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 1032 | dependencies: 1033 | is-glob "^4.0.3" 1034 | 1035 | glob@^7.1.3: 1036 | version "7.2.0" 1037 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 1038 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 1039 | dependencies: 1040 | fs.realpath "^1.0.0" 1041 | inflight "^1.0.4" 1042 | inherits "2" 1043 | minimatch "^3.0.4" 1044 | once "^1.3.0" 1045 | path-is-absolute "^1.0.0" 1046 | 1047 | globals@^13.6.0, globals@^13.9.0: 1048 | version "13.12.0" 1049 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" 1050 | integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== 1051 | dependencies: 1052 | type-fest "^0.20.2" 1053 | 1054 | globby@10.0.1: 1055 | version "10.0.1" 1056 | resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22" 1057 | integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A== 1058 | dependencies: 1059 | "@types/glob" "^7.1.1" 1060 | array-union "^2.1.0" 1061 | dir-glob "^3.0.1" 1062 | fast-glob "^3.0.3" 1063 | glob "^7.1.3" 1064 | ignore "^5.1.1" 1065 | merge2 "^1.2.3" 1066 | slash "^3.0.0" 1067 | 1068 | globby@^11.0.4: 1069 | version "11.0.4" 1070 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" 1071 | integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== 1072 | dependencies: 1073 | array-union "^2.1.0" 1074 | dir-glob "^3.0.1" 1075 | fast-glob "^3.1.1" 1076 | ignore "^5.1.4" 1077 | merge2 "^1.3.0" 1078 | slash "^3.0.0" 1079 | 1080 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 1081 | version "4.2.8" 1082 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" 1083 | integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== 1084 | 1085 | has-flag@^4.0.0: 1086 | version "4.0.0" 1087 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1088 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1089 | 1090 | has@^1.0.3: 1091 | version "1.0.3" 1092 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1093 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1094 | dependencies: 1095 | function-bind "^1.1.1" 1096 | 1097 | ignore@^4.0.6: 1098 | version "4.0.6" 1099 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 1100 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 1101 | 1102 | ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: 1103 | version "5.2.0" 1104 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" 1105 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== 1106 | 1107 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1108 | version "3.3.0" 1109 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1110 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1111 | dependencies: 1112 | parent-module "^1.0.0" 1113 | resolve-from "^4.0.0" 1114 | 1115 | imurmurhash@^0.1.4: 1116 | version "0.1.4" 1117 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1118 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1119 | 1120 | inflight@^1.0.4: 1121 | version "1.0.6" 1122 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1123 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1124 | dependencies: 1125 | once "^1.3.0" 1126 | wrappy "1" 1127 | 1128 | inherits@2: 1129 | version "2.0.4" 1130 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1131 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1132 | 1133 | is-core-module@^2.2.0: 1134 | version "2.8.0" 1135 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" 1136 | integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== 1137 | dependencies: 1138 | has "^1.0.3" 1139 | 1140 | is-extglob@^2.1.1: 1141 | version "2.1.1" 1142 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1143 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1144 | 1145 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: 1146 | version "4.0.3" 1147 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1148 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1149 | dependencies: 1150 | is-extglob "^2.1.1" 1151 | 1152 | is-number@^7.0.0: 1153 | version "7.0.0" 1154 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1155 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1156 | 1157 | is-plain-object@^3.0.0: 1158 | version "3.0.1" 1159 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" 1160 | integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== 1161 | 1162 | isexe@^2.0.0: 1163 | version "2.0.0" 1164 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1165 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1166 | 1167 | js-yaml@^4.1.0: 1168 | version "4.1.0" 1169 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 1170 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1171 | dependencies: 1172 | argparse "^2.0.1" 1173 | 1174 | json-schema-traverse@^0.4.1: 1175 | version "0.4.1" 1176 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1177 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1178 | 1179 | json-stable-stringify-without-jsonify@^1.0.1: 1180 | version "1.0.1" 1181 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1182 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 1183 | 1184 | jsonfile@^4.0.0: 1185 | version "4.0.0" 1186 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 1187 | integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= 1188 | optionalDependencies: 1189 | graceful-fs "^4.1.6" 1190 | 1191 | levn@^0.4.1: 1192 | version "0.4.1" 1193 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1194 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1195 | dependencies: 1196 | prelude-ls "^1.2.1" 1197 | type-check "~0.4.0" 1198 | 1199 | lodash.merge@^4.6.2: 1200 | version "4.6.2" 1201 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1202 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1203 | 1204 | lru-cache@^6.0.0: 1205 | version "6.0.0" 1206 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1207 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1208 | dependencies: 1209 | yallist "^4.0.0" 1210 | 1211 | merge2@^1.2.3, merge2@^1.3.0: 1212 | version "1.4.1" 1213 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1214 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1215 | 1216 | micromatch@^4.0.4: 1217 | version "4.0.4" 1218 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 1219 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== 1220 | dependencies: 1221 | braces "^3.0.1" 1222 | picomatch "^2.2.3" 1223 | 1224 | minimatch@^3.0.4: 1225 | version "3.0.4" 1226 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1227 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1228 | dependencies: 1229 | brace-expansion "^1.1.7" 1230 | 1231 | ms@2.1.2: 1232 | version "2.1.2" 1233 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1234 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1235 | 1236 | natural-compare@^1.4.0: 1237 | version "1.4.0" 1238 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1239 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1240 | 1241 | once@^1.3.0: 1242 | version "1.4.0" 1243 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1244 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1245 | dependencies: 1246 | wrappy "1" 1247 | 1248 | optionator@^0.9.1: 1249 | version "0.9.1" 1250 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1251 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 1252 | dependencies: 1253 | deep-is "^0.1.3" 1254 | fast-levenshtein "^2.0.6" 1255 | levn "^0.4.1" 1256 | prelude-ls "^1.2.1" 1257 | type-check "^0.4.0" 1258 | word-wrap "^1.2.3" 1259 | 1260 | parent-module@^1.0.0: 1261 | version "1.0.1" 1262 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1263 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1264 | dependencies: 1265 | callsites "^3.0.0" 1266 | 1267 | path-is-absolute@^1.0.0: 1268 | version "1.0.1" 1269 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1270 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1271 | 1272 | path-key@^3.1.0: 1273 | version "3.1.1" 1274 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1275 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1276 | 1277 | path-parse@^1.0.6: 1278 | version "1.0.7" 1279 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1280 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1281 | 1282 | path-type@^4.0.0: 1283 | version "4.0.0" 1284 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1285 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1286 | 1287 | picomatch@^2.2.2, picomatch@^2.2.3: 1288 | version "2.3.0" 1289 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 1290 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 1291 | 1292 | prelude-ls@^1.2.1: 1293 | version "1.2.1" 1294 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1295 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1296 | 1297 | punycode@^2.1.0: 1298 | version "2.1.1" 1299 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1300 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1301 | 1302 | queue-microtask@^1.2.2: 1303 | version "1.2.3" 1304 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1305 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1306 | 1307 | regexpp@^3.2.0: 1308 | version "3.2.0" 1309 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" 1310 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== 1311 | 1312 | resolve-from@^4.0.0: 1313 | version "4.0.0" 1314 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1315 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1316 | 1317 | resolve@^1.17.0: 1318 | version "1.20.0" 1319 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 1320 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 1321 | dependencies: 1322 | is-core-module "^2.2.0" 1323 | path-parse "^1.0.6" 1324 | 1325 | reusify@^1.0.4: 1326 | version "1.0.4" 1327 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1328 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1329 | 1330 | rimraf@^3.0.2: 1331 | version "3.0.2" 1332 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1333 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1334 | dependencies: 1335 | glob "^7.1.3" 1336 | 1337 | rollup-plugin-copy@^3.4.0: 1338 | version "3.4.0" 1339 | resolved "https://registry.yarnpkg.com/rollup-plugin-copy/-/rollup-plugin-copy-3.4.0.tgz#f1228a3ffb66ffad8606e2f3fb7ff23141ed3286" 1340 | integrity sha512-rGUmYYsYsceRJRqLVlE9FivJMxJ7X6jDlP79fmFkL8sJs7VVMSVyA2yfyL+PGyO/vJs4A87hwhgVfz61njI+uQ== 1341 | dependencies: 1342 | "@types/fs-extra" "^8.0.1" 1343 | colorette "^1.1.0" 1344 | fs-extra "^8.1.0" 1345 | globby "10.0.1" 1346 | is-plain-object "^3.0.0" 1347 | 1348 | rollup@^2.66.0: 1349 | version "2.66.0" 1350 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.66.0.tgz#ee529ea15a20485d579039637fec3050bad03bbb" 1351 | integrity sha512-L6mKOkdyP8HK5kKJXaiWG7KZDumPJjuo1P+cfyHOJPNNTK3Moe7zCH5+fy7v8pVmHXtlxorzaBjvkBMB23s98g== 1352 | optionalDependencies: 1353 | fsevents "~2.3.2" 1354 | 1355 | run-parallel@^1.1.9: 1356 | version "1.2.0" 1357 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1358 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1359 | dependencies: 1360 | queue-microtask "^1.2.2" 1361 | 1362 | semver@^7.3.5: 1363 | version "7.3.5" 1364 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 1365 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 1366 | dependencies: 1367 | lru-cache "^6.0.0" 1368 | 1369 | shebang-command@^2.0.0: 1370 | version "2.0.0" 1371 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1372 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1373 | dependencies: 1374 | shebang-regex "^3.0.0" 1375 | 1376 | shebang-regex@^3.0.0: 1377 | version "3.0.0" 1378 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1379 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1380 | 1381 | slash@^3.0.0: 1382 | version "3.0.0" 1383 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1384 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1385 | 1386 | strip-ansi@^6.0.1: 1387 | version "6.0.1" 1388 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1389 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1390 | dependencies: 1391 | ansi-regex "^5.0.1" 1392 | 1393 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 1394 | version "3.1.1" 1395 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1396 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1397 | 1398 | supports-color@^7.1.0: 1399 | version "7.2.0" 1400 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1401 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1402 | dependencies: 1403 | has-flag "^4.0.0" 1404 | 1405 | text-table@^0.2.0: 1406 | version "0.2.0" 1407 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1408 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1409 | 1410 | to-regex-range@^5.0.1: 1411 | version "5.0.1" 1412 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1413 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1414 | dependencies: 1415 | is-number "^7.0.0" 1416 | 1417 | tslib@^1.8.1: 1418 | version "1.14.1" 1419 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 1420 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 1421 | 1422 | tslib@^2.3.1: 1423 | version "2.3.1" 1424 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 1425 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 1426 | 1427 | tsutils@^3.21.0: 1428 | version "3.21.0" 1429 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" 1430 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== 1431 | dependencies: 1432 | tslib "^1.8.1" 1433 | 1434 | type-check@^0.4.0, type-check@~0.4.0: 1435 | version "0.4.0" 1436 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1437 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1438 | dependencies: 1439 | prelude-ls "^1.2.1" 1440 | 1441 | type-fest@^0.20.2: 1442 | version "0.20.2" 1443 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1444 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1445 | 1446 | typescript@^4.5.2: 1447 | version "4.5.4" 1448 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" 1449 | integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== 1450 | 1451 | universalify@^0.1.0: 1452 | version "0.1.2" 1453 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 1454 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 1455 | 1456 | uri-js@^4.2.2: 1457 | version "4.4.1" 1458 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1459 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1460 | dependencies: 1461 | punycode "^2.1.0" 1462 | 1463 | v8-compile-cache@^2.0.3: 1464 | version "2.3.0" 1465 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 1466 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 1467 | 1468 | which@^2.0.1: 1469 | version "2.0.2" 1470 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1471 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1472 | dependencies: 1473 | isexe "^2.0.0" 1474 | 1475 | word-wrap@^1.2.3: 1476 | version "1.2.3" 1477 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1478 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 1479 | 1480 | wrappy@1: 1481 | version "1.0.2" 1482 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1483 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1484 | 1485 | yallist@^4.0.0: 1486 | version "4.0.0" 1487 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1488 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1489 | --------------------------------------------------------------------------------