├── .gitignore ├── .prettierignore ├── .prettierrc ├── tsconfig.json ├── dist ├── cannon-es-debugger.d.ts ├── cannon-es-debugger.js └── cannon-es-debugger.cjs.js ├── rollup.config.js ├── LICENSE ├── package.json ├── readme.md ├── src └── cannon-es-debugger.ts ├── index.html └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | package.json -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "trailingComma": "es5", 4 | "singleQuote": true, 5 | "bracketSameLine": true, 6 | "tabWidth": 2, 7 | "printWidth": 120 8 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "commonjs", 5 | "moduleResolution": "node", 6 | "esModuleInterop": true, 7 | "pretty": true, 8 | "strict": true, 9 | "skipLibCheck": true, 10 | "declaration": true, 11 | "removeComments": true, 12 | "emitDeclarationOnly": true, 13 | "outDir": "dist", 14 | "resolveJsonModule": true, 15 | "noImplicitThis": false, 16 | "lib": [ 17 | "es2019", 18 | "dom" 19 | ], 20 | "baseUrl": "./src" 21 | }, 22 | "include": ["./src"], 23 | "exclude": ["./node_modules/**/*"] 24 | } 25 | -------------------------------------------------------------------------------- /dist/cannon-es-debugger.d.ts: -------------------------------------------------------------------------------- 1 | declare module "cannon-es-debugger" { 2 | import { Shape } from 'cannon-es'; 3 | import { Mesh } from 'three'; 4 | import type { Body, World } from 'cannon-es'; 5 | import type { Scene, Color } from 'three'; 6 | export type DebugOptions = { 7 | color?: string | number | Color; 8 | scale?: number; 9 | onInit?: (body: Body, mesh: Mesh, shape: Shape) => void; 10 | onUpdate?: (body: Body, mesh: Mesh, shape: Shape) => void; 11 | }; 12 | export default function CannonDebugger(scene: Scene, world: World, { color, scale, onInit, onUpdate }?: DebugOptions): { 13 | update: () => void; 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import babel from '@rollup/plugin-babel' 2 | import resolve from '@rollup/plugin-node-resolve' 3 | 4 | const extensions = ['.ts'] 5 | 6 | const babelOptions = { 7 | babelrc: false, 8 | extensions, 9 | exclude: '**/node_modules/**', 10 | babelHelpers: 'bundled', 11 | presets: [ 12 | [ 13 | '@babel/preset-env', 14 | { 15 | loose: true, 16 | modules: false, 17 | targets: '>0.5%, not dead, not ie 11, not op_mini all', 18 | }, 19 | ], 20 | '@babel/preset-typescript', 21 | ], 22 | } 23 | 24 | export default [ 25 | { 26 | input: `./src/cannon-es-debugger`, 27 | output: { 28 | file: `dist/cannon-es-debugger.js`, 29 | format: 'esm', 30 | }, 31 | plugins: [resolve({ extensions }), babel(babelOptions)], 32 | external: ['cannon-es', 'three'], 33 | }, 34 | { 35 | input: `./src/cannon-es-debugger`, 36 | output: { 37 | file: `dist/cannon-es-debugger.cjs.js`, 38 | format: 'cjs', 39 | exports: 'default', 40 | }, 41 | plugins: [resolve({ extensions }), babel(babelOptions)], 42 | external: ['cannon-es', 'three'], 43 | }, 44 | ] 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 cannon.js Authors 3 | * 4 | * Permission is hereby granted, free of charge, to any person 5 | * obtaining a copy of this software and associated documentation 6 | * files (the "Software"), to deal in the Software without 7 | * restriction, including without limitation the rights to use, copy, 8 | * modify, merge, publish, distribute, sublicense, and/or sell copies 9 | * of the Software, and to permit persons to whom the Software is 10 | * furnished to do so, subject to the following conditions: 11 | * 12 | * The above copyright notice and this permission notice shall be 13 | * included in all copies or substantial portions of the Software. 14 | * 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 19 | * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 20 | * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21 | * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cannon-es-debugger", 3 | "version": "1.0.0", 4 | "description": "Wireframe debugger for use with cannon-es https://github.com/pmndrs/cannon-es", 5 | "keywords": [ 6 | "debugger", 7 | "cannon", 8 | "three", 9 | "react", 10 | "react-three-fiber" 11 | ], 12 | "author": "Stefan Hedman (http://steffe.se)", 13 | "contributors": [ 14 | "Cody Persinger (https://github.com/codynova)", 15 | "Marco Fugaro (https://github.com/marcofugaro)" 16 | ], 17 | "license": "MIT", 18 | "main": "./dist/cannon-es-debugger.cjs.js", 19 | "module": "./dist/cannon-es-debugger.js", 20 | "types": "./dist/cannon-es-debugger.d.ts", 21 | "sideEffects": false, 22 | "files": [ 23 | "dist" 24 | ], 25 | "scripts": { 26 | "start": "serve", 27 | "prebuild": "rimraf dist", 28 | "build": "npm run typegen && rollup -c", 29 | "typecheck": "tsc --noEmit --emitDeclarationOnly false --strict", 30 | "typegen": "tsc --outFile dist/cannon-es-debugger.d.ts" 31 | }, 32 | "peerDependencies": { 33 | "cannon-es": "0.x", 34 | "three": "0.x", 35 | "typescript": ">=3.8" 36 | }, 37 | "peerDependenciesMeta": { 38 | "typescript": { 39 | "optional": true 40 | } 41 | }, 42 | "devDependencies": { 43 | "@babel/core": "^7.16.5", 44 | "@babel/preset-env": "^7.16.5", 45 | "@babel/preset-typescript": "^7.16.5", 46 | "@rollup/plugin-babel": "^5.3.0", 47 | "@rollup/plugin-node-resolve": "^13.1.1", 48 | "@types/three": "^0.135.0", 49 | "cannon-es": "^0.18.0", 50 | "prettier": "^2.5.1", 51 | "rimraf": "^3.0.2", 52 | "rollup": "^2.62.0", 53 | "serve": "^13.0.2", 54 | "three": "^0.136.0", 55 | "typescript": "^4.5.4" 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # cannon-es-debugger 2 | 3 | [![Demo Image](https://i.imgur.com/2Bf8KfJ.png)](https://pmndrs.github.io/cannon-es-debugger/) 4 | 5 | This is a debugger for use with [cannon-es](https://github.com/pmndrs/cannon-es). It was adapted from the [original cannon.js debugger](https://github.com/schteppe/cannon.js/blob/master/tools/threejs/CannonDebugRenderer.js) written by Stefan Hedman [@schteppe](https://github.com/schteppe). 6 | 7 | **Note:** This debugger is included in [use-cannon](https://github.com/pmndrs/use-cannon#debug) directly. 8 | 9 | ### Example 10 | 11 | https://pmndrs.github.io/cannon-es-debugger/ 12 | 13 | ### Installation 14 | 15 | ``` 16 | yarn add cannon-es-debugger 17 | ``` 18 | 19 | Make sure you also have `three` and `cannon-es` as dependencies. 20 | 21 | ``` 22 | yarn add three cannon-es 23 | ``` 24 | 25 | ### Usage 26 | 27 | Give `cannon-es-debugger` references to your three.js scene object and cannon-es world: 28 | 29 | ```js 30 | import { Scene } from 'three' 31 | import { World } from 'cannon-es' 32 | import CannonDebugger from 'cannon-es-debugger' 33 | 34 | const scene = new Scene() 35 | const world = new World() 36 | const cannonDebugger = new CannonDebugger(scene, world, { 37 | // options... 38 | }) 39 | 40 | // ... 41 | 42 | function animate() { 43 | requestAnimationFrame(animate) 44 | 45 | world.step(timeStep) // Update cannon-es physics 46 | cannonDebugger.update() // Update the CannonDebugger meshes 47 | renderer.render(scene, camera) // Render the three.js scene 48 | } 49 | animate() 50 | ``` 51 | 52 | New meshes with wireframe material will be generated from your physics body shapes and added into the scene. The position of the meshes will be synched with the Cannon physics body simulation on every animation frame. 53 | 54 | ### API 55 | 56 | ```ts 57 | import type { Scene, Color } from 'three' 58 | import type { Body } from 'cannon-es' 59 | 60 | type DebugOptions = { 61 | color?: string | number | Color 62 | scale?: number 63 | onInit?: (body: Body, mesh: Mesh, shape: Shape) => void 64 | onUpdate?: (body: Body, mesh: Mesh, shape: Shape) => void 65 | } 66 | 67 | export default class CannonDebugger { 68 | constructor(scene: Scene, world: World, options: DebugOptions): void 69 | 70 | update(): void 71 | } 72 | ``` 73 | 74 | The available properties of the `options` object are: 75 | 76 | - **`color`** - a [Three Color](https://threejs.org/docs/#api/en/math/Color) argument that sets the wireframe color, defaults to `0x00ff00` 77 | 78 | - **`scale`** - scale factor for all the wireframe meshes, defaults to 1 79 | 80 | - **`onInit`** - callback function that runs once, right after a new wireframe mesh is added 81 | 82 | - **`onUpdate`** - callback function that runs on every subsequent animation frame 83 | 84 | The `update()` method needs to be called in a `requestAnimationFrame` loop to keep updating the wireframe meshes after the bodies have been updated. 85 | -------------------------------------------------------------------------------- /dist/cannon-es-debugger.js: -------------------------------------------------------------------------------- 1 | import { Vec3, Quaternion, Shape } from 'cannon-es'; 2 | import { MeshBasicMaterial, SphereGeometry, BoxGeometry, PlaneGeometry, Mesh, CylinderGeometry, BufferGeometry, Float32BufferAttribute } from 'three'; 3 | 4 | function CannonDebugger(scene, world, _temp) { 5 | let { 6 | color = 0x00ff00, 7 | scale = 1, 8 | onInit, 9 | onUpdate 10 | } = _temp === void 0 ? {} : _temp; 11 | const _meshes = []; 12 | 13 | const _material = new MeshBasicMaterial({ 14 | color: color != null ? color : 0x00ff00, 15 | wireframe: true 16 | }); 17 | 18 | const _tempVec0 = new Vec3(); 19 | 20 | const _tempVec1 = new Vec3(); 21 | 22 | const _tempVec2 = new Vec3(); 23 | 24 | const _tempQuat0 = new Quaternion(); 25 | 26 | const _sphereGeometry = new SphereGeometry(1); 27 | 28 | const _boxGeometry = new BoxGeometry(1, 1, 1); 29 | 30 | const _planeGeometry = new PlaneGeometry(10, 10, 10, 10); // Move the planeGeometry forward a little bit to prevent z-fighting 31 | 32 | 33 | _planeGeometry.translate(0, 0, 0.0001); 34 | 35 | function createConvexPolyhedronGeometry(shape) { 36 | const geometry = new BufferGeometry(); // Add vertices 37 | 38 | const positions = []; 39 | 40 | for (let i = 0; i < shape.vertices.length; i++) { 41 | const vertex = shape.vertices[i]; 42 | positions.push(vertex.x, vertex.y, vertex.z); 43 | } 44 | 45 | geometry.setAttribute('position', new Float32BufferAttribute(positions, 3)); // Add faces 46 | 47 | const indices = []; 48 | 49 | for (let i = 0; i < shape.faces.length; i++) { 50 | const face = shape.faces[i]; 51 | const a = face[0]; 52 | 53 | for (let j = 1; j < face.length - 1; j++) { 54 | const b = face[j]; 55 | const c = face[j + 1]; 56 | indices.push(a, b, c); 57 | } 58 | } 59 | 60 | geometry.setIndex(indices); 61 | geometry.computeBoundingSphere(); 62 | geometry.computeVertexNormals(); 63 | return geometry; 64 | } 65 | 66 | function createTrimeshGeometry(shape) { 67 | const geometry = new BufferGeometry(); 68 | const positions = []; 69 | const v0 = _tempVec0; 70 | const v1 = _tempVec1; 71 | const v2 = _tempVec2; 72 | 73 | for (let i = 0; i < shape.indices.length / 3; i++) { 74 | shape.getTriangleVertices(i, v0, v1, v2); 75 | positions.push(v0.x, v0.y, v0.z); 76 | positions.push(v1.x, v1.y, v1.z); 77 | positions.push(v2.x, v2.y, v2.z); 78 | } 79 | 80 | geometry.setAttribute('position', new Float32BufferAttribute(positions, 3)); 81 | geometry.computeBoundingSphere(); 82 | geometry.computeVertexNormals(); 83 | return geometry; 84 | } 85 | 86 | function createHeightfieldGeometry(shape) { 87 | const geometry = new BufferGeometry(); 88 | const s = shape.elementSize || 1; // assumes square heightfield, else i*x, j*y 89 | 90 | const positions = shape.data.flatMap((row, i) => row.flatMap((z, j) => [i * s, j * s, z])); 91 | const indices = []; 92 | 93 | for (let xi = 0; xi < shape.data.length - 1; xi++) { 94 | for (let yi = 0; yi < shape.data[xi].length - 1; yi++) { 95 | const stride = shape.data[xi].length; 96 | const index = xi * stride + yi; 97 | indices.push(index + 1, index + stride, index + stride + 1); 98 | indices.push(index + stride, index + 1, index); 99 | } 100 | } 101 | 102 | geometry.setIndex(indices); 103 | geometry.setAttribute('position', new Float32BufferAttribute(positions, 3)); 104 | geometry.computeBoundingSphere(); 105 | geometry.computeVertexNormals(); 106 | return geometry; 107 | } 108 | 109 | function createMesh(shape) { 110 | let mesh = new Mesh(); 111 | const { 112 | SPHERE, 113 | BOX, 114 | PLANE, 115 | CYLINDER, 116 | CONVEXPOLYHEDRON, 117 | TRIMESH, 118 | HEIGHTFIELD 119 | } = Shape.types; 120 | 121 | switch (shape.type) { 122 | case SPHERE: 123 | { 124 | mesh = new Mesh(_sphereGeometry, _material); 125 | break; 126 | } 127 | 128 | case BOX: 129 | { 130 | mesh = new Mesh(_boxGeometry, _material); 131 | break; 132 | } 133 | 134 | case PLANE: 135 | { 136 | mesh = new Mesh(_planeGeometry, _material); 137 | break; 138 | } 139 | 140 | case CYLINDER: 141 | { 142 | const geometry = new CylinderGeometry(shape.radiusTop, shape.radiusBottom, shape.height, shape.numSegments); 143 | mesh = new Mesh(geometry, _material); 144 | shape.geometryId = geometry.id; 145 | break; 146 | } 147 | 148 | case CONVEXPOLYHEDRON: 149 | { 150 | const geometry = createConvexPolyhedronGeometry(shape); 151 | mesh = new Mesh(geometry, _material); 152 | shape.geometryId = geometry.id; 153 | break; 154 | } 155 | 156 | case TRIMESH: 157 | { 158 | const geometry = createTrimeshGeometry(shape); 159 | mesh = new Mesh(geometry, _material); 160 | shape.geometryId = geometry.id; 161 | break; 162 | } 163 | 164 | case HEIGHTFIELD: 165 | { 166 | const geometry = createHeightfieldGeometry(shape); 167 | mesh = new Mesh(geometry, _material); 168 | shape.geometryId = geometry.id; 169 | break; 170 | } 171 | } 172 | 173 | scene.add(mesh); 174 | return mesh; 175 | } 176 | 177 | function scaleMesh(mesh, shape) { 178 | const { 179 | SPHERE, 180 | BOX, 181 | PLANE, 182 | CYLINDER, 183 | CONVEXPOLYHEDRON, 184 | TRIMESH, 185 | HEIGHTFIELD 186 | } = Shape.types; 187 | 188 | switch (shape.type) { 189 | case SPHERE: 190 | { 191 | const { 192 | radius 193 | } = shape; 194 | mesh.scale.set(radius * scale, radius * scale, radius * scale); 195 | break; 196 | } 197 | 198 | case BOX: 199 | { 200 | mesh.scale.copy(shape.halfExtents); 201 | mesh.scale.multiplyScalar(2 * scale); 202 | break; 203 | } 204 | 205 | case PLANE: 206 | { 207 | break; 208 | } 209 | 210 | case CYLINDER: 211 | { 212 | mesh.scale.set(1 * scale, 1 * scale, 1 * scale); 213 | break; 214 | } 215 | 216 | case CONVEXPOLYHEDRON: 217 | { 218 | mesh.scale.set(1 * scale, 1 * scale, 1 * scale); 219 | break; 220 | } 221 | 222 | case TRIMESH: 223 | { 224 | mesh.scale.copy(shape.scale).multiplyScalar(scale); 225 | break; 226 | } 227 | 228 | case HEIGHTFIELD: 229 | { 230 | mesh.scale.set(1 * scale, 1 * scale, 1 * scale); 231 | break; 232 | } 233 | } 234 | } 235 | 236 | function typeMatch(mesh, shape) { 237 | if (!mesh) return false; 238 | const { 239 | geometry 240 | } = mesh; 241 | return geometry instanceof SphereGeometry && shape.type === Shape.types.SPHERE || geometry instanceof BoxGeometry && shape.type === Shape.types.BOX || geometry instanceof PlaneGeometry && shape.type === Shape.types.PLANE || geometry.id === shape.geometryId && shape.type === Shape.types.CYLINDER || geometry.id === shape.geometryId && shape.type === Shape.types.CONVEXPOLYHEDRON || geometry.id === shape.geometryId && shape.type === Shape.types.TRIMESH || geometry.id === shape.geometryId && shape.type === Shape.types.HEIGHTFIELD; 242 | } 243 | 244 | function updateMesh(index, shape) { 245 | let mesh = _meshes[index]; 246 | let didCreateNewMesh = false; 247 | 248 | if (!typeMatch(mesh, shape)) { 249 | if (mesh) scene.remove(mesh); 250 | _meshes[index] = mesh = createMesh(shape); 251 | didCreateNewMesh = true; 252 | } 253 | 254 | scaleMesh(mesh, shape); 255 | return didCreateNewMesh; 256 | } 257 | 258 | function update() { 259 | const meshes = _meshes; 260 | const shapeWorldPosition = _tempVec0; 261 | const shapeWorldQuaternion = _tempQuat0; 262 | let meshIndex = 0; 263 | 264 | for (const body of world.bodies) { 265 | for (let i = 0; i !== body.shapes.length; i++) { 266 | const shape = body.shapes[i]; 267 | const didCreateNewMesh = updateMesh(meshIndex, shape); 268 | const mesh = meshes[meshIndex]; 269 | 270 | if (mesh) { 271 | // Get world position 272 | body.quaternion.vmult(body.shapeOffsets[i], shapeWorldPosition); 273 | body.position.vadd(shapeWorldPosition, shapeWorldPosition); // Get world quaternion 274 | 275 | body.quaternion.mult(body.shapeOrientations[i], shapeWorldQuaternion); // Copy to meshes 276 | 277 | mesh.position.copy(shapeWorldPosition); 278 | mesh.quaternion.copy(shapeWorldQuaternion); 279 | if (didCreateNewMesh && onInit instanceof Function) onInit(body, mesh, shape); 280 | if (!didCreateNewMesh && onUpdate instanceof Function) onUpdate(body, mesh, shape); 281 | } 282 | 283 | meshIndex++; 284 | } 285 | } 286 | 287 | for (let i = meshIndex; i < meshes.length; i++) { 288 | const mesh = meshes[i]; 289 | if (mesh) scene.remove(mesh); 290 | } 291 | 292 | meshes.length = meshIndex; 293 | } 294 | 295 | return { 296 | update 297 | }; 298 | } 299 | 300 | export { CannonDebugger as default }; 301 | -------------------------------------------------------------------------------- /dist/cannon-es-debugger.cjs.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var cannonEs = require('cannon-es'); 4 | var three = require('three'); 5 | 6 | function CannonDebugger(scene, world, _temp) { 7 | let { 8 | color = 0x00ff00, 9 | scale = 1, 10 | onInit, 11 | onUpdate 12 | } = _temp === void 0 ? {} : _temp; 13 | const _meshes = []; 14 | 15 | const _material = new three.MeshBasicMaterial({ 16 | color: color != null ? color : 0x00ff00, 17 | wireframe: true 18 | }); 19 | 20 | const _tempVec0 = new cannonEs.Vec3(); 21 | 22 | const _tempVec1 = new cannonEs.Vec3(); 23 | 24 | const _tempVec2 = new cannonEs.Vec3(); 25 | 26 | const _tempQuat0 = new cannonEs.Quaternion(); 27 | 28 | const _sphereGeometry = new three.SphereGeometry(1); 29 | 30 | const _boxGeometry = new three.BoxGeometry(1, 1, 1); 31 | 32 | const _planeGeometry = new three.PlaneGeometry(10, 10, 10, 10); // Move the planeGeometry forward a little bit to prevent z-fighting 33 | 34 | 35 | _planeGeometry.translate(0, 0, 0.0001); 36 | 37 | function createConvexPolyhedronGeometry(shape) { 38 | const geometry = new three.BufferGeometry(); // Add vertices 39 | 40 | const positions = []; 41 | 42 | for (let i = 0; i < shape.vertices.length; i++) { 43 | const vertex = shape.vertices[i]; 44 | positions.push(vertex.x, vertex.y, vertex.z); 45 | } 46 | 47 | geometry.setAttribute('position', new three.Float32BufferAttribute(positions, 3)); // Add faces 48 | 49 | const indices = []; 50 | 51 | for (let i = 0; i < shape.faces.length; i++) { 52 | const face = shape.faces[i]; 53 | const a = face[0]; 54 | 55 | for (let j = 1; j < face.length - 1; j++) { 56 | const b = face[j]; 57 | const c = face[j + 1]; 58 | indices.push(a, b, c); 59 | } 60 | } 61 | 62 | geometry.setIndex(indices); 63 | geometry.computeBoundingSphere(); 64 | geometry.computeVertexNormals(); 65 | return geometry; 66 | } 67 | 68 | function createTrimeshGeometry(shape) { 69 | const geometry = new three.BufferGeometry(); 70 | const positions = []; 71 | const v0 = _tempVec0; 72 | const v1 = _tempVec1; 73 | const v2 = _tempVec2; 74 | 75 | for (let i = 0; i < shape.indices.length / 3; i++) { 76 | shape.getTriangleVertices(i, v0, v1, v2); 77 | positions.push(v0.x, v0.y, v0.z); 78 | positions.push(v1.x, v1.y, v1.z); 79 | positions.push(v2.x, v2.y, v2.z); 80 | } 81 | 82 | geometry.setAttribute('position', new three.Float32BufferAttribute(positions, 3)); 83 | geometry.computeBoundingSphere(); 84 | geometry.computeVertexNormals(); 85 | return geometry; 86 | } 87 | 88 | function createHeightfieldGeometry(shape) { 89 | const geometry = new three.BufferGeometry(); 90 | const s = shape.elementSize || 1; // assumes square heightfield, else i*x, j*y 91 | 92 | const positions = shape.data.flatMap((row, i) => row.flatMap((z, j) => [i * s, j * s, z])); 93 | const indices = []; 94 | 95 | for (let xi = 0; xi < shape.data.length - 1; xi++) { 96 | for (let yi = 0; yi < shape.data[xi].length - 1; yi++) { 97 | const stride = shape.data[xi].length; 98 | const index = xi * stride + yi; 99 | indices.push(index + 1, index + stride, index + stride + 1); 100 | indices.push(index + stride, index + 1, index); 101 | } 102 | } 103 | 104 | geometry.setIndex(indices); 105 | geometry.setAttribute('position', new three.Float32BufferAttribute(positions, 3)); 106 | geometry.computeBoundingSphere(); 107 | geometry.computeVertexNormals(); 108 | return geometry; 109 | } 110 | 111 | function createMesh(shape) { 112 | let mesh = new three.Mesh(); 113 | const { 114 | SPHERE, 115 | BOX, 116 | PLANE, 117 | CYLINDER, 118 | CONVEXPOLYHEDRON, 119 | TRIMESH, 120 | HEIGHTFIELD 121 | } = cannonEs.Shape.types; 122 | 123 | switch (shape.type) { 124 | case SPHERE: 125 | { 126 | mesh = new three.Mesh(_sphereGeometry, _material); 127 | break; 128 | } 129 | 130 | case BOX: 131 | { 132 | mesh = new three.Mesh(_boxGeometry, _material); 133 | break; 134 | } 135 | 136 | case PLANE: 137 | { 138 | mesh = new three.Mesh(_planeGeometry, _material); 139 | break; 140 | } 141 | 142 | case CYLINDER: 143 | { 144 | const geometry = new three.CylinderGeometry(shape.radiusTop, shape.radiusBottom, shape.height, shape.numSegments); 145 | mesh = new three.Mesh(geometry, _material); 146 | shape.geometryId = geometry.id; 147 | break; 148 | } 149 | 150 | case CONVEXPOLYHEDRON: 151 | { 152 | const geometry = createConvexPolyhedronGeometry(shape); 153 | mesh = new three.Mesh(geometry, _material); 154 | shape.geometryId = geometry.id; 155 | break; 156 | } 157 | 158 | case TRIMESH: 159 | { 160 | const geometry = createTrimeshGeometry(shape); 161 | mesh = new three.Mesh(geometry, _material); 162 | shape.geometryId = geometry.id; 163 | break; 164 | } 165 | 166 | case HEIGHTFIELD: 167 | { 168 | const geometry = createHeightfieldGeometry(shape); 169 | mesh = new three.Mesh(geometry, _material); 170 | shape.geometryId = geometry.id; 171 | break; 172 | } 173 | } 174 | 175 | scene.add(mesh); 176 | return mesh; 177 | } 178 | 179 | function scaleMesh(mesh, shape) { 180 | const { 181 | SPHERE, 182 | BOX, 183 | PLANE, 184 | CYLINDER, 185 | CONVEXPOLYHEDRON, 186 | TRIMESH, 187 | HEIGHTFIELD 188 | } = cannonEs.Shape.types; 189 | 190 | switch (shape.type) { 191 | case SPHERE: 192 | { 193 | const { 194 | radius 195 | } = shape; 196 | mesh.scale.set(radius * scale, radius * scale, radius * scale); 197 | break; 198 | } 199 | 200 | case BOX: 201 | { 202 | mesh.scale.copy(shape.halfExtents); 203 | mesh.scale.multiplyScalar(2 * scale); 204 | break; 205 | } 206 | 207 | case PLANE: 208 | { 209 | break; 210 | } 211 | 212 | case CYLINDER: 213 | { 214 | mesh.scale.set(1 * scale, 1 * scale, 1 * scale); 215 | break; 216 | } 217 | 218 | case CONVEXPOLYHEDRON: 219 | { 220 | mesh.scale.set(1 * scale, 1 * scale, 1 * scale); 221 | break; 222 | } 223 | 224 | case TRIMESH: 225 | { 226 | mesh.scale.copy(shape.scale).multiplyScalar(scale); 227 | break; 228 | } 229 | 230 | case HEIGHTFIELD: 231 | { 232 | mesh.scale.set(1 * scale, 1 * scale, 1 * scale); 233 | break; 234 | } 235 | } 236 | } 237 | 238 | function typeMatch(mesh, shape) { 239 | if (!mesh) return false; 240 | const { 241 | geometry 242 | } = mesh; 243 | return geometry instanceof three.SphereGeometry && shape.type === cannonEs.Shape.types.SPHERE || geometry instanceof three.BoxGeometry && shape.type === cannonEs.Shape.types.BOX || geometry instanceof three.PlaneGeometry && shape.type === cannonEs.Shape.types.PLANE || geometry.id === shape.geometryId && shape.type === cannonEs.Shape.types.CYLINDER || geometry.id === shape.geometryId && shape.type === cannonEs.Shape.types.CONVEXPOLYHEDRON || geometry.id === shape.geometryId && shape.type === cannonEs.Shape.types.TRIMESH || geometry.id === shape.geometryId && shape.type === cannonEs.Shape.types.HEIGHTFIELD; 244 | } 245 | 246 | function updateMesh(index, shape) { 247 | let mesh = _meshes[index]; 248 | let didCreateNewMesh = false; 249 | 250 | if (!typeMatch(mesh, shape)) { 251 | if (mesh) scene.remove(mesh); 252 | _meshes[index] = mesh = createMesh(shape); 253 | didCreateNewMesh = true; 254 | } 255 | 256 | scaleMesh(mesh, shape); 257 | return didCreateNewMesh; 258 | } 259 | 260 | function update() { 261 | const meshes = _meshes; 262 | const shapeWorldPosition = _tempVec0; 263 | const shapeWorldQuaternion = _tempQuat0; 264 | let meshIndex = 0; 265 | 266 | for (const body of world.bodies) { 267 | for (let i = 0; i !== body.shapes.length; i++) { 268 | const shape = body.shapes[i]; 269 | const didCreateNewMesh = updateMesh(meshIndex, shape); 270 | const mesh = meshes[meshIndex]; 271 | 272 | if (mesh) { 273 | // Get world position 274 | body.quaternion.vmult(body.shapeOffsets[i], shapeWorldPosition); 275 | body.position.vadd(shapeWorldPosition, shapeWorldPosition); // Get world quaternion 276 | 277 | body.quaternion.mult(body.shapeOrientations[i], shapeWorldQuaternion); // Copy to meshes 278 | 279 | mesh.position.copy(shapeWorldPosition); 280 | mesh.quaternion.copy(shapeWorldQuaternion); 281 | if (didCreateNewMesh && onInit instanceof Function) onInit(body, mesh, shape); 282 | if (!didCreateNewMesh && onUpdate instanceof Function) onUpdate(body, mesh, shape); 283 | } 284 | 285 | meshIndex++; 286 | } 287 | } 288 | 289 | for (let i = meshIndex; i < meshes.length; i++) { 290 | const mesh = meshes[i]; 291 | if (mesh) scene.remove(mesh); 292 | } 293 | 294 | meshes.length = meshIndex; 295 | } 296 | 297 | return { 298 | update 299 | }; 300 | } 301 | 302 | module.exports = CannonDebugger; 303 | -------------------------------------------------------------------------------- /src/cannon-es-debugger.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Vec3 as CannonVector3, 3 | Sphere, 4 | Box, 5 | ConvexPolyhedron, 6 | Trimesh, 7 | Heightfield, 8 | Shape, 9 | Quaternion as CannonQuaternion, 10 | Cylinder, 11 | } from 'cannon-es' 12 | import { 13 | MeshBasicMaterial, 14 | SphereGeometry, 15 | BoxGeometry, 16 | PlaneGeometry, 17 | CylinderGeometry, 18 | Mesh, 19 | Vector3 as ThreeVector3, 20 | Quaternion as ThreeQuaternion, 21 | BufferGeometry, 22 | Float32BufferAttribute, 23 | } from 'three' 24 | import type { Body, World } from 'cannon-es' 25 | import type { Scene, Color } from 'three' 26 | 27 | type ComplexShape = Shape & { geometryId?: number } 28 | export type DebugOptions = { 29 | color?: string | number | Color 30 | scale?: number 31 | onInit?: (body: Body, mesh: Mesh, shape: Shape) => void 32 | onUpdate?: (body: Body, mesh: Mesh, shape: Shape) => void 33 | } 34 | 35 | export default function CannonDebugger( 36 | scene: Scene, 37 | world: World, 38 | { color = 0x00ff00, scale = 1, onInit, onUpdate }: DebugOptions = {} 39 | ) { 40 | const _meshes: Mesh[] = [] 41 | const _material = new MeshBasicMaterial({ color: color ?? 0x00ff00, wireframe: true }) 42 | const _tempVec0 = new CannonVector3() 43 | const _tempVec1 = new CannonVector3() 44 | const _tempVec2 = new CannonVector3() 45 | const _tempQuat0 = new CannonQuaternion() 46 | const _sphereGeometry = new SphereGeometry(1) 47 | const _boxGeometry = new BoxGeometry(1, 1, 1) 48 | const _planeGeometry = new PlaneGeometry(10, 10, 10, 10) 49 | 50 | // Move the planeGeometry forward a little bit to prevent z-fighting 51 | _planeGeometry.translate(0, 0, 0.0001) 52 | 53 | function createConvexPolyhedronGeometry(shape: ConvexPolyhedron): BufferGeometry { 54 | const geometry = new BufferGeometry() 55 | 56 | // Add vertices 57 | const positions = [] 58 | for (let i = 0; i < shape.vertices.length; i++) { 59 | const vertex = shape.vertices[i] 60 | positions.push(vertex.x, vertex.y, vertex.z) 61 | } 62 | geometry.setAttribute('position', new Float32BufferAttribute(positions, 3)) 63 | 64 | // Add faces 65 | const indices = [] 66 | for (let i = 0; i < shape.faces.length; i++) { 67 | const face = shape.faces[i] 68 | const a = face[0] 69 | for (let j = 1; j < face.length - 1; j++) { 70 | const b = face[j] 71 | const c = face[j + 1] 72 | indices.push(a, b, c) 73 | } 74 | } 75 | 76 | geometry.setIndex(indices) 77 | geometry.computeBoundingSphere() 78 | geometry.computeVertexNormals() 79 | return geometry 80 | } 81 | 82 | function createTrimeshGeometry(shape: Trimesh): BufferGeometry { 83 | const geometry = new BufferGeometry() 84 | const positions = [] 85 | const v0 = _tempVec0 86 | const v1 = _tempVec1 87 | const v2 = _tempVec2 88 | 89 | for (let i = 0; i < shape.indices.length / 3; i++) { 90 | shape.getTriangleVertices(i, v0, v1, v2) 91 | positions.push(v0.x, v0.y, v0.z) 92 | positions.push(v1.x, v1.y, v1.z) 93 | positions.push(v2.x, v2.y, v2.z) 94 | } 95 | 96 | geometry.setAttribute('position', new Float32BufferAttribute(positions, 3)) 97 | geometry.computeBoundingSphere() 98 | geometry.computeVertexNormals() 99 | return geometry 100 | } 101 | 102 | function createHeightfieldGeometry(shape: Heightfield): BufferGeometry { 103 | const geometry = new BufferGeometry() 104 | const s = shape.elementSize || 1 // assumes square heightfield, else i*x, j*y 105 | const positions = shape.data.flatMap((row, i) => row.flatMap((z, j) => [i * s, j * s, z])) 106 | const indices = [] 107 | 108 | for (let xi = 0; xi < shape.data.length - 1; xi++) { 109 | for (let yi = 0; yi < shape.data[xi].length - 1; yi++) { 110 | const stride = shape.data[xi].length 111 | const index = xi * stride + yi 112 | indices.push(index + 1, index + stride, index + stride + 1) 113 | indices.push(index + stride, index + 1, index) 114 | } 115 | } 116 | 117 | geometry.setIndex(indices) 118 | geometry.setAttribute('position', new Float32BufferAttribute(positions, 3)) 119 | geometry.computeBoundingSphere() 120 | geometry.computeVertexNormals() 121 | return geometry 122 | } 123 | 124 | function createMesh(shape: Shape): Mesh { 125 | let mesh = new Mesh() 126 | const { SPHERE, BOX, PLANE, CYLINDER, CONVEXPOLYHEDRON, TRIMESH, HEIGHTFIELD } = Shape.types 127 | 128 | switch (shape.type) { 129 | case SPHERE: { 130 | mesh = new Mesh(_sphereGeometry, _material) 131 | break 132 | } 133 | case BOX: { 134 | mesh = new Mesh(_boxGeometry, _material) 135 | break 136 | } 137 | case PLANE: { 138 | mesh = new Mesh(_planeGeometry, _material) 139 | break 140 | } 141 | case CYLINDER: { 142 | const geometry = new CylinderGeometry( 143 | (shape as Cylinder).radiusTop, 144 | (shape as Cylinder).radiusBottom, 145 | (shape as Cylinder).height, 146 | (shape as Cylinder).numSegments 147 | ) 148 | mesh = new Mesh(geometry, _material) 149 | ;(shape as ComplexShape).geometryId = geometry.id 150 | break 151 | } 152 | case CONVEXPOLYHEDRON: { 153 | const geometry = createConvexPolyhedronGeometry(shape as ConvexPolyhedron) 154 | mesh = new Mesh(geometry, _material) 155 | ;(shape as ComplexShape).geometryId = geometry.id 156 | break 157 | } 158 | case TRIMESH: { 159 | const geometry = createTrimeshGeometry(shape as Trimesh) 160 | mesh = new Mesh(geometry, _material) 161 | ;(shape as ComplexShape).geometryId = geometry.id 162 | break 163 | } 164 | case HEIGHTFIELD: { 165 | const geometry = createHeightfieldGeometry(shape as Heightfield) 166 | mesh = new Mesh(geometry, _material) 167 | ;(shape as ComplexShape).geometryId = geometry.id 168 | break 169 | } 170 | } 171 | scene.add(mesh) 172 | return mesh 173 | } 174 | 175 | function scaleMesh(mesh: Mesh, shape: Shape | ComplexShape): void { 176 | const { SPHERE, BOX, PLANE, CYLINDER, CONVEXPOLYHEDRON, TRIMESH, HEIGHTFIELD } = Shape.types 177 | switch (shape.type) { 178 | case SPHERE: { 179 | const { radius } = shape as Sphere 180 | mesh.scale.set(radius * scale, radius * scale, radius * scale) 181 | break 182 | } 183 | case BOX: { 184 | mesh.scale.copy((shape as Box).halfExtents as unknown as ThreeVector3) 185 | mesh.scale.multiplyScalar(2 * scale) 186 | break 187 | } 188 | case PLANE: { 189 | break 190 | } 191 | case CYLINDER: { 192 | mesh.scale.set(1 * scale, 1 * scale, 1 * scale) 193 | break 194 | } 195 | case CONVEXPOLYHEDRON: { 196 | mesh.scale.set(1 * scale, 1 * scale, 1 * scale) 197 | break 198 | } 199 | case TRIMESH: { 200 | mesh.scale.copy((shape as Trimesh).scale as unknown as ThreeVector3).multiplyScalar(scale) 201 | break 202 | } 203 | case HEIGHTFIELD: { 204 | mesh.scale.set(1 * scale, 1 * scale, 1 * scale) 205 | break 206 | } 207 | } 208 | } 209 | 210 | function typeMatch(mesh: Mesh, shape: Shape | ComplexShape): boolean { 211 | if (!mesh) return false 212 | const { geometry } = mesh 213 | return ( 214 | (geometry instanceof SphereGeometry && shape.type === Shape.types.SPHERE) || 215 | (geometry instanceof BoxGeometry && shape.type === Shape.types.BOX) || 216 | (geometry instanceof PlaneGeometry && shape.type === Shape.types.PLANE) || 217 | (geometry.id === (shape as ComplexShape).geometryId && shape.type === Shape.types.CYLINDER) || 218 | (geometry.id === (shape as ComplexShape).geometryId && shape.type === Shape.types.CONVEXPOLYHEDRON) || 219 | (geometry.id === (shape as ComplexShape).geometryId && shape.type === Shape.types.TRIMESH) || 220 | (geometry.id === (shape as ComplexShape).geometryId && shape.type === Shape.types.HEIGHTFIELD) 221 | ) 222 | } 223 | 224 | function updateMesh(index: number, shape: Shape | ComplexShape): boolean { 225 | let mesh = _meshes[index] 226 | let didCreateNewMesh = false 227 | 228 | if (!typeMatch(mesh, shape)) { 229 | if (mesh) scene.remove(mesh) 230 | _meshes[index] = mesh = createMesh(shape) 231 | didCreateNewMesh = true 232 | } 233 | 234 | scaleMesh(mesh, shape) 235 | return didCreateNewMesh 236 | } 237 | 238 | function update(): void { 239 | const meshes = _meshes 240 | const shapeWorldPosition = _tempVec0 241 | const shapeWorldQuaternion = _tempQuat0 242 | 243 | let meshIndex = 0 244 | 245 | for (const body of world.bodies) { 246 | for (let i = 0; i !== body.shapes.length; i++) { 247 | const shape = body.shapes[i] 248 | const didCreateNewMesh = updateMesh(meshIndex, shape) 249 | const mesh = meshes[meshIndex] 250 | 251 | if (mesh) { 252 | // Get world position 253 | body.quaternion.vmult(body.shapeOffsets[i], shapeWorldPosition) 254 | body.position.vadd(shapeWorldPosition, shapeWorldPosition) 255 | 256 | // Get world quaternion 257 | body.quaternion.mult(body.shapeOrientations[i], shapeWorldQuaternion) 258 | 259 | // Copy to meshes 260 | mesh.position.copy(shapeWorldPosition as unknown as ThreeVector3) 261 | mesh.quaternion.copy(shapeWorldQuaternion as unknown as ThreeQuaternion) 262 | 263 | if (didCreateNewMesh && onInit instanceof Function) onInit(body, mesh, shape) 264 | if (!didCreateNewMesh && onUpdate instanceof Function) onUpdate(body, mesh, shape) 265 | } 266 | 267 | meshIndex++ 268 | } 269 | } 270 | 271 | for (let i = meshIndex; i < meshes.length; i++) { 272 | const mesh = meshes[i] 273 | if (mesh) scene.remove(mesh) 274 | } 275 | 276 | meshes.length = meshIndex 277 | } 278 | 279 | return { update } 280 | } 281 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | cannon-es-debugger 6 | 7 | 31 | 32 | 33 |
Press the d key to toggle the debugger
34 | 35 | 36 | 37 | 38 | 39 | 49 | 339 | 340 | 341 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.16.0": 6 | version "7.16.0" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" 8 | integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== 9 | dependencies: 10 | "@babel/highlight" "^7.16.0" 11 | 12 | "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.0": 13 | version "7.16.0" 14 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.0.tgz#ea269d7f78deb3a7826c39a4048eecda541ebdaa" 15 | integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== 16 | 17 | "@babel/compat-data@^7.16.4": 18 | version "7.16.4" 19 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" 20 | integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== 21 | 22 | "@babel/core@^7.16.5": 23 | version "7.16.5" 24 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" 25 | integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== 26 | dependencies: 27 | "@babel/code-frame" "^7.16.0" 28 | "@babel/generator" "^7.16.5" 29 | "@babel/helper-compilation-targets" "^7.16.3" 30 | "@babel/helper-module-transforms" "^7.16.5" 31 | "@babel/helpers" "^7.16.5" 32 | "@babel/parser" "^7.16.5" 33 | "@babel/template" "^7.16.0" 34 | "@babel/traverse" "^7.16.5" 35 | "@babel/types" "^7.16.0" 36 | convert-source-map "^1.7.0" 37 | debug "^4.1.0" 38 | gensync "^1.0.0-beta.2" 39 | json5 "^2.1.2" 40 | semver "^6.3.0" 41 | source-map "^0.5.0" 42 | 43 | "@babel/generator@^7.16.0": 44 | version "7.16.0" 45 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" 46 | integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== 47 | dependencies: 48 | "@babel/types" "^7.16.0" 49 | jsesc "^2.5.1" 50 | source-map "^0.5.0" 51 | 52 | "@babel/generator@^7.16.5": 53 | version "7.16.5" 54 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.5.tgz#26e1192eb8f78e0a3acaf3eede3c6fc96d22bedf" 55 | integrity sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA== 56 | dependencies: 57 | "@babel/types" "^7.16.0" 58 | jsesc "^2.5.1" 59 | source-map "^0.5.0" 60 | 61 | "@babel/helper-annotate-as-pure@^7.10.4": 62 | version "7.10.4" 63 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" 64 | integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== 65 | dependencies: 66 | "@babel/types" "^7.10.4" 67 | 68 | "@babel/helper-annotate-as-pure@^7.16.0": 69 | version "7.16.0" 70 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" 71 | integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== 72 | dependencies: 73 | "@babel/types" "^7.16.0" 74 | 75 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.16.5": 76 | version "7.16.5" 77 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz#a8429d064dce8207194b8bf05a70a9ea828746af" 78 | integrity sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA== 79 | dependencies: 80 | "@babel/helper-explode-assignable-expression" "^7.16.0" 81 | "@babel/types" "^7.16.0" 82 | 83 | "@babel/helper-compilation-targets@^7.13.0": 84 | version "7.16.0" 85 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz#01d615762e796c17952c29e3ede9d6de07d235a8" 86 | integrity sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg== 87 | dependencies: 88 | "@babel/compat-data" "^7.16.0" 89 | "@babel/helper-validator-option" "^7.14.5" 90 | browserslist "^4.16.6" 91 | semver "^6.3.0" 92 | 93 | "@babel/helper-compilation-targets@^7.16.3": 94 | version "7.16.3" 95 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" 96 | integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== 97 | dependencies: 98 | "@babel/compat-data" "^7.16.0" 99 | "@babel/helper-validator-option" "^7.14.5" 100 | browserslist "^4.17.5" 101 | semver "^6.3.0" 102 | 103 | "@babel/helper-create-class-features-plugin@^7.16.0": 104 | version "7.16.0" 105 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz#090d4d166b342a03a9fec37ef4fd5aeb9c7c6a4b" 106 | integrity sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA== 107 | dependencies: 108 | "@babel/helper-annotate-as-pure" "^7.16.0" 109 | "@babel/helper-function-name" "^7.16.0" 110 | "@babel/helper-member-expression-to-functions" "^7.16.0" 111 | "@babel/helper-optimise-call-expression" "^7.16.0" 112 | "@babel/helper-replace-supers" "^7.16.0" 113 | "@babel/helper-split-export-declaration" "^7.16.0" 114 | 115 | "@babel/helper-create-class-features-plugin@^7.16.5": 116 | version "7.16.5" 117 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz#5d1bcd096792c1ebec6249eebc6358eec55d0cad" 118 | integrity sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg== 119 | dependencies: 120 | "@babel/helper-annotate-as-pure" "^7.16.0" 121 | "@babel/helper-environment-visitor" "^7.16.5" 122 | "@babel/helper-function-name" "^7.16.0" 123 | "@babel/helper-member-expression-to-functions" "^7.16.5" 124 | "@babel/helper-optimise-call-expression" "^7.16.0" 125 | "@babel/helper-replace-supers" "^7.16.5" 126 | "@babel/helper-split-export-declaration" "^7.16.0" 127 | 128 | "@babel/helper-create-regexp-features-plugin@^7.10.4": 129 | version "7.10.4" 130 | resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" 131 | integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== 132 | dependencies: 133 | "@babel/helper-annotate-as-pure" "^7.10.4" 134 | "@babel/helper-regex" "^7.10.4" 135 | regexpu-core "^4.7.0" 136 | 137 | "@babel/helper-create-regexp-features-plugin@^7.16.0": 138 | version "7.16.0" 139 | resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz#06b2348ce37fccc4f5e18dcd8d75053f2a7c44ff" 140 | integrity sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA== 141 | dependencies: 142 | "@babel/helper-annotate-as-pure" "^7.16.0" 143 | regexpu-core "^4.7.1" 144 | 145 | "@babel/helper-define-polyfill-provider@^0.3.0": 146 | version "0.3.0" 147 | resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" 148 | integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== 149 | dependencies: 150 | "@babel/helper-compilation-targets" "^7.13.0" 151 | "@babel/helper-module-imports" "^7.12.13" 152 | "@babel/helper-plugin-utils" "^7.13.0" 153 | "@babel/traverse" "^7.13.0" 154 | debug "^4.1.1" 155 | lodash.debounce "^4.0.8" 156 | resolve "^1.14.2" 157 | semver "^6.1.2" 158 | 159 | "@babel/helper-environment-visitor@^7.16.5": 160 | version "7.16.5" 161 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz#f6a7f38b3c6d8b07c88faea083c46c09ef5451b8" 162 | integrity sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg== 163 | dependencies: 164 | "@babel/types" "^7.16.0" 165 | 166 | "@babel/helper-explode-assignable-expression@^7.16.0": 167 | version "7.16.0" 168 | resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" 169 | integrity sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ== 170 | dependencies: 171 | "@babel/types" "^7.16.0" 172 | 173 | "@babel/helper-function-name@^7.16.0": 174 | version "7.16.0" 175 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" 176 | integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== 177 | dependencies: 178 | "@babel/helper-get-function-arity" "^7.16.0" 179 | "@babel/template" "^7.16.0" 180 | "@babel/types" "^7.16.0" 181 | 182 | "@babel/helper-get-function-arity@^7.16.0": 183 | version "7.16.0" 184 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" 185 | integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== 186 | dependencies: 187 | "@babel/types" "^7.16.0" 188 | 189 | "@babel/helper-hoist-variables@^7.16.0": 190 | version "7.16.0" 191 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" 192 | integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== 193 | dependencies: 194 | "@babel/types" "^7.16.0" 195 | 196 | "@babel/helper-member-expression-to-functions@^7.16.0": 197 | version "7.16.0" 198 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz#29287040efd197c77636ef75188e81da8bccd5a4" 199 | integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== 200 | dependencies: 201 | "@babel/types" "^7.16.0" 202 | 203 | "@babel/helper-member-expression-to-functions@^7.16.5": 204 | version "7.16.5" 205 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz#1bc9f7e87354e86f8879c67b316cb03d3dc2caab" 206 | integrity sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw== 207 | dependencies: 208 | "@babel/types" "^7.16.0" 209 | 210 | "@babel/helper-module-imports@^7.10.4": 211 | version "7.10.4" 212 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" 213 | integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== 214 | dependencies: 215 | "@babel/types" "^7.10.4" 216 | 217 | "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": 218 | version "7.16.0" 219 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" 220 | integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== 221 | dependencies: 222 | "@babel/types" "^7.16.0" 223 | 224 | "@babel/helper-module-transforms@^7.16.5": 225 | version "7.16.5" 226 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz#530ebf6ea87b500f60840578515adda2af470a29" 227 | integrity sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ== 228 | dependencies: 229 | "@babel/helper-environment-visitor" "^7.16.5" 230 | "@babel/helper-module-imports" "^7.16.0" 231 | "@babel/helper-simple-access" "^7.16.0" 232 | "@babel/helper-split-export-declaration" "^7.16.0" 233 | "@babel/helper-validator-identifier" "^7.15.7" 234 | "@babel/template" "^7.16.0" 235 | "@babel/traverse" "^7.16.5" 236 | "@babel/types" "^7.16.0" 237 | 238 | "@babel/helper-optimise-call-expression@^7.16.0": 239 | version "7.16.0" 240 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" 241 | integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== 242 | dependencies: 243 | "@babel/types" "^7.16.0" 244 | 245 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": 246 | version "7.10.4" 247 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" 248 | integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== 249 | 250 | "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5": 251 | version "7.14.5" 252 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" 253 | integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== 254 | 255 | "@babel/helper-plugin-utils@^7.16.5": 256 | version "7.16.5" 257 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" 258 | integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== 259 | 260 | "@babel/helper-regex@^7.10.4": 261 | version "7.10.5" 262 | resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" 263 | integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== 264 | dependencies: 265 | lodash "^4.17.19" 266 | 267 | "@babel/helper-remap-async-to-generator@^7.16.5": 268 | version "7.16.5" 269 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz#e706646dc4018942acb4b29f7e185bc246d65ac3" 270 | integrity sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw== 271 | dependencies: 272 | "@babel/helper-annotate-as-pure" "^7.16.0" 273 | "@babel/helper-wrap-function" "^7.16.5" 274 | "@babel/types" "^7.16.0" 275 | 276 | "@babel/helper-replace-supers@^7.16.0": 277 | version "7.16.0" 278 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" 279 | integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== 280 | dependencies: 281 | "@babel/helper-member-expression-to-functions" "^7.16.0" 282 | "@babel/helper-optimise-call-expression" "^7.16.0" 283 | "@babel/traverse" "^7.16.0" 284 | "@babel/types" "^7.16.0" 285 | 286 | "@babel/helper-replace-supers@^7.16.5": 287 | version "7.16.5" 288 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz#96d3988bd0ab0a2d22c88c6198c3d3234ca25326" 289 | integrity sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ== 290 | dependencies: 291 | "@babel/helper-environment-visitor" "^7.16.5" 292 | "@babel/helper-member-expression-to-functions" "^7.16.5" 293 | "@babel/helper-optimise-call-expression" "^7.16.0" 294 | "@babel/traverse" "^7.16.5" 295 | "@babel/types" "^7.16.0" 296 | 297 | "@babel/helper-simple-access@^7.16.0": 298 | version "7.16.0" 299 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" 300 | integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== 301 | dependencies: 302 | "@babel/types" "^7.16.0" 303 | 304 | "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": 305 | version "7.16.0" 306 | resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" 307 | integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== 308 | dependencies: 309 | "@babel/types" "^7.16.0" 310 | 311 | "@babel/helper-split-export-declaration@^7.16.0": 312 | version "7.16.0" 313 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" 314 | integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== 315 | dependencies: 316 | "@babel/types" "^7.16.0" 317 | 318 | "@babel/helper-validator-identifier@^7.10.4": 319 | version "7.10.4" 320 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" 321 | integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== 322 | 323 | "@babel/helper-validator-identifier@^7.15.7": 324 | version "7.15.7" 325 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" 326 | integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== 327 | 328 | "@babel/helper-validator-option@^7.14.5": 329 | version "7.14.5" 330 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" 331 | integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== 332 | 333 | "@babel/helper-wrap-function@^7.16.5": 334 | version "7.16.5" 335 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz#0158fca6f6d0889c3fee8a6ed6e5e07b9b54e41f" 336 | integrity sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA== 337 | dependencies: 338 | "@babel/helper-function-name" "^7.16.0" 339 | "@babel/template" "^7.16.0" 340 | "@babel/traverse" "^7.16.5" 341 | "@babel/types" "^7.16.0" 342 | 343 | "@babel/helpers@^7.16.5": 344 | version "7.16.5" 345 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.5.tgz#29a052d4b827846dd76ece16f565b9634c554ebd" 346 | integrity sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw== 347 | dependencies: 348 | "@babel/template" "^7.16.0" 349 | "@babel/traverse" "^7.16.5" 350 | "@babel/types" "^7.16.0" 351 | 352 | "@babel/highlight@^7.16.0": 353 | version "7.16.0" 354 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" 355 | integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== 356 | dependencies: 357 | "@babel/helper-validator-identifier" "^7.15.7" 358 | chalk "^2.0.0" 359 | js-tokens "^4.0.0" 360 | 361 | "@babel/parser@^7.16.0": 362 | version "7.16.2" 363 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.2.tgz#3723cd5c8d8773eef96ce57ea1d9b7faaccd12ac" 364 | integrity sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw== 365 | 366 | "@babel/parser@^7.16.5": 367 | version "7.16.6" 368 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" 369 | integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== 370 | 371 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": 372 | version "7.16.2" 373 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" 374 | integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== 375 | dependencies: 376 | "@babel/helper-plugin-utils" "^7.14.5" 377 | 378 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.0": 379 | version "7.16.0" 380 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz#358972eaab006f5eb0826183b0c93cbcaf13e1e2" 381 | integrity sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA== 382 | dependencies: 383 | "@babel/helper-plugin-utils" "^7.14.5" 384 | "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" 385 | "@babel/plugin-proposal-optional-chaining" "^7.16.0" 386 | 387 | "@babel/plugin-proposal-async-generator-functions@^7.16.5": 388 | version "7.16.5" 389 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz#fd3bd7e0d98404a3d4cbca15a72d533f8c9a2f67" 390 | integrity sha512-C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA== 391 | dependencies: 392 | "@babel/helper-plugin-utils" "^7.16.5" 393 | "@babel/helper-remap-async-to-generator" "^7.16.5" 394 | "@babel/plugin-syntax-async-generators" "^7.8.4" 395 | 396 | "@babel/plugin-proposal-class-properties@^7.16.5": 397 | version "7.16.5" 398 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz#3269f44b89122110f6339806e05d43d84106468a" 399 | integrity sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A== 400 | dependencies: 401 | "@babel/helper-create-class-features-plugin" "^7.16.5" 402 | "@babel/helper-plugin-utils" "^7.16.5" 403 | 404 | "@babel/plugin-proposal-class-static-block@^7.16.5": 405 | version "7.16.5" 406 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz#df58ab015a7d3b0963aafc8f20792dcd834952a9" 407 | integrity sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ== 408 | dependencies: 409 | "@babel/helper-create-class-features-plugin" "^7.16.5" 410 | "@babel/helper-plugin-utils" "^7.16.5" 411 | "@babel/plugin-syntax-class-static-block" "^7.14.5" 412 | 413 | "@babel/plugin-proposal-dynamic-import@^7.16.5": 414 | version "7.16.5" 415 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz#2e0d19d5702db4dcb9bc846200ca02f2e9d60e9e" 416 | integrity sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ== 417 | dependencies: 418 | "@babel/helper-plugin-utils" "^7.16.5" 419 | "@babel/plugin-syntax-dynamic-import" "^7.8.3" 420 | 421 | "@babel/plugin-proposal-export-namespace-from@^7.16.5": 422 | version "7.16.5" 423 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz#3b4dd28378d1da2fea33e97b9f25d1c2f5bf1ac9" 424 | integrity sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw== 425 | dependencies: 426 | "@babel/helper-plugin-utils" "^7.16.5" 427 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3" 428 | 429 | "@babel/plugin-proposal-json-strings@^7.16.5": 430 | version "7.16.5" 431 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz#1e726930fca139caab6b084d232a9270d9d16f9c" 432 | integrity sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ== 433 | dependencies: 434 | "@babel/helper-plugin-utils" "^7.16.5" 435 | "@babel/plugin-syntax-json-strings" "^7.8.3" 436 | 437 | "@babel/plugin-proposal-logical-assignment-operators@^7.16.5": 438 | version "7.16.5" 439 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz#df1f2e4b5a0ec07abf061d2c18e53abc237d3ef5" 440 | integrity sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA== 441 | dependencies: 442 | "@babel/helper-plugin-utils" "^7.16.5" 443 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 444 | 445 | "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.5": 446 | version "7.16.5" 447 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz#652555bfeeeee2d2104058c6225dc6f75e2d0f07" 448 | integrity sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg== 449 | dependencies: 450 | "@babel/helper-plugin-utils" "^7.16.5" 451 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 452 | 453 | "@babel/plugin-proposal-numeric-separator@^7.16.5": 454 | version "7.16.5" 455 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz#edcb6379b6cf4570be64c45965d8da7a2debf039" 456 | integrity sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw== 457 | dependencies: 458 | "@babel/helper-plugin-utils" "^7.16.5" 459 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" 460 | 461 | "@babel/plugin-proposal-object-rest-spread@^7.16.5": 462 | version "7.16.5" 463 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz#f30f80dacf7bc1404bf67f99c8d9c01665e830ad" 464 | integrity sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw== 465 | dependencies: 466 | "@babel/compat-data" "^7.16.4" 467 | "@babel/helper-compilation-targets" "^7.16.3" 468 | "@babel/helper-plugin-utils" "^7.16.5" 469 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 470 | "@babel/plugin-transform-parameters" "^7.16.5" 471 | 472 | "@babel/plugin-proposal-optional-catch-binding@^7.16.5": 473 | version "7.16.5" 474 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz#1a5405765cf589a11a33a1fd75b2baef7d48b74e" 475 | integrity sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ== 476 | dependencies: 477 | "@babel/helper-plugin-utils" "^7.16.5" 478 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 479 | 480 | "@babel/plugin-proposal-optional-chaining@^7.16.0": 481 | version "7.16.0" 482 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz#56dbc3970825683608e9efb55ea82c2a2d6c8dc0" 483 | integrity sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg== 484 | dependencies: 485 | "@babel/helper-plugin-utils" "^7.14.5" 486 | "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" 487 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 488 | 489 | "@babel/plugin-proposal-optional-chaining@^7.16.5": 490 | version "7.16.5" 491 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz#a5fa61056194d5059366c0009cb9a9e66ed75c1f" 492 | integrity sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A== 493 | dependencies: 494 | "@babel/helper-plugin-utils" "^7.16.5" 495 | "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" 496 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 497 | 498 | "@babel/plugin-proposal-private-methods@^7.16.5": 499 | version "7.16.5" 500 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz#2086f7d78c1b0c712d49b5c3fbc2d1ca21a7ee12" 501 | integrity sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA== 502 | dependencies: 503 | "@babel/helper-create-class-features-plugin" "^7.16.5" 504 | "@babel/helper-plugin-utils" "^7.16.5" 505 | 506 | "@babel/plugin-proposal-private-property-in-object@^7.16.5": 507 | version "7.16.5" 508 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz#a42d4b56005db3d405b12841309dbca647e7a21b" 509 | integrity sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA== 510 | dependencies: 511 | "@babel/helper-annotate-as-pure" "^7.16.0" 512 | "@babel/helper-create-class-features-plugin" "^7.16.5" 513 | "@babel/helper-plugin-utils" "^7.16.5" 514 | "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 515 | 516 | "@babel/plugin-proposal-unicode-property-regex@^7.16.5": 517 | version "7.16.5" 518 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz#35fe753afa7c572f322bd068ff3377bde0f37080" 519 | integrity sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg== 520 | dependencies: 521 | "@babel/helper-create-regexp-features-plugin" "^7.16.0" 522 | "@babel/helper-plugin-utils" "^7.16.5" 523 | 524 | "@babel/plugin-proposal-unicode-property-regex@^7.4.4": 525 | version "7.10.4" 526 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" 527 | integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== 528 | dependencies: 529 | "@babel/helper-create-regexp-features-plugin" "^7.10.4" 530 | "@babel/helper-plugin-utils" "^7.10.4" 531 | 532 | "@babel/plugin-syntax-async-generators@^7.8.4": 533 | version "7.8.4" 534 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" 535 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== 536 | dependencies: 537 | "@babel/helper-plugin-utils" "^7.8.0" 538 | 539 | "@babel/plugin-syntax-class-properties@^7.12.13": 540 | version "7.12.13" 541 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" 542 | integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== 543 | dependencies: 544 | "@babel/helper-plugin-utils" "^7.12.13" 545 | 546 | "@babel/plugin-syntax-class-static-block@^7.14.5": 547 | version "7.14.5" 548 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" 549 | integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== 550 | dependencies: 551 | "@babel/helper-plugin-utils" "^7.14.5" 552 | 553 | "@babel/plugin-syntax-dynamic-import@^7.8.3": 554 | version "7.8.3" 555 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" 556 | integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== 557 | dependencies: 558 | "@babel/helper-plugin-utils" "^7.8.0" 559 | 560 | "@babel/plugin-syntax-export-namespace-from@^7.8.3": 561 | version "7.8.3" 562 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" 563 | integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== 564 | dependencies: 565 | "@babel/helper-plugin-utils" "^7.8.3" 566 | 567 | "@babel/plugin-syntax-json-strings@^7.8.3": 568 | version "7.8.3" 569 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" 570 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== 571 | dependencies: 572 | "@babel/helper-plugin-utils" "^7.8.0" 573 | 574 | "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": 575 | version "7.10.4" 576 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" 577 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== 578 | dependencies: 579 | "@babel/helper-plugin-utils" "^7.10.4" 580 | 581 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": 582 | version "7.8.3" 583 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" 584 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== 585 | dependencies: 586 | "@babel/helper-plugin-utils" "^7.8.0" 587 | 588 | "@babel/plugin-syntax-numeric-separator@^7.10.4": 589 | version "7.10.4" 590 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" 591 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== 592 | dependencies: 593 | "@babel/helper-plugin-utils" "^7.10.4" 594 | 595 | "@babel/plugin-syntax-object-rest-spread@^7.8.3": 596 | version "7.8.3" 597 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" 598 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== 599 | dependencies: 600 | "@babel/helper-plugin-utils" "^7.8.0" 601 | 602 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3": 603 | version "7.8.3" 604 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" 605 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== 606 | dependencies: 607 | "@babel/helper-plugin-utils" "^7.8.0" 608 | 609 | "@babel/plugin-syntax-optional-chaining@^7.8.3": 610 | version "7.8.3" 611 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" 612 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== 613 | dependencies: 614 | "@babel/helper-plugin-utils" "^7.8.0" 615 | 616 | "@babel/plugin-syntax-private-property-in-object@^7.14.5": 617 | version "7.14.5" 618 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" 619 | integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== 620 | dependencies: 621 | "@babel/helper-plugin-utils" "^7.14.5" 622 | 623 | "@babel/plugin-syntax-top-level-await@^7.14.5": 624 | version "7.14.5" 625 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" 626 | integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== 627 | dependencies: 628 | "@babel/helper-plugin-utils" "^7.14.5" 629 | 630 | "@babel/plugin-syntax-typescript@^7.16.0": 631 | version "7.16.0" 632 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz#2feeb13d9334cc582ea9111d3506f773174179bb" 633 | integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ== 634 | dependencies: 635 | "@babel/helper-plugin-utils" "^7.14.5" 636 | 637 | "@babel/plugin-transform-arrow-functions@^7.16.5": 638 | version "7.16.5" 639 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz#04c18944dd55397b521d9d7511e791acea7acf2d" 640 | integrity sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ== 641 | dependencies: 642 | "@babel/helper-plugin-utils" "^7.16.5" 643 | 644 | "@babel/plugin-transform-async-to-generator@^7.16.5": 645 | version "7.16.5" 646 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz#89c9b501e65bb14c4579a6ce9563f859de9b34e4" 647 | integrity sha512-TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w== 648 | dependencies: 649 | "@babel/helper-module-imports" "^7.16.0" 650 | "@babel/helper-plugin-utils" "^7.16.5" 651 | "@babel/helper-remap-async-to-generator" "^7.16.5" 652 | 653 | "@babel/plugin-transform-block-scoped-functions@^7.16.5": 654 | version "7.16.5" 655 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz#af087494e1c387574260b7ee9b58cdb5a4e9b0b0" 656 | integrity sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw== 657 | dependencies: 658 | "@babel/helper-plugin-utils" "^7.16.5" 659 | 660 | "@babel/plugin-transform-block-scoping@^7.16.5": 661 | version "7.16.5" 662 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz#b91f254fe53e210eabe4dd0c40f71c0ed253c5e7" 663 | integrity sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ== 664 | dependencies: 665 | "@babel/helper-plugin-utils" "^7.16.5" 666 | 667 | "@babel/plugin-transform-classes@^7.16.5": 668 | version "7.16.5" 669 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz#6acf2ec7adb50fb2f3194dcd2909dbd056dcf216" 670 | integrity sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA== 671 | dependencies: 672 | "@babel/helper-annotate-as-pure" "^7.16.0" 673 | "@babel/helper-environment-visitor" "^7.16.5" 674 | "@babel/helper-function-name" "^7.16.0" 675 | "@babel/helper-optimise-call-expression" "^7.16.0" 676 | "@babel/helper-plugin-utils" "^7.16.5" 677 | "@babel/helper-replace-supers" "^7.16.5" 678 | "@babel/helper-split-export-declaration" "^7.16.0" 679 | globals "^11.1.0" 680 | 681 | "@babel/plugin-transform-computed-properties@^7.16.5": 682 | version "7.16.5" 683 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz#2af91ebf0cceccfcc701281ada7cfba40a9b322a" 684 | integrity sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg== 685 | dependencies: 686 | "@babel/helper-plugin-utils" "^7.16.5" 687 | 688 | "@babel/plugin-transform-destructuring@^7.16.5": 689 | version "7.16.5" 690 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz#89ebc87499ac4a81b897af53bb5d3eed261bd568" 691 | integrity sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg== 692 | dependencies: 693 | "@babel/helper-plugin-utils" "^7.16.5" 694 | 695 | "@babel/plugin-transform-dotall-regex@^7.16.5": 696 | version "7.16.5" 697 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz#b40739c00b6686820653536d6d143e311de67936" 698 | integrity sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw== 699 | dependencies: 700 | "@babel/helper-create-regexp-features-plugin" "^7.16.0" 701 | "@babel/helper-plugin-utils" "^7.16.5" 702 | 703 | "@babel/plugin-transform-dotall-regex@^7.4.4": 704 | version "7.10.4" 705 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" 706 | integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== 707 | dependencies: 708 | "@babel/helper-create-regexp-features-plugin" "^7.10.4" 709 | "@babel/helper-plugin-utils" "^7.10.4" 710 | 711 | "@babel/plugin-transform-duplicate-keys@^7.16.5": 712 | version "7.16.5" 713 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz#2450f2742325412b746d7d005227f5e8973b512a" 714 | integrity sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg== 715 | dependencies: 716 | "@babel/helper-plugin-utils" "^7.16.5" 717 | 718 | "@babel/plugin-transform-exponentiation-operator@^7.16.5": 719 | version "7.16.5" 720 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz#36e261fa1ab643cfaf30eeab38e00ed1a76081e2" 721 | integrity sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA== 722 | dependencies: 723 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.5" 724 | "@babel/helper-plugin-utils" "^7.16.5" 725 | 726 | "@babel/plugin-transform-for-of@^7.16.5": 727 | version "7.16.5" 728 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz#9b544059c6ca11d565457c0ff1f08e13ce225261" 729 | integrity sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw== 730 | dependencies: 731 | "@babel/helper-plugin-utils" "^7.16.5" 732 | 733 | "@babel/plugin-transform-function-name@^7.16.5": 734 | version "7.16.5" 735 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz#6896ebb6a5538a75d6a4086a277752f655a7bd15" 736 | integrity sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ== 737 | dependencies: 738 | "@babel/helper-function-name" "^7.16.0" 739 | "@babel/helper-plugin-utils" "^7.16.5" 740 | 741 | "@babel/plugin-transform-literals@^7.16.5": 742 | version "7.16.5" 743 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz#af392b90e3edb2bd6dc316844cbfd6b9e009d320" 744 | integrity sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw== 745 | dependencies: 746 | "@babel/helper-plugin-utils" "^7.16.5" 747 | 748 | "@babel/plugin-transform-member-expression-literals@^7.16.5": 749 | version "7.16.5" 750 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz#4bd6ecdc11932361631097b779ca5c7570146dd5" 751 | integrity sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ== 752 | dependencies: 753 | "@babel/helper-plugin-utils" "^7.16.5" 754 | 755 | "@babel/plugin-transform-modules-amd@^7.16.5": 756 | version "7.16.5" 757 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz#92c0a3e83f642cb7e75fada9ab497c12c2616527" 758 | integrity sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ== 759 | dependencies: 760 | "@babel/helper-module-transforms" "^7.16.5" 761 | "@babel/helper-plugin-utils" "^7.16.5" 762 | babel-plugin-dynamic-import-node "^2.3.3" 763 | 764 | "@babel/plugin-transform-modules-commonjs@^7.16.5": 765 | version "7.16.5" 766 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz#4ee03b089536f076b2773196529d27c32b9d7bde" 767 | integrity sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ== 768 | dependencies: 769 | "@babel/helper-module-transforms" "^7.16.5" 770 | "@babel/helper-plugin-utils" "^7.16.5" 771 | "@babel/helper-simple-access" "^7.16.0" 772 | babel-plugin-dynamic-import-node "^2.3.3" 773 | 774 | "@babel/plugin-transform-modules-systemjs@^7.16.5": 775 | version "7.16.5" 776 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz#07078ba2e3cc94fbdd06836e355c246e98ad006b" 777 | integrity sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA== 778 | dependencies: 779 | "@babel/helper-hoist-variables" "^7.16.0" 780 | "@babel/helper-module-transforms" "^7.16.5" 781 | "@babel/helper-plugin-utils" "^7.16.5" 782 | "@babel/helper-validator-identifier" "^7.15.7" 783 | babel-plugin-dynamic-import-node "^2.3.3" 784 | 785 | "@babel/plugin-transform-modules-umd@^7.16.5": 786 | version "7.16.5" 787 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz#caa9c53d636fb4e3c99fd35a4c9ba5e5cd7e002e" 788 | integrity sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw== 789 | dependencies: 790 | "@babel/helper-module-transforms" "^7.16.5" 791 | "@babel/helper-plugin-utils" "^7.16.5" 792 | 793 | "@babel/plugin-transform-named-capturing-groups-regex@^7.16.5": 794 | version "7.16.5" 795 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz#4afd8cdee377ce3568f4e8a9ee67539b69886a3c" 796 | integrity sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA== 797 | dependencies: 798 | "@babel/helper-create-regexp-features-plugin" "^7.16.0" 799 | 800 | "@babel/plugin-transform-new-target@^7.16.5": 801 | version "7.16.5" 802 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz#759ea9d6fbbc20796056a5d89d13977626384416" 803 | integrity sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg== 804 | dependencies: 805 | "@babel/helper-plugin-utils" "^7.16.5" 806 | 807 | "@babel/plugin-transform-object-super@^7.16.5": 808 | version "7.16.5" 809 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz#8ccd9a1bcd3e7732ff8aa1702d067d8cd70ce380" 810 | integrity sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg== 811 | dependencies: 812 | "@babel/helper-plugin-utils" "^7.16.5" 813 | "@babel/helper-replace-supers" "^7.16.5" 814 | 815 | "@babel/plugin-transform-parameters@^7.16.5": 816 | version "7.16.5" 817 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz#4fc74b18a89638bd90aeec44a11793ecbe031dde" 818 | integrity sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA== 819 | dependencies: 820 | "@babel/helper-plugin-utils" "^7.16.5" 821 | 822 | "@babel/plugin-transform-property-literals@^7.16.5": 823 | version "7.16.5" 824 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz#58f1465a7202a2bb2e6b003905212dd7a79abe3f" 825 | integrity sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg== 826 | dependencies: 827 | "@babel/helper-plugin-utils" "^7.16.5" 828 | 829 | "@babel/plugin-transform-regenerator@^7.16.5": 830 | version "7.16.5" 831 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz#704cc6d8dd3dd4758267621ab7b36375238cef13" 832 | integrity sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg== 833 | dependencies: 834 | regenerator-transform "^0.14.2" 835 | 836 | "@babel/plugin-transform-reserved-words@^7.16.5": 837 | version "7.16.5" 838 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz#db95e98799675e193dc2b47d3e72a7c0651d0c30" 839 | integrity sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw== 840 | dependencies: 841 | "@babel/helper-plugin-utils" "^7.16.5" 842 | 843 | "@babel/plugin-transform-shorthand-properties@^7.16.5": 844 | version "7.16.5" 845 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz#ccb60b1a23b799f5b9a14d97c5bc81025ffd96d7" 846 | integrity sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg== 847 | dependencies: 848 | "@babel/helper-plugin-utils" "^7.16.5" 849 | 850 | "@babel/plugin-transform-spread@^7.16.5": 851 | version "7.16.5" 852 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz#912b06cff482c233025d3e69cf56d3e8fa166c29" 853 | integrity sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw== 854 | dependencies: 855 | "@babel/helper-plugin-utils" "^7.16.5" 856 | "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" 857 | 858 | "@babel/plugin-transform-sticky-regex@^7.16.5": 859 | version "7.16.5" 860 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz#593579bb2b5a8adfbe02cb43823275d9098f75f9" 861 | integrity sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg== 862 | dependencies: 863 | "@babel/helper-plugin-utils" "^7.16.5" 864 | 865 | "@babel/plugin-transform-template-literals@^7.16.5": 866 | version "7.16.5" 867 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz#343651385fd9923f5aa2275ca352c5d9183e1773" 868 | integrity sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ== 869 | dependencies: 870 | "@babel/helper-plugin-utils" "^7.16.5" 871 | 872 | "@babel/plugin-transform-typeof-symbol@^7.16.5": 873 | version "7.16.5" 874 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz#a1d1bf2c71573fe30965d0e4cd6a3291202e20ed" 875 | integrity sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ== 876 | dependencies: 877 | "@babel/helper-plugin-utils" "^7.16.5" 878 | 879 | "@babel/plugin-transform-typescript@^7.16.1": 880 | version "7.16.1" 881 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.1.tgz#cc0670b2822b0338355bc1b3d2246a42b8166409" 882 | integrity sha512-NO4XoryBng06jjw/qWEU2LhcLJr1tWkhpMam/H4eas/CDKMX/b2/Ylb6EI256Y7+FVPCawwSM1rrJNOpDiz+Lg== 883 | dependencies: 884 | "@babel/helper-create-class-features-plugin" "^7.16.0" 885 | "@babel/helper-plugin-utils" "^7.14.5" 886 | "@babel/plugin-syntax-typescript" "^7.16.0" 887 | 888 | "@babel/plugin-transform-unicode-escapes@^7.16.5": 889 | version "7.16.5" 890 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz#80507c225af49b4f4ee647e2a0ce53d2eeff9e85" 891 | integrity sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q== 892 | dependencies: 893 | "@babel/helper-plugin-utils" "^7.16.5" 894 | 895 | "@babel/plugin-transform-unicode-regex@^7.16.5": 896 | version "7.16.5" 897 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz#ac84d6a1def947d71ffb832426aa53b83d7ed49e" 898 | integrity sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw== 899 | dependencies: 900 | "@babel/helper-create-regexp-features-plugin" "^7.16.0" 901 | "@babel/helper-plugin-utils" "^7.16.5" 902 | 903 | "@babel/preset-env@^7.16.5": 904 | version "7.16.5" 905 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.5.tgz#2e94d922f4a890979af04ffeb6a6b4e44ba90847" 906 | integrity sha512-MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ== 907 | dependencies: 908 | "@babel/compat-data" "^7.16.4" 909 | "@babel/helper-compilation-targets" "^7.16.3" 910 | "@babel/helper-plugin-utils" "^7.16.5" 911 | "@babel/helper-validator-option" "^7.14.5" 912 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" 913 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" 914 | "@babel/plugin-proposal-async-generator-functions" "^7.16.5" 915 | "@babel/plugin-proposal-class-properties" "^7.16.5" 916 | "@babel/plugin-proposal-class-static-block" "^7.16.5" 917 | "@babel/plugin-proposal-dynamic-import" "^7.16.5" 918 | "@babel/plugin-proposal-export-namespace-from" "^7.16.5" 919 | "@babel/plugin-proposal-json-strings" "^7.16.5" 920 | "@babel/plugin-proposal-logical-assignment-operators" "^7.16.5" 921 | "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.5" 922 | "@babel/plugin-proposal-numeric-separator" "^7.16.5" 923 | "@babel/plugin-proposal-object-rest-spread" "^7.16.5" 924 | "@babel/plugin-proposal-optional-catch-binding" "^7.16.5" 925 | "@babel/plugin-proposal-optional-chaining" "^7.16.5" 926 | "@babel/plugin-proposal-private-methods" "^7.16.5" 927 | "@babel/plugin-proposal-private-property-in-object" "^7.16.5" 928 | "@babel/plugin-proposal-unicode-property-regex" "^7.16.5" 929 | "@babel/plugin-syntax-async-generators" "^7.8.4" 930 | "@babel/plugin-syntax-class-properties" "^7.12.13" 931 | "@babel/plugin-syntax-class-static-block" "^7.14.5" 932 | "@babel/plugin-syntax-dynamic-import" "^7.8.3" 933 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3" 934 | "@babel/plugin-syntax-json-strings" "^7.8.3" 935 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 936 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 937 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" 938 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 939 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 940 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 941 | "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 942 | "@babel/plugin-syntax-top-level-await" "^7.14.5" 943 | "@babel/plugin-transform-arrow-functions" "^7.16.5" 944 | "@babel/plugin-transform-async-to-generator" "^7.16.5" 945 | "@babel/plugin-transform-block-scoped-functions" "^7.16.5" 946 | "@babel/plugin-transform-block-scoping" "^7.16.5" 947 | "@babel/plugin-transform-classes" "^7.16.5" 948 | "@babel/plugin-transform-computed-properties" "^7.16.5" 949 | "@babel/plugin-transform-destructuring" "^7.16.5" 950 | "@babel/plugin-transform-dotall-regex" "^7.16.5" 951 | "@babel/plugin-transform-duplicate-keys" "^7.16.5" 952 | "@babel/plugin-transform-exponentiation-operator" "^7.16.5" 953 | "@babel/plugin-transform-for-of" "^7.16.5" 954 | "@babel/plugin-transform-function-name" "^7.16.5" 955 | "@babel/plugin-transform-literals" "^7.16.5" 956 | "@babel/plugin-transform-member-expression-literals" "^7.16.5" 957 | "@babel/plugin-transform-modules-amd" "^7.16.5" 958 | "@babel/plugin-transform-modules-commonjs" "^7.16.5" 959 | "@babel/plugin-transform-modules-systemjs" "^7.16.5" 960 | "@babel/plugin-transform-modules-umd" "^7.16.5" 961 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.5" 962 | "@babel/plugin-transform-new-target" "^7.16.5" 963 | "@babel/plugin-transform-object-super" "^7.16.5" 964 | "@babel/plugin-transform-parameters" "^7.16.5" 965 | "@babel/plugin-transform-property-literals" "^7.16.5" 966 | "@babel/plugin-transform-regenerator" "^7.16.5" 967 | "@babel/plugin-transform-reserved-words" "^7.16.5" 968 | "@babel/plugin-transform-shorthand-properties" "^7.16.5" 969 | "@babel/plugin-transform-spread" "^7.16.5" 970 | "@babel/plugin-transform-sticky-regex" "^7.16.5" 971 | "@babel/plugin-transform-template-literals" "^7.16.5" 972 | "@babel/plugin-transform-typeof-symbol" "^7.16.5" 973 | "@babel/plugin-transform-unicode-escapes" "^7.16.5" 974 | "@babel/plugin-transform-unicode-regex" "^7.16.5" 975 | "@babel/preset-modules" "^0.1.5" 976 | "@babel/types" "^7.16.0" 977 | babel-plugin-polyfill-corejs2 "^0.3.0" 978 | babel-plugin-polyfill-corejs3 "^0.4.0" 979 | babel-plugin-polyfill-regenerator "^0.3.0" 980 | core-js-compat "^3.19.1" 981 | semver "^6.3.0" 982 | 983 | "@babel/preset-modules@^0.1.5": 984 | version "0.1.5" 985 | resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" 986 | integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== 987 | dependencies: 988 | "@babel/helper-plugin-utils" "^7.0.0" 989 | "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" 990 | "@babel/plugin-transform-dotall-regex" "^7.4.4" 991 | "@babel/types" "^7.4.4" 992 | esutils "^2.0.2" 993 | 994 | "@babel/preset-typescript@^7.16.5": 995 | version "7.16.5" 996 | resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.5.tgz#b86a5b0ae739ba741347d2f58c52f52e63cf1ba1" 997 | integrity sha512-lmAWRoJ9iOSvs3DqOndQpj8XqXkzaiQs50VG/zESiI9D3eoZhGriU675xNCr0UwvsuXrhMAGvyk1w+EVWF3u8Q== 998 | dependencies: 999 | "@babel/helper-plugin-utils" "^7.16.5" 1000 | "@babel/helper-validator-option" "^7.14.5" 1001 | "@babel/plugin-transform-typescript" "^7.16.1" 1002 | 1003 | "@babel/runtime@^7.8.4": 1004 | version "7.11.2" 1005 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" 1006 | integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== 1007 | dependencies: 1008 | regenerator-runtime "^0.13.4" 1009 | 1010 | "@babel/template@^7.16.0": 1011 | version "7.16.0" 1012 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" 1013 | integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== 1014 | dependencies: 1015 | "@babel/code-frame" "^7.16.0" 1016 | "@babel/parser" "^7.16.0" 1017 | "@babel/types" "^7.16.0" 1018 | 1019 | "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.0": 1020 | version "7.16.0" 1021 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.0.tgz#965df6c6bfc0a958c1e739284d3c9fa4a6e3c45b" 1022 | integrity sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ== 1023 | dependencies: 1024 | "@babel/code-frame" "^7.16.0" 1025 | "@babel/generator" "^7.16.0" 1026 | "@babel/helper-function-name" "^7.16.0" 1027 | "@babel/helper-hoist-variables" "^7.16.0" 1028 | "@babel/helper-split-export-declaration" "^7.16.0" 1029 | "@babel/parser" "^7.16.0" 1030 | "@babel/types" "^7.16.0" 1031 | debug "^4.1.0" 1032 | globals "^11.1.0" 1033 | 1034 | "@babel/traverse@^7.16.5": 1035 | version "7.16.5" 1036 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" 1037 | integrity sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ== 1038 | dependencies: 1039 | "@babel/code-frame" "^7.16.0" 1040 | "@babel/generator" "^7.16.5" 1041 | "@babel/helper-environment-visitor" "^7.16.5" 1042 | "@babel/helper-function-name" "^7.16.0" 1043 | "@babel/helper-hoist-variables" "^7.16.0" 1044 | "@babel/helper-split-export-declaration" "^7.16.0" 1045 | "@babel/parser" "^7.16.5" 1046 | "@babel/types" "^7.16.0" 1047 | debug "^4.1.0" 1048 | globals "^11.1.0" 1049 | 1050 | "@babel/types@^7.10.4", "@babel/types@^7.4.4": 1051 | version "7.11.5" 1052 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" 1053 | integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== 1054 | dependencies: 1055 | "@babel/helper-validator-identifier" "^7.10.4" 1056 | lodash "^4.17.19" 1057 | to-fast-properties "^2.0.0" 1058 | 1059 | "@babel/types@^7.16.0": 1060 | version "7.16.0" 1061 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" 1062 | integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== 1063 | dependencies: 1064 | "@babel/helper-validator-identifier" "^7.15.7" 1065 | to-fast-properties "^2.0.0" 1066 | 1067 | "@rollup/plugin-babel@^5.3.0": 1068 | version "5.3.0" 1069 | resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz#9cb1c5146ddd6a4968ad96f209c50c62f92f9879" 1070 | integrity sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw== 1071 | dependencies: 1072 | "@babel/helper-module-imports" "^7.10.4" 1073 | "@rollup/pluginutils" "^3.1.0" 1074 | 1075 | "@rollup/plugin-node-resolve@^13.1.1": 1076 | version "13.1.1" 1077 | resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.1.tgz#d38ba06e7b181ab4df64c75409b43d9bdc95ae34" 1078 | integrity sha512-6QKtRevXLrmEig9UiMYt2fSvee9TyltGRfw+qSs6xjUnxwjOzTOqy+/Lpxsgjb8mJn1EQNbCDAvt89O4uzL5kw== 1079 | dependencies: 1080 | "@rollup/pluginutils" "^3.1.0" 1081 | "@types/resolve" "1.17.1" 1082 | builtin-modules "^3.1.0" 1083 | deepmerge "^4.2.2" 1084 | is-module "^1.0.0" 1085 | resolve "^1.19.0" 1086 | 1087 | "@rollup/pluginutils@^3.1.0": 1088 | version "3.1.0" 1089 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" 1090 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 1091 | dependencies: 1092 | "@types/estree" "0.0.39" 1093 | estree-walker "^1.0.1" 1094 | picomatch "^2.2.2" 1095 | 1096 | "@types/estree@0.0.39": 1097 | version "0.0.39" 1098 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 1099 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 1100 | 1101 | "@types/node@*": 1102 | version "14.11.2" 1103 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.2.tgz#2de1ed6670439387da1c9f549a2ade2b0a799256" 1104 | integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA== 1105 | 1106 | "@types/resolve@1.17.1": 1107 | version "1.17.1" 1108 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" 1109 | integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== 1110 | dependencies: 1111 | "@types/node" "*" 1112 | 1113 | "@types/three@^0.135.0": 1114 | version "0.135.0" 1115 | resolved "https://registry.yarnpkg.com/@types/three/-/three-0.135.0.tgz#db7f9d9699b60aba844fc5b2893adf6dd6811665" 1116 | integrity sha512-l7WLhIHjhHMtlpyTSltPPAKLpiMwgMD1hXHj59AVUpYRoZP7Fd9NNOSRSvZBCPLpTHPYojgQvSJCoza9zoL7bg== 1117 | 1118 | "@zeit/schemas@2.6.0": 1119 | version "2.6.0" 1120 | resolved "https://registry.yarnpkg.com/@zeit/schemas/-/schemas-2.6.0.tgz#004e8e553b4cd53d538bd38eac7bcbf58a867fe3" 1121 | integrity sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg== 1122 | 1123 | accepts@~1.3.5: 1124 | version "1.3.7" 1125 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 1126 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 1127 | dependencies: 1128 | mime-types "~2.1.24" 1129 | negotiator "0.6.2" 1130 | 1131 | ajv@6.12.6: 1132 | version "6.12.6" 1133 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 1134 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 1135 | dependencies: 1136 | fast-deep-equal "^3.1.1" 1137 | fast-json-stable-stringify "^2.0.0" 1138 | json-schema-traverse "^0.4.1" 1139 | uri-js "^4.2.2" 1140 | 1141 | ansi-align@^3.0.0: 1142 | version "3.0.1" 1143 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" 1144 | integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== 1145 | dependencies: 1146 | string-width "^4.1.0" 1147 | 1148 | ansi-regex@^5.0.1: 1149 | version "5.0.1" 1150 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 1151 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 1152 | 1153 | ansi-styles@^3.2.1: 1154 | version "3.2.1" 1155 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 1156 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 1157 | dependencies: 1158 | color-convert "^1.9.0" 1159 | 1160 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 1161 | version "4.3.0" 1162 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 1163 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 1164 | dependencies: 1165 | color-convert "^2.0.1" 1166 | 1167 | arch@^2.1.1: 1168 | version "2.2.0" 1169 | resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" 1170 | integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== 1171 | 1172 | arg@2.0.0: 1173 | version "2.0.0" 1174 | resolved "https://registry.yarnpkg.com/arg/-/arg-2.0.0.tgz#c06e7ff69ab05b3a4a03ebe0407fac4cba657545" 1175 | integrity sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w== 1176 | 1177 | babel-plugin-dynamic-import-node@^2.3.3: 1178 | version "2.3.3" 1179 | resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" 1180 | integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== 1181 | dependencies: 1182 | object.assign "^4.1.0" 1183 | 1184 | babel-plugin-polyfill-corejs2@^0.3.0: 1185 | version "0.3.0" 1186 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" 1187 | integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== 1188 | dependencies: 1189 | "@babel/compat-data" "^7.13.11" 1190 | "@babel/helper-define-polyfill-provider" "^0.3.0" 1191 | semver "^6.1.1" 1192 | 1193 | babel-plugin-polyfill-corejs3@^0.4.0: 1194 | version "0.4.0" 1195 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" 1196 | integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== 1197 | dependencies: 1198 | "@babel/helper-define-polyfill-provider" "^0.3.0" 1199 | core-js-compat "^3.18.0" 1200 | 1201 | babel-plugin-polyfill-regenerator@^0.3.0: 1202 | version "0.3.0" 1203 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" 1204 | integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== 1205 | dependencies: 1206 | "@babel/helper-define-polyfill-provider" "^0.3.0" 1207 | 1208 | balanced-match@^1.0.0: 1209 | version "1.0.0" 1210 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 1211 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 1212 | 1213 | boxen@5.1.2: 1214 | version "5.1.2" 1215 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" 1216 | integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== 1217 | dependencies: 1218 | ansi-align "^3.0.0" 1219 | camelcase "^6.2.0" 1220 | chalk "^4.1.0" 1221 | cli-boxes "^2.2.1" 1222 | string-width "^4.2.2" 1223 | type-fest "^0.20.2" 1224 | widest-line "^3.1.0" 1225 | wrap-ansi "^7.0.0" 1226 | 1227 | brace-expansion@^1.1.7: 1228 | version "1.1.11" 1229 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 1230 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 1231 | dependencies: 1232 | balanced-match "^1.0.0" 1233 | concat-map "0.0.1" 1234 | 1235 | browserslist@^4.16.6, browserslist@^4.17.6: 1236 | version "4.17.6" 1237 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.6.tgz#c76be33e7786b497f66cad25a73756c8b938985d" 1238 | integrity sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw== 1239 | dependencies: 1240 | caniuse-lite "^1.0.30001274" 1241 | electron-to-chromium "^1.3.886" 1242 | escalade "^3.1.1" 1243 | node-releases "^2.0.1" 1244 | picocolors "^1.0.0" 1245 | 1246 | browserslist@^4.17.5, browserslist@^4.19.1: 1247 | version "4.19.1" 1248 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" 1249 | integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== 1250 | dependencies: 1251 | caniuse-lite "^1.0.30001286" 1252 | electron-to-chromium "^1.4.17" 1253 | escalade "^3.1.1" 1254 | node-releases "^2.0.1" 1255 | picocolors "^1.0.0" 1256 | 1257 | builtin-modules@^3.1.0: 1258 | version "3.1.0" 1259 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" 1260 | integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== 1261 | 1262 | bytes@3.0.0: 1263 | version "3.0.0" 1264 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 1265 | integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= 1266 | 1267 | camelcase@^6.2.0: 1268 | version "6.3.0" 1269 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" 1270 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 1271 | 1272 | caniuse-lite@^1.0.30001274: 1273 | version "1.0.30001278" 1274 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001278.tgz#51cafc858df77d966b17f59b5839250b24417fff" 1275 | integrity sha512-mpF9KeH8u5cMoEmIic/cr7PNS+F5LWBk0t2ekGT60lFf0Wq+n9LspAj0g3P+o7DQhD3sUdlMln4YFAWhFYn9jg== 1276 | 1277 | caniuse-lite@^1.0.30001286: 1278 | version "1.0.30001294" 1279 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz#4849f27b101fd59ddee3751598c663801032533d" 1280 | integrity sha512-LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g== 1281 | 1282 | cannon-es@^0.18.0: 1283 | version "0.18.0" 1284 | resolved "https://registry.yarnpkg.com/cannon-es/-/cannon-es-0.18.0.tgz#ae831ff9df2352d5faabb269c11ea0f10bc35c7e" 1285 | integrity sha512-GiQ1bd0etZsMVSnUhNc+p+FEh0R/cULpp8uRSAhEK4Kax+y/31Au03m6h1h1xdDivAMnFg8YDwevHgzLynOHlw== 1286 | 1287 | chalk@2.4.1: 1288 | version "2.4.1" 1289 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 1290 | integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== 1291 | dependencies: 1292 | ansi-styles "^3.2.1" 1293 | escape-string-regexp "^1.0.5" 1294 | supports-color "^5.3.0" 1295 | 1296 | chalk@^2.0.0: 1297 | version "2.4.2" 1298 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 1299 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 1300 | dependencies: 1301 | ansi-styles "^3.2.1" 1302 | escape-string-regexp "^1.0.5" 1303 | supports-color "^5.3.0" 1304 | 1305 | chalk@^4.1.0: 1306 | version "4.1.2" 1307 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 1308 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 1309 | dependencies: 1310 | ansi-styles "^4.1.0" 1311 | supports-color "^7.1.0" 1312 | 1313 | cli-boxes@^2.2.1: 1314 | version "2.2.1" 1315 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" 1316 | integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== 1317 | 1318 | clipboardy@2.3.0: 1319 | version "2.3.0" 1320 | resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" 1321 | integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ== 1322 | dependencies: 1323 | arch "^2.1.1" 1324 | execa "^1.0.0" 1325 | is-wsl "^2.1.1" 1326 | 1327 | color-convert@^1.9.0: 1328 | version "1.9.3" 1329 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 1330 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 1331 | dependencies: 1332 | color-name "1.1.3" 1333 | 1334 | color-convert@^2.0.1: 1335 | version "2.0.1" 1336 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 1337 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 1338 | dependencies: 1339 | color-name "~1.1.4" 1340 | 1341 | color-name@1.1.3: 1342 | version "1.1.3" 1343 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 1344 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 1345 | 1346 | color-name@~1.1.4: 1347 | version "1.1.4" 1348 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 1349 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 1350 | 1351 | compressible@~2.0.14: 1352 | version "2.0.18" 1353 | resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" 1354 | integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== 1355 | dependencies: 1356 | mime-db ">= 1.43.0 < 2" 1357 | 1358 | compression@1.7.3: 1359 | version "1.7.3" 1360 | resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz#27e0e176aaf260f7f2c2813c3e440adb9f1993db" 1361 | integrity sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg== 1362 | dependencies: 1363 | accepts "~1.3.5" 1364 | bytes "3.0.0" 1365 | compressible "~2.0.14" 1366 | debug "2.6.9" 1367 | on-headers "~1.0.1" 1368 | safe-buffer "5.1.2" 1369 | vary "~1.1.2" 1370 | 1371 | concat-map@0.0.1: 1372 | version "0.0.1" 1373 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 1374 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 1375 | 1376 | content-disposition@0.5.2: 1377 | version "0.5.2" 1378 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 1379 | integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= 1380 | 1381 | convert-source-map@^1.7.0: 1382 | version "1.7.0" 1383 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" 1384 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== 1385 | dependencies: 1386 | safe-buffer "~5.1.1" 1387 | 1388 | core-js-compat@^3.18.0: 1389 | version "3.19.1" 1390 | resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476" 1391 | integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== 1392 | dependencies: 1393 | browserslist "^4.17.6" 1394 | semver "7.0.0" 1395 | 1396 | core-js-compat@^3.19.1: 1397 | version "3.20.1" 1398 | resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.1.tgz#96917b4db634fbbbc7b36575b2e8fcbf7e4f9691" 1399 | integrity sha512-AVhKZNpqMV3Jz8hU0YEXXE06qoxtQGsAqU0u1neUngz5IusDJRX/ZJ6t3i7mS7QxNyEONbCo14GprkBrxPlTZA== 1400 | dependencies: 1401 | browserslist "^4.19.1" 1402 | semver "7.0.0" 1403 | 1404 | cross-spawn@^6.0.0: 1405 | version "6.0.5" 1406 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 1407 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 1408 | dependencies: 1409 | nice-try "^1.0.4" 1410 | path-key "^2.0.1" 1411 | semver "^5.5.0" 1412 | shebang-command "^1.2.0" 1413 | which "^1.2.9" 1414 | 1415 | debug@2.6.9: 1416 | version "2.6.9" 1417 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 1418 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 1419 | dependencies: 1420 | ms "2.0.0" 1421 | 1422 | debug@^4.1.0: 1423 | version "4.2.0" 1424 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" 1425 | integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== 1426 | dependencies: 1427 | ms "2.1.2" 1428 | 1429 | debug@^4.1.1: 1430 | version "4.3.2" 1431 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" 1432 | integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== 1433 | dependencies: 1434 | ms "2.1.2" 1435 | 1436 | deep-extend@^0.6.0: 1437 | version "0.6.0" 1438 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 1439 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 1440 | 1441 | deepmerge@^4.2.2: 1442 | version "4.2.2" 1443 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" 1444 | integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== 1445 | 1446 | define-properties@^1.1.3: 1447 | version "1.1.3" 1448 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 1449 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 1450 | dependencies: 1451 | object-keys "^1.0.12" 1452 | 1453 | electron-to-chromium@^1.3.886: 1454 | version "1.3.889" 1455 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.889.tgz#0b7c6f7628559592d5406deda281788f37107790" 1456 | integrity sha512-suEUoPTD1mExjL9TdmH7cvEiWJVM2oEiAi+Y1p0QKxI2HcRlT44qDTP2c1aZmVwRemIPYOpxmV7CxQCOWcm4XQ== 1457 | 1458 | electron-to-chromium@^1.4.17: 1459 | version "1.4.29" 1460 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.29.tgz#a9b85ab888d0122124c9647c04d8dd246fae94b6" 1461 | integrity sha512-N2Jbwxo5Rum8G2YXeUxycs1sv4Qme/ry71HG73bv8BvZl+I/4JtRgK/En+ST/Wh/yF1fqvVCY4jZBgMxnhjtBA== 1462 | 1463 | emoji-regex@^8.0.0: 1464 | version "8.0.0" 1465 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 1466 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 1467 | 1468 | end-of-stream@^1.1.0: 1469 | version "1.4.4" 1470 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 1471 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 1472 | dependencies: 1473 | once "^1.4.0" 1474 | 1475 | es-abstract@^1.17.5: 1476 | version "1.17.6" 1477 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" 1478 | integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== 1479 | dependencies: 1480 | es-to-primitive "^1.2.1" 1481 | function-bind "^1.1.1" 1482 | has "^1.0.3" 1483 | has-symbols "^1.0.1" 1484 | is-callable "^1.2.0" 1485 | is-regex "^1.1.0" 1486 | object-inspect "^1.7.0" 1487 | object-keys "^1.1.1" 1488 | object.assign "^4.1.0" 1489 | string.prototype.trimend "^1.0.1" 1490 | string.prototype.trimstart "^1.0.1" 1491 | 1492 | es-abstract@^1.18.0-next.0: 1493 | version "1.18.0-next.0" 1494 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc" 1495 | integrity sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ== 1496 | dependencies: 1497 | es-to-primitive "^1.2.1" 1498 | function-bind "^1.1.1" 1499 | has "^1.0.3" 1500 | has-symbols "^1.0.1" 1501 | is-callable "^1.2.0" 1502 | is-negative-zero "^2.0.0" 1503 | is-regex "^1.1.1" 1504 | object-inspect "^1.8.0" 1505 | object-keys "^1.1.1" 1506 | object.assign "^4.1.0" 1507 | string.prototype.trimend "^1.0.1" 1508 | string.prototype.trimstart "^1.0.1" 1509 | 1510 | es-to-primitive@^1.2.1: 1511 | version "1.2.1" 1512 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 1513 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 1514 | dependencies: 1515 | is-callable "^1.1.4" 1516 | is-date-object "^1.0.1" 1517 | is-symbol "^1.0.2" 1518 | 1519 | escalade@^3.1.1: 1520 | version "3.1.1" 1521 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 1522 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 1523 | 1524 | escape-string-regexp@^1.0.5: 1525 | version "1.0.5" 1526 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1527 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 1528 | 1529 | estree-walker@^1.0.1: 1530 | version "1.0.1" 1531 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" 1532 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 1533 | 1534 | esutils@^2.0.2: 1535 | version "2.0.3" 1536 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1537 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1538 | 1539 | execa@^1.0.0: 1540 | version "1.0.0" 1541 | resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" 1542 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 1543 | dependencies: 1544 | cross-spawn "^6.0.0" 1545 | get-stream "^4.0.0" 1546 | is-stream "^1.1.0" 1547 | npm-run-path "^2.0.0" 1548 | p-finally "^1.0.0" 1549 | signal-exit "^3.0.0" 1550 | strip-eof "^1.0.0" 1551 | 1552 | fast-deep-equal@^3.1.1: 1553 | version "3.1.3" 1554 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 1555 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1556 | 1557 | fast-json-stable-stringify@^2.0.0: 1558 | version "2.1.0" 1559 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 1560 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1561 | 1562 | fast-url-parser@1.1.3: 1563 | version "1.1.3" 1564 | resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" 1565 | integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= 1566 | dependencies: 1567 | punycode "^1.3.2" 1568 | 1569 | fs.realpath@^1.0.0: 1570 | version "1.0.0" 1571 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1572 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1573 | 1574 | fsevents@~2.3.2: 1575 | version "2.3.2" 1576 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1577 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1578 | 1579 | function-bind@^1.1.1: 1580 | version "1.1.1" 1581 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1582 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1583 | 1584 | gensync@^1.0.0-beta.2: 1585 | version "1.0.0-beta.2" 1586 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 1587 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1588 | 1589 | get-stream@^4.0.0: 1590 | version "4.1.0" 1591 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 1592 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 1593 | dependencies: 1594 | pump "^3.0.0" 1595 | 1596 | glob@^7.1.3: 1597 | version "7.1.6" 1598 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 1599 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 1600 | dependencies: 1601 | fs.realpath "^1.0.0" 1602 | inflight "^1.0.4" 1603 | inherits "2" 1604 | minimatch "^3.0.4" 1605 | once "^1.3.0" 1606 | path-is-absolute "^1.0.0" 1607 | 1608 | globals@^11.1.0: 1609 | version "11.12.0" 1610 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1611 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1612 | 1613 | has-flag@^3.0.0: 1614 | version "3.0.0" 1615 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1616 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1617 | 1618 | has-flag@^4.0.0: 1619 | version "4.0.0" 1620 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1621 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1622 | 1623 | has-symbols@^1.0.1: 1624 | version "1.0.1" 1625 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" 1626 | integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== 1627 | 1628 | has@^1.0.3: 1629 | version "1.0.3" 1630 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1631 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1632 | dependencies: 1633 | function-bind "^1.1.1" 1634 | 1635 | inflight@^1.0.4: 1636 | version "1.0.6" 1637 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1638 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1639 | dependencies: 1640 | once "^1.3.0" 1641 | wrappy "1" 1642 | 1643 | inherits@2: 1644 | version "2.0.4" 1645 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1646 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1647 | 1648 | ini@~1.3.0: 1649 | version "1.3.8" 1650 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 1651 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 1652 | 1653 | is-callable@^1.1.4, is-callable@^1.2.0: 1654 | version "1.2.2" 1655 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" 1656 | integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== 1657 | 1658 | is-core-module@^2.1.0: 1659 | version "2.2.0" 1660 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" 1661 | integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== 1662 | dependencies: 1663 | has "^1.0.3" 1664 | 1665 | is-core-module@^2.2.0: 1666 | version "2.8.0" 1667 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" 1668 | integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== 1669 | dependencies: 1670 | has "^1.0.3" 1671 | 1672 | is-date-object@^1.0.1: 1673 | version "1.0.2" 1674 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" 1675 | integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== 1676 | 1677 | is-docker@^2.0.0: 1678 | version "2.2.1" 1679 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" 1680 | integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== 1681 | 1682 | is-fullwidth-code-point@^3.0.0: 1683 | version "3.0.0" 1684 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1685 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1686 | 1687 | is-module@^1.0.0: 1688 | version "1.0.0" 1689 | resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" 1690 | integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= 1691 | 1692 | is-negative-zero@^2.0.0: 1693 | version "2.0.0" 1694 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" 1695 | integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= 1696 | 1697 | is-regex@^1.1.0, is-regex@^1.1.1: 1698 | version "1.1.1" 1699 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" 1700 | integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== 1701 | dependencies: 1702 | has-symbols "^1.0.1" 1703 | 1704 | is-stream@^1.1.0: 1705 | version "1.1.0" 1706 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1707 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 1708 | 1709 | is-symbol@^1.0.2: 1710 | version "1.0.3" 1711 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" 1712 | integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== 1713 | dependencies: 1714 | has-symbols "^1.0.1" 1715 | 1716 | is-wsl@^2.1.1: 1717 | version "2.2.0" 1718 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" 1719 | integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== 1720 | dependencies: 1721 | is-docker "^2.0.0" 1722 | 1723 | isexe@^2.0.0: 1724 | version "2.0.0" 1725 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1726 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1727 | 1728 | js-tokens@^4.0.0: 1729 | version "4.0.0" 1730 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1731 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1732 | 1733 | jsesc@^2.5.1: 1734 | version "2.5.2" 1735 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1736 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1737 | 1738 | jsesc@~0.5.0: 1739 | version "0.5.0" 1740 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 1741 | integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= 1742 | 1743 | json-schema-traverse@^0.4.1: 1744 | version "0.4.1" 1745 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1746 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1747 | 1748 | json5@^2.1.2: 1749 | version "2.1.3" 1750 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" 1751 | integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== 1752 | dependencies: 1753 | minimist "^1.2.5" 1754 | 1755 | lodash.debounce@^4.0.8: 1756 | version "4.0.8" 1757 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 1758 | integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= 1759 | 1760 | lodash@^4.17.19: 1761 | version "4.17.21" 1762 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1763 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1764 | 1765 | mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": 1766 | version "1.51.0" 1767 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" 1768 | integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== 1769 | 1770 | mime-db@~1.33.0: 1771 | version "1.33.0" 1772 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 1773 | integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== 1774 | 1775 | mime-types@2.1.18: 1776 | version "2.1.18" 1777 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 1778 | integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== 1779 | dependencies: 1780 | mime-db "~1.33.0" 1781 | 1782 | mime-types@~2.1.24: 1783 | version "2.1.34" 1784 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" 1785 | integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== 1786 | dependencies: 1787 | mime-db "1.51.0" 1788 | 1789 | minimatch@3.0.4, minimatch@^3.0.4: 1790 | version "3.0.4" 1791 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1792 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1793 | dependencies: 1794 | brace-expansion "^1.1.7" 1795 | 1796 | minimist@^1.2.0, minimist@^1.2.5: 1797 | version "1.2.5" 1798 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1799 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1800 | 1801 | ms@2.0.0: 1802 | version "2.0.0" 1803 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1804 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1805 | 1806 | ms@2.1.2: 1807 | version "2.1.2" 1808 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1809 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1810 | 1811 | negotiator@0.6.2: 1812 | version "0.6.2" 1813 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 1814 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 1815 | 1816 | nice-try@^1.0.4: 1817 | version "1.0.5" 1818 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1819 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1820 | 1821 | node-releases@^2.0.1: 1822 | version "2.0.1" 1823 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" 1824 | integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== 1825 | 1826 | npm-run-path@^2.0.0: 1827 | version "2.0.2" 1828 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1829 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 1830 | dependencies: 1831 | path-key "^2.0.0" 1832 | 1833 | object-inspect@^1.7.0, object-inspect@^1.8.0: 1834 | version "1.8.0" 1835 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" 1836 | integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== 1837 | 1838 | object-keys@^1.0.12, object-keys@^1.1.1: 1839 | version "1.1.1" 1840 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1841 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1842 | 1843 | object.assign@^4.1.0: 1844 | version "4.1.1" 1845 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" 1846 | integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== 1847 | dependencies: 1848 | define-properties "^1.1.3" 1849 | es-abstract "^1.18.0-next.0" 1850 | has-symbols "^1.0.1" 1851 | object-keys "^1.1.1" 1852 | 1853 | on-headers@~1.0.1: 1854 | version "1.0.2" 1855 | resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" 1856 | integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== 1857 | 1858 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 1859 | version "1.4.0" 1860 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1861 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1862 | dependencies: 1863 | wrappy "1" 1864 | 1865 | p-finally@^1.0.0: 1866 | version "1.0.0" 1867 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1868 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 1869 | 1870 | path-is-absolute@^1.0.0: 1871 | version "1.0.1" 1872 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1873 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1874 | 1875 | path-is-inside@1.0.2: 1876 | version "1.0.2" 1877 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1878 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= 1879 | 1880 | path-key@^2.0.0, path-key@^2.0.1: 1881 | version "2.0.1" 1882 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1883 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1884 | 1885 | path-parse@^1.0.6: 1886 | version "1.0.6" 1887 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 1888 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 1889 | 1890 | path-to-regexp@2.2.1: 1891 | version "2.2.1" 1892 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" 1893 | integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== 1894 | 1895 | picocolors@^1.0.0: 1896 | version "1.0.0" 1897 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1898 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1899 | 1900 | picomatch@^2.2.2: 1901 | version "2.2.2" 1902 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" 1903 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 1904 | 1905 | prettier@^2.5.1: 1906 | version "2.5.1" 1907 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" 1908 | integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== 1909 | 1910 | pump@^3.0.0: 1911 | version "3.0.0" 1912 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1913 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1914 | dependencies: 1915 | end-of-stream "^1.1.0" 1916 | once "^1.3.1" 1917 | 1918 | punycode@^1.3.2: 1919 | version "1.4.1" 1920 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1921 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= 1922 | 1923 | punycode@^2.1.0: 1924 | version "2.1.1" 1925 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1926 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1927 | 1928 | range-parser@1.2.0: 1929 | version "1.2.0" 1930 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 1931 | integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= 1932 | 1933 | rc@^1.0.1, rc@^1.1.6: 1934 | version "1.2.8" 1935 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 1936 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 1937 | dependencies: 1938 | deep-extend "^0.6.0" 1939 | ini "~1.3.0" 1940 | minimist "^1.2.0" 1941 | strip-json-comments "~2.0.1" 1942 | 1943 | regenerate-unicode-properties@^8.2.0: 1944 | version "8.2.0" 1945 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" 1946 | integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== 1947 | dependencies: 1948 | regenerate "^1.4.0" 1949 | 1950 | regenerate@^1.4.0: 1951 | version "1.4.1" 1952 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" 1953 | integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== 1954 | 1955 | regenerator-runtime@^0.13.4: 1956 | version "0.13.7" 1957 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" 1958 | integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== 1959 | 1960 | regenerator-transform@^0.14.2: 1961 | version "0.14.5" 1962 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" 1963 | integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== 1964 | dependencies: 1965 | "@babel/runtime" "^7.8.4" 1966 | 1967 | regexpu-core@^4.7.0, regexpu-core@^4.7.1: 1968 | version "4.7.1" 1969 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" 1970 | integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== 1971 | dependencies: 1972 | regenerate "^1.4.0" 1973 | regenerate-unicode-properties "^8.2.0" 1974 | regjsgen "^0.5.1" 1975 | regjsparser "^0.6.4" 1976 | unicode-match-property-ecmascript "^1.0.4" 1977 | unicode-match-property-value-ecmascript "^1.2.0" 1978 | 1979 | registry-auth-token@3.3.2: 1980 | version "3.3.2" 1981 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" 1982 | integrity sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ== 1983 | dependencies: 1984 | rc "^1.1.6" 1985 | safe-buffer "^5.0.1" 1986 | 1987 | registry-url@3.1.0: 1988 | version "3.1.0" 1989 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 1990 | integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= 1991 | dependencies: 1992 | rc "^1.0.1" 1993 | 1994 | regjsgen@^0.5.1: 1995 | version "0.5.2" 1996 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" 1997 | integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== 1998 | 1999 | regjsparser@^0.6.4: 2000 | version "0.6.4" 2001 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" 2002 | integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== 2003 | dependencies: 2004 | jsesc "~0.5.0" 2005 | 2006 | resolve@^1.14.2: 2007 | version "1.20.0" 2008 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 2009 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 2010 | dependencies: 2011 | is-core-module "^2.2.0" 2012 | path-parse "^1.0.6" 2013 | 2014 | resolve@^1.19.0: 2015 | version "1.19.0" 2016 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" 2017 | integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== 2018 | dependencies: 2019 | is-core-module "^2.1.0" 2020 | path-parse "^1.0.6" 2021 | 2022 | rimraf@^3.0.2: 2023 | version "3.0.2" 2024 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 2025 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 2026 | dependencies: 2027 | glob "^7.1.3" 2028 | 2029 | rollup@^2.62.0: 2030 | version "2.62.0" 2031 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.62.0.tgz#9e640b419fc5b9e0241844f6d55258bd79986ecc" 2032 | integrity sha512-cJEQq2gwB0GWMD3rYImefQTSjrPYaC6s4J9pYqnstVLJ1CHa/aZNVkD4Epuvg4iLeMA4KRiq7UM7awKK6j7jcw== 2033 | optionalDependencies: 2034 | fsevents "~2.3.2" 2035 | 2036 | safe-buffer@5.1.2, safe-buffer@~5.1.1: 2037 | version "5.1.2" 2038 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2039 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2040 | 2041 | safe-buffer@^5.0.1: 2042 | version "5.2.1" 2043 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 2044 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 2045 | 2046 | semver@7.0.0: 2047 | version "7.0.0" 2048 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" 2049 | integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== 2050 | 2051 | semver@^5.5.0: 2052 | version "5.7.1" 2053 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 2054 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 2055 | 2056 | semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: 2057 | version "6.3.0" 2058 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 2059 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 2060 | 2061 | serve-handler@6.1.3: 2062 | version "6.1.3" 2063 | resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.3.tgz#1bf8c5ae138712af55c758477533b9117f6435e8" 2064 | integrity sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w== 2065 | dependencies: 2066 | bytes "3.0.0" 2067 | content-disposition "0.5.2" 2068 | fast-url-parser "1.1.3" 2069 | mime-types "2.1.18" 2070 | minimatch "3.0.4" 2071 | path-is-inside "1.0.2" 2072 | path-to-regexp "2.2.1" 2073 | range-parser "1.2.0" 2074 | 2075 | serve@^13.0.2: 2076 | version "13.0.2" 2077 | resolved "https://registry.yarnpkg.com/serve/-/serve-13.0.2.tgz#b19ccb854dfdf3085613cd3a4033c7807aeaf85b" 2078 | integrity sha512-71R6fKvNgKrqARAag6lYJNnxDzpH7DCNrMuvPY5PLVaC2PDhJsGTj/34o4o4tPWhTuLgEXqvgnAWbATQ9zGZTQ== 2079 | dependencies: 2080 | "@zeit/schemas" "2.6.0" 2081 | ajv "6.12.6" 2082 | arg "2.0.0" 2083 | boxen "5.1.2" 2084 | chalk "2.4.1" 2085 | clipboardy "2.3.0" 2086 | compression "1.7.3" 2087 | serve-handler "6.1.3" 2088 | update-check "1.5.2" 2089 | 2090 | shebang-command@^1.2.0: 2091 | version "1.2.0" 2092 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2093 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 2094 | dependencies: 2095 | shebang-regex "^1.0.0" 2096 | 2097 | shebang-regex@^1.0.0: 2098 | version "1.0.0" 2099 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2100 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 2101 | 2102 | signal-exit@^3.0.0: 2103 | version "3.0.6" 2104 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" 2105 | integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== 2106 | 2107 | source-map@^0.5.0: 2108 | version "0.5.7" 2109 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2110 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 2111 | 2112 | string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.2: 2113 | version "4.2.3" 2114 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 2115 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 2116 | dependencies: 2117 | emoji-regex "^8.0.0" 2118 | is-fullwidth-code-point "^3.0.0" 2119 | strip-ansi "^6.0.1" 2120 | 2121 | string.prototype.trimend@^1.0.1: 2122 | version "1.0.1" 2123 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" 2124 | integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== 2125 | dependencies: 2126 | define-properties "^1.1.3" 2127 | es-abstract "^1.17.5" 2128 | 2129 | string.prototype.trimstart@^1.0.1: 2130 | version "1.0.1" 2131 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" 2132 | integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== 2133 | dependencies: 2134 | define-properties "^1.1.3" 2135 | es-abstract "^1.17.5" 2136 | 2137 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 2138 | version "6.0.1" 2139 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 2140 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 2141 | dependencies: 2142 | ansi-regex "^5.0.1" 2143 | 2144 | strip-eof@^1.0.0: 2145 | version "1.0.0" 2146 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 2147 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 2148 | 2149 | strip-json-comments@~2.0.1: 2150 | version "2.0.1" 2151 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2152 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 2153 | 2154 | supports-color@^5.3.0: 2155 | version "5.5.0" 2156 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2157 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 2158 | dependencies: 2159 | has-flag "^3.0.0" 2160 | 2161 | supports-color@^7.1.0: 2162 | version "7.2.0" 2163 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2164 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 2165 | dependencies: 2166 | has-flag "^4.0.0" 2167 | 2168 | three@^0.136.0: 2169 | version "0.136.0" 2170 | resolved "https://registry.yarnpkg.com/three/-/three-0.136.0.tgz#b1504db021b46398ef468aa7849f3dcabb814f50" 2171 | integrity sha512-+fEMX7nYLz2ZesVP/dyifli5Jf8gR3XPAnFJveQ80aMhibFduzrADnjMbARXh8+W9qLK7rshJCjAIL/6cDxC+A== 2172 | 2173 | to-fast-properties@^2.0.0: 2174 | version "2.0.0" 2175 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 2176 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 2177 | 2178 | type-fest@^0.20.2: 2179 | version "0.20.2" 2180 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 2181 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 2182 | 2183 | typescript@^4.5.4: 2184 | version "4.5.4" 2185 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" 2186 | integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== 2187 | 2188 | unicode-canonical-property-names-ecmascript@^1.0.4: 2189 | version "1.0.4" 2190 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" 2191 | integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== 2192 | 2193 | unicode-match-property-ecmascript@^1.0.4: 2194 | version "1.0.4" 2195 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" 2196 | integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== 2197 | dependencies: 2198 | unicode-canonical-property-names-ecmascript "^1.0.4" 2199 | unicode-property-aliases-ecmascript "^1.0.4" 2200 | 2201 | unicode-match-property-value-ecmascript@^1.2.0: 2202 | version "1.2.0" 2203 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" 2204 | integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== 2205 | 2206 | unicode-property-aliases-ecmascript@^1.0.4: 2207 | version "1.1.0" 2208 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" 2209 | integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== 2210 | 2211 | update-check@1.5.2: 2212 | version "1.5.2" 2213 | resolved "https://registry.yarnpkg.com/update-check/-/update-check-1.5.2.tgz#2fe09f725c543440b3d7dabe8971f2d5caaedc28" 2214 | integrity sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ== 2215 | dependencies: 2216 | registry-auth-token "3.3.2" 2217 | registry-url "3.1.0" 2218 | 2219 | uri-js@^4.2.2: 2220 | version "4.4.1" 2221 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 2222 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 2223 | dependencies: 2224 | punycode "^2.1.0" 2225 | 2226 | vary@~1.1.2: 2227 | version "1.1.2" 2228 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 2229 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 2230 | 2231 | which@^1.2.9: 2232 | version "1.3.1" 2233 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 2234 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 2235 | dependencies: 2236 | isexe "^2.0.0" 2237 | 2238 | widest-line@^3.1.0: 2239 | version "3.1.0" 2240 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" 2241 | integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== 2242 | dependencies: 2243 | string-width "^4.0.0" 2244 | 2245 | wrap-ansi@^7.0.0: 2246 | version "7.0.0" 2247 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 2248 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 2249 | dependencies: 2250 | ansi-styles "^4.0.0" 2251 | string-width "^4.1.0" 2252 | strip-ansi "^6.0.0" 2253 | 2254 | wrappy@1: 2255 | version "1.0.2" 2256 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2257 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2258 | --------------------------------------------------------------------------------