├── webpack_vue2 ├── src │ ├── react_ui │ │ ├── index.ts │ │ └── Test.tsx │ ├── assets │ │ └── logo.png │ ├── main.js │ ├── shims-vue.d.ts │ ├── shims-tsx.d.ts │ ├── App.vue │ └── components │ │ └── HelloWorld.vue ├── public │ ├── favicon.ico │ └── index.html ├── .babelrc ├── tsconfig.json ├── package.json └── config │ └── webpack.config.dev.js ├── .prettierrc ├── .eslintignore ├── src ├── index.ts ├── utils │ └── isReactComponent.ts ├── resolvers │ ├── React.tsx │ └── Vue.ts ├── VuePlugin.ts └── wrappers │ ├── VueWrapper.tsx │ └── ReactWrapper.tsx ├── tsconfig.json ├── .eslintrc.json ├── README.md ├── package.json ├── .gitignore └── yarn.lock /webpack_vue2/src/react_ui/index.ts: -------------------------------------------------------------------------------- 1 | export { Test } from "./Test"; 2 | export const NAME = "REACT"; 3 | -------------------------------------------------------------------------------- /webpack_vue2/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tachyon-ops/react_vue_ts/HEAD/webpack_vue2/public/favicon.ico -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "tabWidth": 2, 4 | "semi": true, 5 | "singleQuote": false 6 | } -------------------------------------------------------------------------------- /webpack_vue2/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tachyon-ops/react_vue_ts/HEAD/webpack_vue2/src/assets/logo.png -------------------------------------------------------------------------------- /webpack_vue2/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | 4 | Vue.config.productionTip = false; 5 | 6 | new Vue({ 7 | render: (h) => h(App), 8 | }).$mount("#app"); 9 | -------------------------------------------------------------------------------- /webpack_vue2/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | // // Tell the TypeScript compiler that importing .vue files is OK 2 | // declare module "*.vue" { 3 | // import Vue from "vue"; 4 | // export default Vue; 5 | // } 6 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | # path/to/project/root/.eslintignore 2 | # /node_modules/* and /bower_components/* in the project root are ignored by default 3 | 4 | # Ignore built files except build/index.js 5 | dist/* 6 | #!build/index.js 7 | -------------------------------------------------------------------------------- /webpack_vue2/src/shims-tsx.d.ts: -------------------------------------------------------------------------------- 1 | // import Vue, { VNode } from "vue"; 2 | 3 | // declare global { 4 | // namespace JSX { 5 | // // tslint:disable no-empty-interface 6 | // interface Element extends VNode {} 7 | // // tslint:disable no-empty-interface 8 | // interface ElementClass extends Vue {} 9 | // interface IntrinsicElements { 10 | // [elem: string]: any; 11 | // } 12 | // } 13 | // } 14 | -------------------------------------------------------------------------------- /webpack_vue2/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | // https://babeljs.io/docs/babel-preset-react 4 | "@babel/preset-react", // needed for React.Fragments 5 | "@babel/preset-typescript", // needed for TypeScript 6 | [ 7 | "@babel/preset-env", // original 8 | { 9 | "modules": false 10 | } 11 | ] 12 | ], 13 | "plugins": [ 14 | "@babel/plugin-syntax-dynamic-import" 15 | ] 16 | } -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { ReactWrapper } from "./wrappers/ReactWrapper"; 2 | import { VueWrapper } from "./wrappers/VueWrapper"; 3 | import { VuePlugin } from "./VuePlugin"; 4 | import { 5 | VueInReact, 6 | babelReactResolver as __vueraReactResolver, 7 | } from "./resolvers/React"; 8 | 9 | import ReactInVue from "./resolvers/Vue"; 10 | 11 | export { 12 | ReactWrapper, 13 | VueWrapper, 14 | __vueraReactResolver, 15 | VuePlugin, 16 | VueInReact, 17 | ReactInVue, 18 | }; 19 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "ESNext", 4 | "moduleResolution": "node", 5 | "target": "ESNext", 6 | "lib": [ 7 | "es2017", 8 | "DOM", 9 | "DOM.Iterable", 10 | "ESNext" 11 | ], 12 | "declaration": true, 13 | "esModuleInterop": true, 14 | "outDir": "./dist", 15 | "jsx": "react-jsx", 16 | "types": [] 17 | }, 18 | "include": [ 19 | "src/**/*" 20 | ], 21 | "exclude": [ 22 | "node_modules", 23 | "example_vue2" 24 | ] 25 | } -------------------------------------------------------------------------------- /src/utils/isReactComponent.ts: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | 3 | export default function isReactComponent(component: any) { 4 | if (typeof component === "object" && !isReactForwardReference(component)) { 5 | return false; 6 | } 7 | 8 | return !( 9 | typeof component === "function" && 10 | component.prototype && 11 | ((component.prototype.constructor.super && 12 | component.prototype.constructor.super.isVue) || 13 | component.prototype instanceof Vue) 14 | ); 15 | } 16 | 17 | function isReactForwardReference(component: any) { 18 | return ( 19 | component.$$typeof && 20 | component.$$typeof.toString() === "Symbol(react.forward_ref)" 21 | ); 22 | } 23 | -------------------------------------------------------------------------------- /webpack_vue2/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /webpack_vue2/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "jsx": "react-jsx", 4 | "target": "esnext", 5 | "module": "esnext", 6 | "moduleResolution": "node", 7 | "allowSyntheticDefaultImports": true, 8 | "resolveJsonModule": true, 9 | "strict": true, 10 | "plugins": [ 11 | { 12 | "name": "typescript-plugin-css-modules" 13 | } 14 | ], 15 | "baseUrl": "./src", 16 | "paths": { 17 | "react_ui/*": [ 18 | "./react_ui/*" 19 | ] 20 | } 21 | }, 22 | "include": [ 23 | "src/**/*" 24 | ], 25 | "exclude": [ 26 | "node_modules" 27 | ] 28 | } -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es2021": true 5 | }, 6 | "extends": [ 7 | "eslint:recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ], 10 | "overrides": [ 11 | ], 12 | "parser": "@typescript-eslint/parser", 13 | "parserOptions": { 14 | "ecmaVersion": "latest", 15 | "sourceType": "module" 16 | }, 17 | "plugins": [ 18 | "@typescript-eslint" 19 | ], 20 | "ignorePatterns": [ 21 | "dist/*" 22 | ], 23 | "rules": { 24 | "indent": [ 25 | "error", 26 | 4 27 | ], 28 | "linebreak-style": [ 29 | "error", 30 | "unix" 31 | ], 32 | "quotes": [ 33 | "error", 34 | "double" 35 | ], 36 | "semi": [ 37 | "error", 38 | "always" 39 | ] 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/resolvers/React.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { VueWrapper as VueWrapperRaw } from "../wrappers/VueWrapper"; 3 | import isReactComponent from "../utils/isReactComponent"; 4 | 5 | const VueWrapper = VueWrapperRaw as unknown as () => JSX.Element; 6 | 7 | export function VueInReact(component: any) { 8 | return isReactComponent(component) 9 | ? component 10 | : (props: any) => ; 11 | } 12 | 13 | /** 14 | * This function gets imported by the babel plugin. It wraps a suspected React element and, if it 15 | * isn't a valid React element, wraps it into a Vue container. 16 | */ 17 | export function babelReactResolver(component: any, props: any, children: any) { 18 | return isReactComponent(component) 19 | ? React.createElement(component, props, children) 20 | : React.createElement( 21 | VueWrapper, 22 | Object.assign({ component }, props), 23 | children 24 | ); 25 | } 26 | -------------------------------------------------------------------------------- /src/resolvers/Vue.ts: -------------------------------------------------------------------------------- 1 | import { AsyncComponent, Component } from "vue"; 2 | import { ReactWrapper } from "../wrappers/ReactWrapper"; 3 | 4 | export default function VueResolver(component: (props: T) => any) { 5 | return { 6 | components: { ReactWrapper }, 7 | props: ["passedProps"], 8 | inheritAttrs: false, 9 | render(createElement: Vue.CreateElement) { 10 | return createElement( 11 | "react-wrapper", 12 | { 13 | props: { 14 | component, 15 | passedProps: (this as any).$props.passedProps, 16 | }, 17 | attrs: (this as any).$attrs, 18 | on: (this as any).$listeners, 19 | }, 20 | (this as any).$slots.default 21 | ); 22 | }, 23 | methods: { 24 | reactRef() { 25 | return this.$children[0].reactComponentRef.reactRef.current; 26 | } 27 | }, 28 | } as unknown as 29 | | Component 30 | | AsyncComponent; 31 | } 32 | -------------------------------------------------------------------------------- /webpack_vue2/src/App.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 31 | 32 | 42 | -------------------------------------------------------------------------------- /webpack_vue2/src/react_ui/Test.tsx: -------------------------------------------------------------------------------- 1 | import React, { PropsWithChildren, useEffect, useState } from "react"; 2 | 3 | interface FooProps extends PropsWithChildren { 4 | foo: string; 5 | } 6 | 7 | const TestA: React.FC = () => <>TestA; 8 | const TestB = () =>

TestB

; 9 | 10 | function Counter(props: FooProps) { 11 | const [seconds, setSeconds] = useState(0); 12 | 13 | useEffect(() => { 14 | const interval = setInterval(() => { 15 | setSeconds((seconds) => seconds + 1); 16 | }, 1000); 17 | return () => clearInterval(interval); 18 | }, []); 19 | 20 | return <>{` ${props.foo} counter: ${seconds}`}; 21 | } 22 | 23 | export const Test: React.FC = ({ foo, children }) => ( 24 |
33 | Hello world from react. Foo: {foo} 34 |
35 | 36 | 37 |
38 | 39 | {children} 40 |
41 | ); 42 | -------------------------------------------------------------------------------- /webpack_vue2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webpack_vue2", 3 | "version": "1.0.0", 4 | "description": "", 5 | "scripts": { 6 | "build": "webpack --config ./config/webpack.config.dev.js", 7 | "dev": "webpack-dev-server --config ./config/webpack.config.dev.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "react": "^18.2.0", 14 | "react-dom": "^18.2.0", 15 | "vue": "^2", 16 | "vue-loader": "^15", 17 | "vuera-ts": "../." 18 | }, 19 | "devDependencies": { 20 | "@babel/core": "^7.21.3", 21 | "@babel/plugin-syntax-dynamic-import": "^7.8.3", 22 | "@babel/preset-env": "^7.20.2", 23 | "@babel/preset-react": "^7.18.6", 24 | "@babel/preset-typescript": "^7.21.0", 25 | "babel-loader": "^9.1.2", 26 | "css-loader": "^6.7.3", 27 | "file-loader": "^6.2.0", 28 | "html-webpack-plugin": "^5.5.0", 29 | "sass": "^1.59.3", 30 | "sass-loader": "^13.2.1", 31 | "style-loader": "^3.3.2", 32 | "typescript-plugin-css-modules": "^5.0.0", 33 | "vue-template-compiler": "^2.7.14", 34 | "webpack": "^5.76.3", 35 | "webpack-cli": "^5.0.1", 36 | "webpack-dev-server": "^4.13.1" 37 | } 38 | } -------------------------------------------------------------------------------- /src/VuePlugin.ts: -------------------------------------------------------------------------------- 1 | import _Vue from "vue"; 2 | 3 | import isReactComponent from "./utils/isReactComponent"; 4 | import VueResolver from "./resolvers/Vue"; 5 | 6 | /** 7 | * This mixin automatically wraps all React components into Vue. 8 | */ 9 | export const VuePlugin = { 10 | install(Vue: typeof _Vue, options: any) { 11 | console.log("Installing Vuera VuePlugin"); 12 | /** 13 | * We define a custom merging strategy for the `components` field. This strategy really just 14 | * wraps all the React components while leaving Vue components as is. 15 | */ 16 | const originalComponentsMergeStrategy = 17 | Vue.config.optionMergeStrategies.components; 18 | 19 | Vue.config.optionMergeStrategies.components = function ( 20 | parent: { [k: string]: Vue.Component }, 21 | ...args: any 22 | ) { 23 | const mergedValue = originalComponentsMergeStrategy(parent, ...args); 24 | 25 | const wrappedComponents = mergedValue 26 | ? Object.entries(mergedValue).reduce( 27 | (acc, [k, v]) => ({ 28 | ...acc, 29 | [k]: isReactComponent(v) ? VueResolver(v as any) : v, 30 | }), 31 | {} 32 | ) 33 | : mergedValue; 34 | return Object.assign(mergedValue, wrappedComponents) as { 35 | [k: string]: Vue.Component; 36 | }; 37 | }; 38 | Vue.prototype.constructor.isVue = true; 39 | }, 40 | }; 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vuera in TypeScript 2 | 3 | This is the `vuera` lib from `akxcv` (amazing effort man!). Check it [Vuera GH](https://github.com/akxcv/vuera). 4 | 5 | Due to inactivity in `vuera` part, I've decided to move forward with `vuera-ts` and maintain it for my professional work. 6 | 7 | ## Usage 8 | 9 | Check `./webpack_vue2` example. I prefer to control myself how files are loaded, so the project is a simple vue2 project build from scratch using `webpack v5` . 10 | In a nutshell: 11 | 12 | ### Install 13 | 14 | `yarn add vuera-ts` 15 | 16 | ### Usage 17 | 18 | ```tsx 19 | import { ReactInVue } from "vuera-ts"; 20 | import { TestComp } from "./react_ui"; 21 | 22 | const TestCompInVue = ReactInVue(TestComp); 23 | ``` 24 | 25 | Then you can use `TestCompInVue` in your Vue component. Register it in `Vue.components` then add it to your `template` like so: 26 | 27 | ```jsx 28 | 29 | This is a children from Vue - it updates on Hot Reload! :D 30 | 31 | ``` 32 | 33 | ## Library specific 34 | 35 | ### Clone the project 36 | 37 | `git clone git@github.com:tachyon-ops/react_vue_ts.git` 38 | 39 | ### Install lib 40 | 41 | `yarn` 42 | 43 | ### Build 44 | 45 | `yarn build` 46 | 47 | ### Publish 48 | 49 | `yarn publish` 50 | 51 | ## TODO 52 | 53 | * [ ] Setup `webpack_vue3` example 54 | * [ ] Setup `webpack_react` example 55 | * [ ] Check if Vue in react works (I am not very motivated to do it) 56 | 57 | ## Contributors 58 | 59 | I really enjoy people recognizing others. Therefore, whoever contributes to our project will have a mention here :) 60 | I am very grateful! 61 | 62 | * [Juan Lago @juanparati](https://github.com/juanparati) 63 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vuera-ts", 3 | "version": "1.0.7", 4 | "description": "Vuera lib migrated to TS", 5 | "main": "dist/index.js", 6 | "types": "dist/index.d.ts", 7 | "files": [ 8 | "/dist" 9 | ], 10 | "scripts": { 11 | "build": "tsc" 12 | }, 13 | "release": { 14 | "branches": [ 15 | "main" 16 | ] 17 | }, 18 | "publishConfig": { 19 | "access": "public" 20 | }, 21 | "repository": { 22 | "type": "git", 23 | "url": "https://github.com/tachyon-ops/react_vue_ts.git" 24 | }, 25 | "keywords": [ 26 | "npm", 27 | "javascript", 28 | "typescript", 29 | "esm", 30 | "cjs", 31 | "nodejs", 32 | "commonjs", 33 | "ecmascript", 34 | "react", 35 | "vue", 36 | "react in vue", 37 | "vue in react" 38 | ], 39 | "author": "nmpribeiro", 40 | "license": "MIT", 41 | "bugs": { 42 | "url": "https://github.com/tachyon-ops/react_vue_ts/issues" 43 | }, 44 | "homepage": "https://github.com/tachyon-ops/react_vue_ts#readme", 45 | "peerDependencies": { 46 | "react": ">=18", 47 | "react-dom": ">=18", 48 | "vue": ">= 2.6" 49 | }, 50 | "devDependencies": { 51 | "@types/react": "^18", 52 | "@types/react-dom": "^18", 53 | "@types/uuid": "^9.0.1", 54 | "@typescript-eslint/eslint-plugin": "^5.56.0", 55 | "@typescript-eslint/parser": "^5.56.0", 56 | "eslint": "^8.36.0", 57 | "typescript": "^5.0.2", 58 | "uuid": "^9.0.0", 59 | "vue": "2.5", 60 | "webpack": "^5.76.3" 61 | }, 62 | "dependencies": {} 63 | } 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* 131 | -------------------------------------------------------------------------------- /webpack_vue2/config/webpack.config.dev.js: -------------------------------------------------------------------------------- 1 | const webpack = require("webpack"); 2 | const HtmlWebpackPlugin = require("html-webpack-plugin"); 3 | const path = require("path"); 4 | const { VueLoaderPlugin } = require("vue-loader"); 5 | 6 | module.exports = { 7 | mode: "development", 8 | // The application entry point 9 | entry: "./src/main.js", 10 | 11 | resolve: { 12 | // Add `.ts` and `.tsx` as a resolvable extension. 13 | extensions: [".vue", ".ts", ".tsx", ".js", ".css", ".scss"], 14 | alias: { 15 | react_ui: path.resolve(__dirname, "src/react_ui"), 16 | }, 17 | }, 18 | 19 | module: { 20 | rules: [ 21 | { 22 | test: /\.vue$/, 23 | use: "vue-loader", 24 | exclude: /node_modules/, 25 | }, 26 | 27 | //use babel-loader to transpile js files 28 | { 29 | test: /\.js$/, 30 | loader: "babel-loader", 31 | exclude: /node_modules/, 32 | }, 33 | 34 | { 35 | test: /\.(jsx|tsx)?$/, 36 | loader: "babel-loader", 37 | exclude: /node_modules/, 38 | }, 39 | { 40 | test: /\.ts?$/, 41 | loader: "babel-loader", 42 | exclude: /node_modules/, 43 | // options: { 44 | // // Tell to ts-loader: if you check .vue file extension, handle it like a ts file (vue3 TS) 45 | // appendTsSuffixTo: [/\.vue$/], 46 | // }, 47 | }, 48 | 49 | // CSS 50 | { 51 | test: /\.scss$/, 52 | use: ["style-loader", "css-loader", "sass-loader"], 53 | }, 54 | { 55 | test: /\.css$/, 56 | use: ["style-loader", "css-loader"], 57 | }, 58 | 59 | // ASSETS 60 | // https://stackoverflow.com/a/37673142/5954864 61 | { 62 | test: /\.(eot|ttf|woff|woff2|jpe?g|png|gif|svg)$/i, 63 | use: [ 64 | { 65 | loader: "file-loader", 66 | options: { 67 | esModule: false, 68 | }, 69 | }, 70 | ], 71 | }, 72 | ], 73 | }, 74 | // Where to compile the bundle 75 | // By default the output directory is `dist` 76 | output: { 77 | path: path.join(__dirname, "../dist"), 78 | filename: "bundle.js", 79 | }, 80 | devServer: { 81 | static: { 82 | directory: path.join(__dirname, "../public"), 83 | }, 84 | compress: true, 85 | port: 3000, 86 | watchFiles: ["../src/*.html"], 87 | hot: true, 88 | }, 89 | plugins: [ 90 | // make sure to include the plugin for the magic 91 | new VueLoaderPlugin(), 92 | new HtmlWebpackPlugin({ 93 | template: path.join(__dirname, "..", "public", "index.html"), 94 | filename: "index.html", 95 | BASE_URL: `${process.env.API_URL || "/"}`, 96 | }), 97 | ], 98 | }; 99 | -------------------------------------------------------------------------------- /webpack_vue2/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 96 | 97 | 105 | 106 | 107 | 123 | -------------------------------------------------------------------------------- /src/wrappers/VueWrapper.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Vue from "vue"; 3 | 4 | import { ReactWrapper } from "./ReactWrapper"; 5 | 6 | const VUE_COMPONENT_NAME = "vuera-internal-component-name"; 7 | 8 | const wrapReactChildren = (createElement: any, children: any) => 9 | createElement("vuera-internal-react-wrapper", { 10 | props: { 11 | component: () =>
{children}
, 12 | }, 13 | }); 14 | 15 | export class VueWrapper extends React.Component { 16 | constructor(props: { component: any }) { 17 | super(props); 18 | 19 | /** 20 | * We have to track the current Vue component so that we can reliably catch updates to the 21 | * `component` prop. 22 | */ 23 | (this as any).currentVueComponent = props.component; 24 | 25 | /** 26 | * Modify createVueInstance function to pass this binding correctly. Doing this in the 27 | * constructor to avoid instantiating functions in render. 28 | */ 29 | const createVueInstance = this.createVueInstance; 30 | const self = this; 31 | (this as any).createVueInstance = function ( 32 | element: any, 33 | component: any, 34 | prevComponent: any 35 | ) { 36 | createVueInstance(element, self, component, prevComponent); 37 | }; 38 | } 39 | 40 | componentWillReceiveProps(nextProps: any) { 41 | const { component, ...props } = nextProps; 42 | 43 | if ((this as any).currentVueComponent !== component) { 44 | this.updateVueComponent((this.props as any).component, component); 45 | } 46 | /** 47 | * NOTE: we're not comparing this.props and nextProps here, because I didn't want to write a 48 | * function for deep object comparison. I don't know if this hurts performance a lot, maybe 49 | * we do need to compare those objects. 50 | */ 51 | Object.assign((this as any).vueInstance.$data, props); 52 | } 53 | 54 | componentWillUnmount() { 55 | (this as any).vueInstance.$destroy(); 56 | } 57 | 58 | /** 59 | * Creates and mounts the Vue instance. 60 | * NOTE: since we need to access the current instance of VueContainer, as well as the Vue instance 61 | * inside of the Vue constructor, we cannot bind this function to VueContainer, and we need to 62 | * pass VueContainer's binding explicitly. 63 | * @param {HTMLElement} targetElement - element to attact the Vue instance to 64 | * @param {ReactInstance} reactThisBinding - current instance of VueContainer 65 | */ 66 | createVueInstance( 67 | targetElement: any, 68 | reactThisBinding: any, 69 | _component?: any, 70 | _prevComponent?: any 71 | ) { 72 | const { component, on, ...props } = reactThisBinding.props; 73 | 74 | // `this` refers to Vue instance in the constructor 75 | reactThisBinding.vueInstance = new Vue({ 76 | el: targetElement, 77 | data: props, 78 | render(createElement) { 79 | return createElement( 80 | VUE_COMPONENT_NAME, 81 | { 82 | props: this.$data, 83 | on, 84 | }, 85 | [wrapReactChildren(createElement, this.children)] 86 | ); 87 | }, 88 | components: { 89 | [VUE_COMPONENT_NAME]: component, 90 | "vuera-internal-react-wrapper": ReactWrapper, 91 | }, 92 | }); 93 | } 94 | 95 | updateVueComponent(_prevComponent: any, nextComponent: any) { 96 | (this as any).currentVueComponent = nextComponent; 97 | 98 | /** 99 | * Replace the component in the Vue instance and update it. 100 | */ 101 | (this as any).vueInstance.$options.components[VUE_COMPONENT_NAME] = 102 | nextComponent; 103 | (this as any).vueInstance.$forceUpdate(); 104 | } 105 | 106 | render() { 107 | return
; 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /src/wrappers/ReactWrapper.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Root, createRoot } from "react-dom/client"; 3 | import { VueWrapper } from "./VueWrapper"; 4 | import { v4 } from "uuid"; 5 | 6 | const makeReactContainer = (Component: any) => 7 | class ReactInVue extends React.Component { 8 | 9 | public reactRef : React.RefObject; 10 | 11 | static displayName = `ReactInVue${ 12 | Component.displayName || Component.name || "Component" 13 | }`; 14 | 15 | constructor(props: any) { 16 | super(props); 17 | 18 | /** 19 | * Attach internal reference, so calls to child methods are allowed. 20 | */ 21 | this.reactRef = React.createRef(); 22 | 23 | /** 24 | * We create a stateful component in order to attach a ref on it. We will use that ref to 25 | * update component's state, which seems better than re-rendering the whole thing with 26 | * ReactDOM. 27 | */ 28 | (this as any).state = { ...props }; 29 | } 30 | 31 | wrapVueChildren(children: any) { 32 | // console.log("wrapVueChildren: ", children); 33 | if (children) 34 | return { 35 | render: (createElement: any) => createElement("div", children), 36 | }; 37 | return null; 38 | } 39 | 40 | render() { 41 | const { 42 | children, 43 | // Vue attaches an event handler, but it is missing an event name, so 44 | // it ends up using an empty string. Prevent passing an empty string 45 | // named prop to React. 46 | "": _invoker, 47 | ...rest 48 | } = (this as any).state; 49 | const wrappedChildren = this.wrapVueChildren(children); 50 | 51 | const VueWrapperRender = VueWrapper as unknown as (props: { 52 | component: any; 53 | }) => JSX.Element; 54 | 55 | if ("ReactInVueTestAA" === ReactInVue.displayName) { 56 | // console.log("THIS IS IT!", Component.render); 57 | } 58 | 59 | // console.log("wrappedChildren: ", wrappedChildren); 60 | 61 | return ( 62 | 63 | {wrappedChildren && } 64 | 65 | ); 66 | } 67 | } as unknown as () => JSX.Element; 68 | 69 | const RootMap: Map = new Map(); 70 | 71 | export const ReactWrapper = { 72 | name: "ReactInVueRawVueComp", 73 | props: ["component", "passedProps"], 74 | render(createElement: any) { 75 | (this as any).createElement = createElement; // save for later 76 | (this as any).uuid = v4(); 77 | return createElement("div", { ref: "react" }); 78 | }, 79 | methods: { 80 | mountReactComponent(comp: any) { 81 | const s = this as any; 82 | // console.log("before creating NewComp"); 83 | // console.log("Name: ", comp.name || comp.displayName); 84 | // console.log(comp); 85 | 86 | const children = 87 | s.$slots.default !== undefined ? { children: s.$slots.default } : {}; 88 | 89 | // if (!comp.functional) { 90 | const Component = makeReactContainer(comp); 91 | const NewComp = (props: any) => ( 92 | (s.reactComponentRef = ref)} /> 93 | ); 94 | 95 | const root = createRoot(s.$refs.react); 96 | root.render( 97 | 103 | ); 104 | RootMap.set((this as any).uuid, root); 105 | }, 106 | }, 107 | mounted() { 108 | (this as any).mountReactComponent((this as any).$props.component); 109 | }, 110 | beforeDestroy() { 111 | // ReactDOM.unmountComponentAtNode((this as any).$refs.react); 112 | const root = RootMap.get((this as any).uuid); 113 | if (root) root.unmount(); 114 | }, 115 | updated() { 116 | /** 117 | * AFAIK, this is the only way to update children. It doesn't seem to be possible to watch 118 | * `$slots` or `$children`. 119 | */ 120 | if ((this as any).$slots.default !== undefined) { 121 | (this as any).reactComponentRef.setState({ 122 | children: (this as any).$slots.default, 123 | }); 124 | } else { 125 | (this as any).reactComponentRef.setState({ children: null }); 126 | } 127 | }, 128 | reactRef() : any { 129 | // TODO: any reference to the inner React component will break the type (user could force it himself) 130 | // but there might be a way to make it generic, since we do receive the component as a function argument 131 | return (this as any).reactComponentRef; 132 | }, 133 | inheritAttrs: false, 134 | watch: { 135 | $attrs: { 136 | handler() { 137 | (this as any).reactComponentRef.setState({ 138 | ...(this as any).$attrs, 139 | }); 140 | }, 141 | deep: true, 142 | }, 143 | "$props.component": { 144 | handler(newValue: any) { 145 | (this as any).mountReactComponent(newValue); 146 | }, 147 | }, 148 | $listeners: { 149 | handler() { 150 | (this as any).reactComponentRef.setState({ 151 | ...(this as any).$listeners, 152 | }); 153 | }, 154 | deep: true, 155 | }, 156 | "$props.passedProps": { 157 | handler() { 158 | (this as any).reactComponentRef.setState({ 159 | ...(this as any).$props.passedProps, 160 | }); 161 | }, 162 | deep: true, 163 | }, 164 | }, 165 | }; 166 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@eslint-community/eslint-utils@^4.2.0": 6 | version "4.3.0" 7 | resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz" 8 | integrity sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA== 9 | dependencies: 10 | eslint-visitor-keys "^3.3.0" 11 | 12 | "@eslint-community/regexpp@^4.4.0": 13 | version "4.4.0" 14 | resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz" 15 | integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== 16 | 17 | "@eslint/eslintrc@^2.0.1": 18 | version "2.0.1" 19 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d" 20 | integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw== 21 | dependencies: 22 | ajv "^6.12.4" 23 | debug "^4.3.2" 24 | espree "^9.5.0" 25 | globals "^13.19.0" 26 | ignore "^5.2.0" 27 | import-fresh "^3.2.1" 28 | js-yaml "^4.1.0" 29 | minimatch "^3.1.2" 30 | strip-json-comments "^3.1.1" 31 | 32 | "@eslint/js@8.36.0": 33 | version "8.36.0" 34 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.36.0.tgz#9837f768c03a1e4a30bd304a64fb8844f0e72efe" 35 | integrity sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg== 36 | 37 | "@humanwhocodes/config-array@^0.11.8": 38 | version "0.11.8" 39 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" 40 | integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== 41 | dependencies: 42 | "@humanwhocodes/object-schema" "^1.2.1" 43 | debug "^4.1.1" 44 | minimatch "^3.0.5" 45 | 46 | "@humanwhocodes/module-importer@^1.0.1": 47 | version "1.0.1" 48 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" 49 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 50 | 51 | "@humanwhocodes/object-schema@^1.2.1": 52 | version "1.2.1" 53 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 54 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 55 | 56 | "@jridgewell/gen-mapping@^0.3.0": 57 | version "0.3.2" 58 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 59 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 60 | dependencies: 61 | "@jridgewell/set-array" "^1.0.1" 62 | "@jridgewell/sourcemap-codec" "^1.4.10" 63 | "@jridgewell/trace-mapping" "^0.3.9" 64 | 65 | "@jridgewell/resolve-uri@3.1.0": 66 | version "3.1.0" 67 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 68 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 69 | 70 | "@jridgewell/set-array@^1.0.1": 71 | version "1.1.2" 72 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 73 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 74 | 75 | "@jridgewell/source-map@^0.3.2": 76 | version "0.3.2" 77 | resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" 78 | integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== 79 | dependencies: 80 | "@jridgewell/gen-mapping" "^0.3.0" 81 | "@jridgewell/trace-mapping" "^0.3.9" 82 | 83 | "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": 84 | version "1.4.14" 85 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 86 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 87 | 88 | "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": 89 | version "0.3.17" 90 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" 91 | integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== 92 | dependencies: 93 | "@jridgewell/resolve-uri" "3.1.0" 94 | "@jridgewell/sourcemap-codec" "1.4.14" 95 | 96 | "@nodelib/fs.scandir@2.1.5": 97 | version "2.1.5" 98 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" 99 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 100 | dependencies: 101 | "@nodelib/fs.stat" "2.0.5" 102 | run-parallel "^1.1.9" 103 | 104 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 105 | version "2.0.5" 106 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" 107 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 108 | 109 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": 110 | version "1.2.8" 111 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 112 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 113 | dependencies: 114 | "@nodelib/fs.scandir" "2.1.5" 115 | fastq "^1.6.0" 116 | 117 | "@types/eslint-scope@^3.7.3": 118 | version "3.7.4" 119 | resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" 120 | integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== 121 | dependencies: 122 | "@types/eslint" "*" 123 | "@types/estree" "*" 124 | 125 | "@types/eslint@*": 126 | version "8.21.3" 127 | resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.3.tgz#5794b3911f0f19e34e3a272c49cbdf48d6f543f2" 128 | integrity sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw== 129 | dependencies: 130 | "@types/estree" "*" 131 | "@types/json-schema" "*" 132 | 133 | "@types/estree@*": 134 | version "1.0.0" 135 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" 136 | integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== 137 | 138 | "@types/estree@^0.0.51": 139 | version "0.0.51" 140 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" 141 | integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== 142 | 143 | "@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": 144 | version "7.0.11" 145 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" 146 | integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== 147 | 148 | "@types/node@*": 149 | version "18.15.5" 150 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.5.tgz#3af577099a99c61479149b716183e70b5239324a" 151 | integrity sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew== 152 | 153 | "@types/prop-types@*": 154 | version "15.7.5" 155 | resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" 156 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 157 | 158 | "@types/react-dom@^18": 159 | version "18.0.11" 160 | resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz" 161 | integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== 162 | dependencies: 163 | "@types/react" "*" 164 | 165 | "@types/react@*", "@types/react@^18": 166 | version "18.0.28" 167 | resolved "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz" 168 | integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew== 169 | dependencies: 170 | "@types/prop-types" "*" 171 | "@types/scheduler" "*" 172 | csstype "^3.0.2" 173 | 174 | "@types/scheduler@*": 175 | version "0.16.2" 176 | resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" 177 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 178 | 179 | "@types/semver@^7.3.12": 180 | version "7.3.13" 181 | resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" 182 | integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== 183 | 184 | "@types/uuid@^9.0.1": 185 | version "9.0.1" 186 | resolved "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.1.tgz" 187 | integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA== 188 | 189 | "@typescript-eslint/eslint-plugin@^5.56.0": 190 | version "5.56.0" 191 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.56.0.tgz#e4fbb4d6dd8dab3e733485c1a44a02189ae75364" 192 | integrity sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg== 193 | dependencies: 194 | "@eslint-community/regexpp" "^4.4.0" 195 | "@typescript-eslint/scope-manager" "5.56.0" 196 | "@typescript-eslint/type-utils" "5.56.0" 197 | "@typescript-eslint/utils" "5.56.0" 198 | debug "^4.3.4" 199 | grapheme-splitter "^1.0.4" 200 | ignore "^5.2.0" 201 | natural-compare-lite "^1.4.0" 202 | semver "^7.3.7" 203 | tsutils "^3.21.0" 204 | 205 | "@typescript-eslint/parser@^5.56.0": 206 | version "5.56.0" 207 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.56.0.tgz#42eafb44b639ef1dbd54a3dbe628c446ca753ea6" 208 | integrity sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg== 209 | dependencies: 210 | "@typescript-eslint/scope-manager" "5.56.0" 211 | "@typescript-eslint/types" "5.56.0" 212 | "@typescript-eslint/typescript-estree" "5.56.0" 213 | debug "^4.3.4" 214 | 215 | "@typescript-eslint/scope-manager@5.56.0": 216 | version "5.56.0" 217 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.56.0.tgz#62b4055088903b5254fa20403010e1c16d6ab725" 218 | integrity sha512-jGYKyt+iBakD0SA5Ww8vFqGpoV2asSjwt60Gl6YcO8ksQ8s2HlUEyHBMSa38bdLopYqGf7EYQMUIGdT/Luw+sw== 219 | dependencies: 220 | "@typescript-eslint/types" "5.56.0" 221 | "@typescript-eslint/visitor-keys" "5.56.0" 222 | 223 | "@typescript-eslint/type-utils@5.56.0": 224 | version "5.56.0" 225 | resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.56.0.tgz#e6f004a072f09c42e263dc50e98c70b41a509685" 226 | integrity sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A== 227 | dependencies: 228 | "@typescript-eslint/typescript-estree" "5.56.0" 229 | "@typescript-eslint/utils" "5.56.0" 230 | debug "^4.3.4" 231 | tsutils "^3.21.0" 232 | 233 | "@typescript-eslint/types@5.56.0": 234 | version "5.56.0" 235 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.56.0.tgz#b03f0bfd6fa2afff4e67c5795930aff398cbd834" 236 | integrity sha512-JyAzbTJcIyhuUhogmiu+t79AkdnqgPUEsxMTMc/dCZczGMJQh1MK2wgrju++yMN6AWroVAy2jxyPcPr3SWCq5w== 237 | 238 | "@typescript-eslint/typescript-estree@5.56.0": 239 | version "5.56.0" 240 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.56.0.tgz#48342aa2344649a03321e74cab9ccecb9af086c3" 241 | integrity sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg== 242 | dependencies: 243 | "@typescript-eslint/types" "5.56.0" 244 | "@typescript-eslint/visitor-keys" "5.56.0" 245 | debug "^4.3.4" 246 | globby "^11.1.0" 247 | is-glob "^4.0.3" 248 | semver "^7.3.7" 249 | tsutils "^3.21.0" 250 | 251 | "@typescript-eslint/utils@5.56.0": 252 | version "5.56.0" 253 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.56.0.tgz#db64705409b9a15546053fb4deb2888b37df1f41" 254 | integrity sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA== 255 | dependencies: 256 | "@eslint-community/eslint-utils" "^4.2.0" 257 | "@types/json-schema" "^7.0.9" 258 | "@types/semver" "^7.3.12" 259 | "@typescript-eslint/scope-manager" "5.56.0" 260 | "@typescript-eslint/types" "5.56.0" 261 | "@typescript-eslint/typescript-estree" "5.56.0" 262 | eslint-scope "^5.1.1" 263 | semver "^7.3.7" 264 | 265 | "@typescript-eslint/visitor-keys@5.56.0": 266 | version "5.56.0" 267 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.56.0.tgz#f19eb297d972417eb13cb69b35b3213e13cc214f" 268 | integrity sha512-1mFdED7u5bZpX6Xxf5N9U2c18sb+8EvU3tyOIj6LQZ5OOvnmj8BVeNNP603OFPm5KkS1a7IvCIcwrdHXaEMG/Q== 269 | dependencies: 270 | "@typescript-eslint/types" "5.56.0" 271 | eslint-visitor-keys "^3.3.0" 272 | 273 | "@webassemblyjs/ast@1.11.1": 274 | version "1.11.1" 275 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" 276 | integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== 277 | dependencies: 278 | "@webassemblyjs/helper-numbers" "1.11.1" 279 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 280 | 281 | "@webassemblyjs/floating-point-hex-parser@1.11.1": 282 | version "1.11.1" 283 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" 284 | integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== 285 | 286 | "@webassemblyjs/helper-api-error@1.11.1": 287 | version "1.11.1" 288 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" 289 | integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== 290 | 291 | "@webassemblyjs/helper-buffer@1.11.1": 292 | version "1.11.1" 293 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" 294 | integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== 295 | 296 | "@webassemblyjs/helper-numbers@1.11.1": 297 | version "1.11.1" 298 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" 299 | integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== 300 | dependencies: 301 | "@webassemblyjs/floating-point-hex-parser" "1.11.1" 302 | "@webassemblyjs/helper-api-error" "1.11.1" 303 | "@xtuc/long" "4.2.2" 304 | 305 | "@webassemblyjs/helper-wasm-bytecode@1.11.1": 306 | version "1.11.1" 307 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" 308 | integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== 309 | 310 | "@webassemblyjs/helper-wasm-section@1.11.1": 311 | version "1.11.1" 312 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" 313 | integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== 314 | dependencies: 315 | "@webassemblyjs/ast" "1.11.1" 316 | "@webassemblyjs/helper-buffer" "1.11.1" 317 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 318 | "@webassemblyjs/wasm-gen" "1.11.1" 319 | 320 | "@webassemblyjs/ieee754@1.11.1": 321 | version "1.11.1" 322 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" 323 | integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== 324 | dependencies: 325 | "@xtuc/ieee754" "^1.2.0" 326 | 327 | "@webassemblyjs/leb128@1.11.1": 328 | version "1.11.1" 329 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" 330 | integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== 331 | dependencies: 332 | "@xtuc/long" "4.2.2" 333 | 334 | "@webassemblyjs/utf8@1.11.1": 335 | version "1.11.1" 336 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" 337 | integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== 338 | 339 | "@webassemblyjs/wasm-edit@1.11.1": 340 | version "1.11.1" 341 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" 342 | integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== 343 | dependencies: 344 | "@webassemblyjs/ast" "1.11.1" 345 | "@webassemblyjs/helper-buffer" "1.11.1" 346 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 347 | "@webassemblyjs/helper-wasm-section" "1.11.1" 348 | "@webassemblyjs/wasm-gen" "1.11.1" 349 | "@webassemblyjs/wasm-opt" "1.11.1" 350 | "@webassemblyjs/wasm-parser" "1.11.1" 351 | "@webassemblyjs/wast-printer" "1.11.1" 352 | 353 | "@webassemblyjs/wasm-gen@1.11.1": 354 | version "1.11.1" 355 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" 356 | integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== 357 | dependencies: 358 | "@webassemblyjs/ast" "1.11.1" 359 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 360 | "@webassemblyjs/ieee754" "1.11.1" 361 | "@webassemblyjs/leb128" "1.11.1" 362 | "@webassemblyjs/utf8" "1.11.1" 363 | 364 | "@webassemblyjs/wasm-opt@1.11.1": 365 | version "1.11.1" 366 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" 367 | integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== 368 | dependencies: 369 | "@webassemblyjs/ast" "1.11.1" 370 | "@webassemblyjs/helper-buffer" "1.11.1" 371 | "@webassemblyjs/wasm-gen" "1.11.1" 372 | "@webassemblyjs/wasm-parser" "1.11.1" 373 | 374 | "@webassemblyjs/wasm-parser@1.11.1": 375 | version "1.11.1" 376 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" 377 | integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== 378 | dependencies: 379 | "@webassemblyjs/ast" "1.11.1" 380 | "@webassemblyjs/helper-api-error" "1.11.1" 381 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 382 | "@webassemblyjs/ieee754" "1.11.1" 383 | "@webassemblyjs/leb128" "1.11.1" 384 | "@webassemblyjs/utf8" "1.11.1" 385 | 386 | "@webassemblyjs/wast-printer@1.11.1": 387 | version "1.11.1" 388 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" 389 | integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== 390 | dependencies: 391 | "@webassemblyjs/ast" "1.11.1" 392 | "@xtuc/long" "4.2.2" 393 | 394 | "@xtuc/ieee754@^1.2.0": 395 | version "1.2.0" 396 | resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 397 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 398 | 399 | "@xtuc/long@4.2.2": 400 | version "4.2.2" 401 | resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 402 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 403 | 404 | acorn-import-assertions@^1.7.6: 405 | version "1.8.0" 406 | resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" 407 | integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== 408 | 409 | acorn-jsx@^5.3.2: 410 | version "5.3.2" 411 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 412 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 413 | 414 | acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: 415 | version "8.8.2" 416 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" 417 | integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== 418 | 419 | ajv-keywords@^3.5.2: 420 | version "3.5.2" 421 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" 422 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 423 | 424 | ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: 425 | version "6.12.6" 426 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 427 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 428 | dependencies: 429 | fast-deep-equal "^3.1.1" 430 | fast-json-stable-stringify "^2.0.0" 431 | json-schema-traverse "^0.4.1" 432 | uri-js "^4.2.2" 433 | 434 | ansi-regex@^5.0.1: 435 | version "5.0.1" 436 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 437 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 438 | 439 | ansi-styles@^4.1.0: 440 | version "4.3.0" 441 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 442 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 443 | dependencies: 444 | color-convert "^2.0.1" 445 | 446 | argparse@^2.0.1: 447 | version "2.0.1" 448 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 449 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 450 | 451 | array-union@^2.1.0: 452 | version "2.1.0" 453 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 454 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 455 | 456 | balanced-match@^1.0.0: 457 | version "1.0.2" 458 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 459 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 460 | 461 | brace-expansion@^1.1.7: 462 | version "1.1.11" 463 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 464 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 465 | dependencies: 466 | balanced-match "^1.0.0" 467 | concat-map "0.0.1" 468 | 469 | braces@^3.0.2: 470 | version "3.0.2" 471 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 472 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 473 | dependencies: 474 | fill-range "^7.0.1" 475 | 476 | browserslist@^4.14.5: 477 | version "4.21.5" 478 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" 479 | integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== 480 | dependencies: 481 | caniuse-lite "^1.0.30001449" 482 | electron-to-chromium "^1.4.284" 483 | node-releases "^2.0.8" 484 | update-browserslist-db "^1.0.10" 485 | 486 | buffer-from@^1.0.0: 487 | version "1.1.2" 488 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 489 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 490 | 491 | callsites@^3.0.0: 492 | version "3.1.0" 493 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 494 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 495 | 496 | caniuse-lite@^1.0.30001449: 497 | version "1.0.30001469" 498 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001469.tgz#3dd505430c8522fdc9f94b4a19518e330f5c945a" 499 | integrity sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g== 500 | 501 | chalk@^4.0.0: 502 | version "4.1.2" 503 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 504 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 505 | dependencies: 506 | ansi-styles "^4.1.0" 507 | supports-color "^7.1.0" 508 | 509 | chrome-trace-event@^1.0.2: 510 | version "1.0.3" 511 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" 512 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== 513 | 514 | color-convert@^2.0.1: 515 | version "2.0.1" 516 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 517 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 518 | dependencies: 519 | color-name "~1.1.4" 520 | 521 | color-name@~1.1.4: 522 | version "1.1.4" 523 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 524 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 525 | 526 | commander@^2.20.0: 527 | version "2.20.3" 528 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 529 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 530 | 531 | concat-map@0.0.1: 532 | version "0.0.1" 533 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 534 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 535 | 536 | cross-spawn@^7.0.2: 537 | version "7.0.3" 538 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 539 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 540 | dependencies: 541 | path-key "^3.1.0" 542 | shebang-command "^2.0.0" 543 | which "^2.0.1" 544 | 545 | csstype@^3.0.2: 546 | version "3.1.1" 547 | resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz" 548 | integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== 549 | 550 | debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: 551 | version "4.3.4" 552 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 553 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 554 | dependencies: 555 | ms "2.1.2" 556 | 557 | deep-is@^0.1.3: 558 | version "0.1.4" 559 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 560 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 561 | 562 | dir-glob@^3.0.1: 563 | version "3.0.1" 564 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 565 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 566 | dependencies: 567 | path-type "^4.0.0" 568 | 569 | doctrine@^3.0.0: 570 | version "3.0.0" 571 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 572 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 573 | dependencies: 574 | esutils "^2.0.2" 575 | 576 | electron-to-chromium@^1.4.284: 577 | version "1.4.337" 578 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.337.tgz#710168240b2dc5fe5eb5f8e4ef9c16d70aedc0ba" 579 | integrity sha512-W8gdzXG86mVPoc56eM8YA+QiLxaAxJ8cmDjxZgfhLLWVvZQxyA918w5tX2JEWApZta45T1/sYcmFHTsTOUE3nw== 580 | 581 | enhanced-resolve@^5.10.0: 582 | version "5.12.0" 583 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" 584 | integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== 585 | dependencies: 586 | graceful-fs "^4.2.4" 587 | tapable "^2.2.0" 588 | 589 | es-module-lexer@^0.9.0: 590 | version "0.9.3" 591 | resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" 592 | integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== 593 | 594 | escalade@^3.1.1: 595 | version "3.1.1" 596 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 597 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 598 | 599 | escape-string-regexp@^4.0.0: 600 | version "4.0.0" 601 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 602 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 603 | 604 | eslint-scope@5.1.1, eslint-scope@^5.1.1: 605 | version "5.1.1" 606 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 607 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 608 | dependencies: 609 | esrecurse "^4.3.0" 610 | estraverse "^4.1.1" 611 | 612 | eslint-scope@^7.1.1: 613 | version "7.1.1" 614 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" 615 | integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== 616 | dependencies: 617 | esrecurse "^4.3.0" 618 | estraverse "^5.2.0" 619 | 620 | eslint-visitor-keys@^3.3.0: 621 | version "3.3.0" 622 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" 623 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== 624 | 625 | eslint@^8.36.0: 626 | version "8.36.0" 627 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.36.0.tgz#1bd72202200a5492f91803b113fb8a83b11285cf" 628 | integrity sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw== 629 | dependencies: 630 | "@eslint-community/eslint-utils" "^4.2.0" 631 | "@eslint-community/regexpp" "^4.4.0" 632 | "@eslint/eslintrc" "^2.0.1" 633 | "@eslint/js" "8.36.0" 634 | "@humanwhocodes/config-array" "^0.11.8" 635 | "@humanwhocodes/module-importer" "^1.0.1" 636 | "@nodelib/fs.walk" "^1.2.8" 637 | ajv "^6.10.0" 638 | chalk "^4.0.0" 639 | cross-spawn "^7.0.2" 640 | debug "^4.3.2" 641 | doctrine "^3.0.0" 642 | escape-string-regexp "^4.0.0" 643 | eslint-scope "^7.1.1" 644 | eslint-visitor-keys "^3.3.0" 645 | espree "^9.5.0" 646 | esquery "^1.4.2" 647 | esutils "^2.0.2" 648 | fast-deep-equal "^3.1.3" 649 | file-entry-cache "^6.0.1" 650 | find-up "^5.0.0" 651 | glob-parent "^6.0.2" 652 | globals "^13.19.0" 653 | grapheme-splitter "^1.0.4" 654 | ignore "^5.2.0" 655 | import-fresh "^3.0.0" 656 | imurmurhash "^0.1.4" 657 | is-glob "^4.0.0" 658 | is-path-inside "^3.0.3" 659 | js-sdsl "^4.1.4" 660 | js-yaml "^4.1.0" 661 | json-stable-stringify-without-jsonify "^1.0.1" 662 | levn "^0.4.1" 663 | lodash.merge "^4.6.2" 664 | minimatch "^3.1.2" 665 | natural-compare "^1.4.0" 666 | optionator "^0.9.1" 667 | strip-ansi "^6.0.1" 668 | strip-json-comments "^3.1.0" 669 | text-table "^0.2.0" 670 | 671 | espree@^9.5.0: 672 | version "9.5.0" 673 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113" 674 | integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw== 675 | dependencies: 676 | acorn "^8.8.0" 677 | acorn-jsx "^5.3.2" 678 | eslint-visitor-keys "^3.3.0" 679 | 680 | esquery@^1.4.2: 681 | version "1.5.0" 682 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" 683 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== 684 | dependencies: 685 | estraverse "^5.1.0" 686 | 687 | esrecurse@^4.3.0: 688 | version "4.3.0" 689 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 690 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 691 | dependencies: 692 | estraverse "^5.2.0" 693 | 694 | estraverse@^4.1.1: 695 | version "4.3.0" 696 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 697 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 698 | 699 | estraverse@^5.1.0, estraverse@^5.2.0: 700 | version "5.3.0" 701 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" 702 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 703 | 704 | esutils@^2.0.2: 705 | version "2.0.3" 706 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 707 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 708 | 709 | events@^3.2.0: 710 | version "3.3.0" 711 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" 712 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 713 | 714 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 715 | version "3.1.3" 716 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 717 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 718 | 719 | fast-glob@^3.2.9: 720 | version "3.2.12" 721 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" 722 | integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== 723 | dependencies: 724 | "@nodelib/fs.stat" "^2.0.2" 725 | "@nodelib/fs.walk" "^1.2.3" 726 | glob-parent "^5.1.2" 727 | merge2 "^1.3.0" 728 | micromatch "^4.0.4" 729 | 730 | fast-json-stable-stringify@^2.0.0: 731 | version "2.1.0" 732 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 733 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 734 | 735 | fast-levenshtein@^2.0.6: 736 | version "2.0.6" 737 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 738 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 739 | 740 | fastq@^1.6.0: 741 | version "1.15.0" 742 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" 743 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== 744 | dependencies: 745 | reusify "^1.0.4" 746 | 747 | file-entry-cache@^6.0.1: 748 | version "6.0.1" 749 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 750 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 751 | dependencies: 752 | flat-cache "^3.0.4" 753 | 754 | fill-range@^7.0.1: 755 | version "7.0.1" 756 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 757 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 758 | dependencies: 759 | to-regex-range "^5.0.1" 760 | 761 | find-up@^5.0.0: 762 | version "5.0.0" 763 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 764 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 765 | dependencies: 766 | locate-path "^6.0.0" 767 | path-exists "^4.0.0" 768 | 769 | flat-cache@^3.0.4: 770 | version "3.0.4" 771 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 772 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 773 | dependencies: 774 | flatted "^3.1.0" 775 | rimraf "^3.0.2" 776 | 777 | flatted@^3.1.0: 778 | version "3.2.7" 779 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" 780 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== 781 | 782 | fs.realpath@^1.0.0: 783 | version "1.0.0" 784 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 785 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 786 | 787 | glob-parent@^5.1.2: 788 | version "5.1.2" 789 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 790 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 791 | dependencies: 792 | is-glob "^4.0.1" 793 | 794 | glob-parent@^6.0.2: 795 | version "6.0.2" 796 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 797 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 798 | dependencies: 799 | is-glob "^4.0.3" 800 | 801 | glob-to-regexp@^0.4.1: 802 | version "0.4.1" 803 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 804 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 805 | 806 | glob@^7.1.3: 807 | version "7.2.3" 808 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 809 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 810 | dependencies: 811 | fs.realpath "^1.0.0" 812 | inflight "^1.0.4" 813 | inherits "2" 814 | minimatch "^3.1.1" 815 | once "^1.3.0" 816 | path-is-absolute "^1.0.0" 817 | 818 | globals@^13.19.0: 819 | version "13.20.0" 820 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" 821 | integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== 822 | dependencies: 823 | type-fest "^0.20.2" 824 | 825 | globby@^11.1.0: 826 | version "11.1.0" 827 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" 828 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 829 | dependencies: 830 | array-union "^2.1.0" 831 | dir-glob "^3.0.1" 832 | fast-glob "^3.2.9" 833 | ignore "^5.2.0" 834 | merge2 "^1.4.1" 835 | slash "^3.0.0" 836 | 837 | graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: 838 | version "4.2.11" 839 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" 840 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 841 | 842 | grapheme-splitter@^1.0.4: 843 | version "1.0.4" 844 | resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" 845 | integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== 846 | 847 | has-flag@^4.0.0: 848 | version "4.0.0" 849 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 850 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 851 | 852 | ignore@^5.2.0: 853 | version "5.2.4" 854 | resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" 855 | integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== 856 | 857 | import-fresh@^3.0.0, import-fresh@^3.2.1: 858 | version "3.3.0" 859 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 860 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 861 | dependencies: 862 | parent-module "^1.0.0" 863 | resolve-from "^4.0.0" 864 | 865 | imurmurhash@^0.1.4: 866 | version "0.1.4" 867 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 868 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 869 | 870 | inflight@^1.0.4: 871 | version "1.0.6" 872 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 873 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 874 | dependencies: 875 | once "^1.3.0" 876 | wrappy "1" 877 | 878 | inherits@2: 879 | version "2.0.4" 880 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 881 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 882 | 883 | is-extglob@^2.1.1: 884 | version "2.1.1" 885 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 886 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 887 | 888 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: 889 | version "4.0.3" 890 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" 891 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 892 | dependencies: 893 | is-extglob "^2.1.1" 894 | 895 | is-number@^7.0.0: 896 | version "7.0.0" 897 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 898 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 899 | 900 | is-path-inside@^3.0.3: 901 | version "3.0.3" 902 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" 903 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 904 | 905 | isexe@^2.0.0: 906 | version "2.0.0" 907 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 908 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 909 | 910 | jest-worker@^27.4.5: 911 | version "27.5.1" 912 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" 913 | integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== 914 | dependencies: 915 | "@types/node" "*" 916 | merge-stream "^2.0.0" 917 | supports-color "^8.0.0" 918 | 919 | js-sdsl@^4.1.4: 920 | version "4.4.0" 921 | resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" 922 | integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== 923 | 924 | js-yaml@^4.1.0: 925 | version "4.1.0" 926 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 927 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 928 | dependencies: 929 | argparse "^2.0.1" 930 | 931 | json-parse-even-better-errors@^2.3.1: 932 | version "2.3.1" 933 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 934 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 935 | 936 | json-schema-traverse@^0.4.1: 937 | version "0.4.1" 938 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 939 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 940 | 941 | json-stable-stringify-without-jsonify@^1.0.1: 942 | version "1.0.1" 943 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 944 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 945 | 946 | levn@^0.4.1: 947 | version "0.4.1" 948 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 949 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 950 | dependencies: 951 | prelude-ls "^1.2.1" 952 | type-check "~0.4.0" 953 | 954 | loader-runner@^4.2.0: 955 | version "4.3.0" 956 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" 957 | integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== 958 | 959 | locate-path@^6.0.0: 960 | version "6.0.0" 961 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 962 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 963 | dependencies: 964 | p-locate "^5.0.0" 965 | 966 | lodash.merge@^4.6.2: 967 | version "4.6.2" 968 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 969 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 970 | 971 | lru-cache@^6.0.0: 972 | version "6.0.0" 973 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 974 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 975 | dependencies: 976 | yallist "^4.0.0" 977 | 978 | merge-stream@^2.0.0: 979 | version "2.0.0" 980 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 981 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 982 | 983 | merge2@^1.3.0, merge2@^1.4.1: 984 | version "1.4.1" 985 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 986 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 987 | 988 | micromatch@^4.0.4: 989 | version "4.0.5" 990 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 991 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 992 | dependencies: 993 | braces "^3.0.2" 994 | picomatch "^2.3.1" 995 | 996 | mime-db@1.52.0: 997 | version "1.52.0" 998 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 999 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 1000 | 1001 | mime-types@^2.1.27: 1002 | version "2.1.35" 1003 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 1004 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 1005 | dependencies: 1006 | mime-db "1.52.0" 1007 | 1008 | minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: 1009 | version "3.1.2" 1010 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1011 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1012 | dependencies: 1013 | brace-expansion "^1.1.7" 1014 | 1015 | ms@2.1.2: 1016 | version "2.1.2" 1017 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 1018 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1019 | 1020 | natural-compare-lite@^1.4.0: 1021 | version "1.4.0" 1022 | resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" 1023 | integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== 1024 | 1025 | natural-compare@^1.4.0: 1026 | version "1.4.0" 1027 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1028 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 1029 | 1030 | neo-async@^2.6.2: 1031 | version "2.6.2" 1032 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" 1033 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 1034 | 1035 | node-releases@^2.0.8: 1036 | version "2.0.10" 1037 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" 1038 | integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== 1039 | 1040 | once@^1.3.0: 1041 | version "1.4.0" 1042 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1043 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1044 | dependencies: 1045 | wrappy "1" 1046 | 1047 | optionator@^0.9.1: 1048 | version "0.9.1" 1049 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1050 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 1051 | dependencies: 1052 | deep-is "^0.1.3" 1053 | fast-levenshtein "^2.0.6" 1054 | levn "^0.4.1" 1055 | prelude-ls "^1.2.1" 1056 | type-check "^0.4.0" 1057 | word-wrap "^1.2.3" 1058 | 1059 | p-limit@^3.0.2: 1060 | version "3.1.0" 1061 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1062 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1063 | dependencies: 1064 | yocto-queue "^0.1.0" 1065 | 1066 | p-locate@^5.0.0: 1067 | version "5.0.0" 1068 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 1069 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1070 | dependencies: 1071 | p-limit "^3.0.2" 1072 | 1073 | parent-module@^1.0.0: 1074 | version "1.0.1" 1075 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1076 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1077 | dependencies: 1078 | callsites "^3.0.0" 1079 | 1080 | path-exists@^4.0.0: 1081 | version "4.0.0" 1082 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1083 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1084 | 1085 | path-is-absolute@^1.0.0: 1086 | version "1.0.1" 1087 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1088 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1089 | 1090 | path-key@^3.1.0: 1091 | version "3.1.1" 1092 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1093 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1094 | 1095 | path-type@^4.0.0: 1096 | version "4.0.0" 1097 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1098 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1099 | 1100 | picocolors@^1.0.0: 1101 | version "1.0.0" 1102 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1103 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1104 | 1105 | picomatch@^2.3.1: 1106 | version "2.3.1" 1107 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1108 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1109 | 1110 | prelude-ls@^1.2.1: 1111 | version "1.2.1" 1112 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1113 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1114 | 1115 | punycode@^2.1.0: 1116 | version "2.3.0" 1117 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" 1118 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== 1119 | 1120 | queue-microtask@^1.2.2: 1121 | version "1.2.3" 1122 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" 1123 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1124 | 1125 | randombytes@^2.1.0: 1126 | version "2.1.0" 1127 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 1128 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 1129 | dependencies: 1130 | safe-buffer "^5.1.0" 1131 | 1132 | resolve-from@^4.0.0: 1133 | version "4.0.0" 1134 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1135 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1136 | 1137 | reusify@^1.0.4: 1138 | version "1.0.4" 1139 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" 1140 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1141 | 1142 | rimraf@^3.0.2: 1143 | version "3.0.2" 1144 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1145 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1146 | dependencies: 1147 | glob "^7.1.3" 1148 | 1149 | run-parallel@^1.1.9: 1150 | version "1.2.0" 1151 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" 1152 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1153 | dependencies: 1154 | queue-microtask "^1.2.2" 1155 | 1156 | safe-buffer@^5.1.0: 1157 | version "5.2.1" 1158 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1159 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1160 | 1161 | schema-utils@^3.1.0, schema-utils@^3.1.1: 1162 | version "3.1.1" 1163 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" 1164 | integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== 1165 | dependencies: 1166 | "@types/json-schema" "^7.0.8" 1167 | ajv "^6.12.5" 1168 | ajv-keywords "^3.5.2" 1169 | 1170 | semver@^7.3.7: 1171 | version "7.3.8" 1172 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" 1173 | integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== 1174 | dependencies: 1175 | lru-cache "^6.0.0" 1176 | 1177 | serialize-javascript@^6.0.1: 1178 | version "6.0.1" 1179 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" 1180 | integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== 1181 | dependencies: 1182 | randombytes "^2.1.0" 1183 | 1184 | shebang-command@^2.0.0: 1185 | version "2.0.0" 1186 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1187 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1188 | dependencies: 1189 | shebang-regex "^3.0.0" 1190 | 1191 | shebang-regex@^3.0.0: 1192 | version "3.0.0" 1193 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1194 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1195 | 1196 | slash@^3.0.0: 1197 | version "3.0.0" 1198 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1199 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1200 | 1201 | source-map-support@~0.5.20: 1202 | version "0.5.21" 1203 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 1204 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 1205 | dependencies: 1206 | buffer-from "^1.0.0" 1207 | source-map "^0.6.0" 1208 | 1209 | source-map@^0.6.0: 1210 | version "0.6.1" 1211 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1212 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1213 | 1214 | strip-ansi@^6.0.1: 1215 | version "6.0.1" 1216 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1217 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1218 | dependencies: 1219 | ansi-regex "^5.0.1" 1220 | 1221 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 1222 | version "3.1.1" 1223 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1224 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1225 | 1226 | supports-color@^7.1.0: 1227 | version "7.2.0" 1228 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1229 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1230 | dependencies: 1231 | has-flag "^4.0.0" 1232 | 1233 | supports-color@^8.0.0: 1234 | version "8.1.1" 1235 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 1236 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 1237 | dependencies: 1238 | has-flag "^4.0.0" 1239 | 1240 | tapable@^2.1.1, tapable@^2.2.0: 1241 | version "2.2.1" 1242 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" 1243 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== 1244 | 1245 | terser-webpack-plugin@^5.1.3: 1246 | version "5.3.7" 1247 | resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz#ef760632d24991760f339fe9290deb936ad1ffc7" 1248 | integrity sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw== 1249 | dependencies: 1250 | "@jridgewell/trace-mapping" "^0.3.17" 1251 | jest-worker "^27.4.5" 1252 | schema-utils "^3.1.1" 1253 | serialize-javascript "^6.0.1" 1254 | terser "^5.16.5" 1255 | 1256 | terser@^5.16.5: 1257 | version "5.16.6" 1258 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.6.tgz#f6c7a14a378ee0630fbe3ac8d1f41b4681109533" 1259 | integrity sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg== 1260 | dependencies: 1261 | "@jridgewell/source-map" "^0.3.2" 1262 | acorn "^8.5.0" 1263 | commander "^2.20.0" 1264 | source-map-support "~0.5.20" 1265 | 1266 | text-table@^0.2.0: 1267 | version "0.2.0" 1268 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1269 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 1270 | 1271 | to-regex-range@^5.0.1: 1272 | version "5.0.1" 1273 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1274 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1275 | dependencies: 1276 | is-number "^7.0.0" 1277 | 1278 | tslib@^1.8.1: 1279 | version "1.14.1" 1280 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 1281 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 1282 | 1283 | tsutils@^3.21.0: 1284 | version "3.21.0" 1285 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" 1286 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== 1287 | dependencies: 1288 | tslib "^1.8.1" 1289 | 1290 | type-check@^0.4.0, type-check@~0.4.0: 1291 | version "0.4.0" 1292 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1293 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1294 | dependencies: 1295 | prelude-ls "^1.2.1" 1296 | 1297 | type-fest@^0.20.2: 1298 | version "0.20.2" 1299 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1300 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1301 | 1302 | typescript@^5.0.2: 1303 | version "5.0.2" 1304 | resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz" 1305 | integrity sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw== 1306 | 1307 | update-browserslist-db@^1.0.10: 1308 | version "1.0.10" 1309 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" 1310 | integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== 1311 | dependencies: 1312 | escalade "^3.1.1" 1313 | picocolors "^1.0.0" 1314 | 1315 | uri-js@^4.2.2: 1316 | version "4.4.1" 1317 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" 1318 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1319 | dependencies: 1320 | punycode "^2.1.0" 1321 | 1322 | uuid@^9.0.0: 1323 | version "9.0.0" 1324 | resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" 1325 | integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== 1326 | 1327 | vue@2.5: 1328 | version "2.5.22" 1329 | resolved "https://registry.npmjs.org/vue/-/vue-2.5.22.tgz" 1330 | integrity sha512-pxY3ZHlXNJMFQbkjEgGVMaMMkSV1ONpz+4qB55kZuJzyJOhn6MSy/YZdzhdnumegNzVTL/Dn3Pp4UrVBYt1j/g== 1331 | 1332 | watchpack@^2.4.0: 1333 | version "2.4.0" 1334 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" 1335 | integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== 1336 | dependencies: 1337 | glob-to-regexp "^0.4.1" 1338 | graceful-fs "^4.1.2" 1339 | 1340 | webpack-sources@^3.2.3: 1341 | version "3.2.3" 1342 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" 1343 | integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== 1344 | 1345 | webpack@^5.76.3: 1346 | version "5.76.3" 1347 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.3.tgz#dffdc72c8950e5b032fddad9c4452e7787d2f489" 1348 | integrity sha512-18Qv7uGPU8b2vqGeEEObnfICyw2g39CHlDEK4I7NK13LOur1d0HGmGNKGT58Eluwddpn3oEejwvBPoP4M7/KSA== 1349 | dependencies: 1350 | "@types/eslint-scope" "^3.7.3" 1351 | "@types/estree" "^0.0.51" 1352 | "@webassemblyjs/ast" "1.11.1" 1353 | "@webassemblyjs/wasm-edit" "1.11.1" 1354 | "@webassemblyjs/wasm-parser" "1.11.1" 1355 | acorn "^8.7.1" 1356 | acorn-import-assertions "^1.7.6" 1357 | browserslist "^4.14.5" 1358 | chrome-trace-event "^1.0.2" 1359 | enhanced-resolve "^5.10.0" 1360 | es-module-lexer "^0.9.0" 1361 | eslint-scope "5.1.1" 1362 | events "^3.2.0" 1363 | glob-to-regexp "^0.4.1" 1364 | graceful-fs "^4.2.9" 1365 | json-parse-even-better-errors "^2.3.1" 1366 | loader-runner "^4.2.0" 1367 | mime-types "^2.1.27" 1368 | neo-async "^2.6.2" 1369 | schema-utils "^3.1.0" 1370 | tapable "^2.1.1" 1371 | terser-webpack-plugin "^5.1.3" 1372 | watchpack "^2.4.0" 1373 | webpack-sources "^3.2.3" 1374 | 1375 | which@^2.0.1: 1376 | version "2.0.2" 1377 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1378 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1379 | dependencies: 1380 | isexe "^2.0.0" 1381 | 1382 | word-wrap@^1.2.3: 1383 | version "1.2.3" 1384 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1385 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 1386 | 1387 | wrappy@1: 1388 | version "1.0.2" 1389 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1390 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1391 | 1392 | yallist@^4.0.0: 1393 | version "4.0.0" 1394 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1395 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1396 | 1397 | yocto-queue@^0.1.0: 1398 | version "0.1.0" 1399 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 1400 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 1401 | --------------------------------------------------------------------------------