├── .gitignore
├── .gitattributes
├── index.ts
├── scripts
├── getChange.sh
└── build.sh
├── .gitmodules
├── example
├── shaders
│ ├── life
│ │ ├── vert.glsl
│ │ └── frag.glsl
│ ├── particle
│ │ └── vert
│ │ │ ├── header.glsl
│ │ │ └── main.glsl
│ ├── position
│ │ ├── vert.glsl
│ │ └── frag.glsl
│ ├── velocity
│ │ ├── vert.glsl
│ │ └── frag.glsl
│ └── curl
│ │ ├── frag.glsl
│ │ └── vert.glsl
├── lights.js
├── index.html
├── setup.js
└── main.js
├── CHANGELOG.md
├── tsconfig.json
├── LICENSE
├── package.json
├── rollup.config.js
├── .github
└── workflows
│ └── main.yml
├── src
├── MultipassShaderHelper.ts
└── GPUComputationRenderer.js
├── README.md
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | build
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | build/* linguist-vendored
2 | example/* linguist-vendored
--------------------------------------------------------------------------------
/index.ts:
--------------------------------------------------------------------------------
1 | export { MultipassShaderHelper } from "./src/MultipassShaderHelper";
2 |
--------------------------------------------------------------------------------
/scripts/getChange.sh:
--------------------------------------------------------------------------------
1 | awk -v version="$1" '/## Version / {printit = $3 == version}; printit;' "$2"
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "example/lib/glNoise"]
2 | path = example/lib/glNoise
3 | url = https://github.com/FarazzShaikh/glNoise.git
4 |
--------------------------------------------------------------------------------
/example/shaders/life/vert.glsl:
--------------------------------------------------------------------------------
1 | varying vec2 vUv;
2 |
3 | void main() {
4 | vUv = uv;
5 | gl_Position = vec4(position, 1.0);
6 | }
--------------------------------------------------------------------------------
/example/shaders/particle/vert/header.glsl:
--------------------------------------------------------------------------------
1 | varying vec2 vUv;
2 | uniform sampler2D positionField;
3 | uniform float uTime;
4 | varying vec3 vPosition;
5 |
--------------------------------------------------------------------------------
/example/shaders/particle/vert/main.glsl:
--------------------------------------------------------------------------------
1 |
2 | vUv = uv;
3 |
4 | vec3 p = texture2D(positionField, uv).xyz;
5 |
6 | csm_Position = p;
7 | vPosition = p;
--------------------------------------------------------------------------------
/scripts/build.sh:
--------------------------------------------------------------------------------
1 | rollup -c
2 | rm -rf build/types
3 | mkdir -p example/build
4 | cp build/MultipassShaderHelper.cdn.js example/build/MultipassShaderHelper.cdn.js
--------------------------------------------------------------------------------
/example/shaders/position/vert.glsl:
--------------------------------------------------------------------------------
1 | varying vec2 vUv;
2 | varying vec3 vPosition;
3 |
4 | void main() {
5 | vUv = uv;
6 | vPosition = position;
7 | gl_Position = vec4(position, 1.0);
8 | }
--------------------------------------------------------------------------------
/example/shaders/velocity/vert.glsl:
--------------------------------------------------------------------------------
1 | varying vec2 vUv;
2 | varying vec3 vPosition;
3 |
4 | void main() {
5 | vUv = uv;
6 | vPosition = position;
7 | gl_Position = vec4(position, 1.0);
8 | }
--------------------------------------------------------------------------------
/example/shaders/curl/frag.glsl:
--------------------------------------------------------------------------------
1 | varying vec3 vColor;
2 | varying vec2 vUv;
3 |
4 | void main() {
5 | vec3 p = texture2D(positionField, vUv).xyz;
6 | vec3 n = gln_curl(p * 0.1);
7 |
8 | gl_FragColor = vec4(n, 1.0); //
9 | }
--------------------------------------------------------------------------------
/example/shaders/curl/vert.glsl:
--------------------------------------------------------------------------------
1 | varying vec3 vColor;
2 | varying vec2 vUv;
3 |
4 | void main() {
5 | vUv = uv;
6 |
7 | vec3 n = gln_curl(position * 5.0);
8 | vColor = n;
9 |
10 | gl_Position = vec4(position, 1.0);
11 | }
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to this project will be documented in this file.
4 |
5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 |
8 | ## Version 1.0.0
9 |
10 | - Initial Release
11 |
--------------------------------------------------------------------------------
/example/shaders/velocity/frag.glsl:
--------------------------------------------------------------------------------
1 | varying vec2 vUv;
2 | uniform float uDelta;
3 | uniform vec3 uAccleration;
4 |
5 | void main() {
6 | vec3 p = texture2D(positionField, vUv).xyz;
7 | vec3 tv = texture2D(velocityField, vUv).xyz;
8 |
9 | vec3 v = tv;
10 | v += uAccleration * uDelta;
11 |
12 | gl_FragColor = vec4(v, 1.0); //
13 | }
--------------------------------------------------------------------------------
/example/shaders/life/frag.glsl:
--------------------------------------------------------------------------------
1 |
2 | uniform float uDelta;
3 | varying vec2 vUv;
4 |
5 | void main() {
6 | vec3 p = texture2D(positionField, vUv).xyz;
7 | vec3 tl = texture2D(lifeField, vUv).xyz;
8 |
9 | float l = tl.x - (uDelta * 0.05);
10 |
11 | // if (distance(vec3(0.0), p) <= 0.1)
12 | // l = 1.0;
13 |
14 | gl_FragColor = vec4(vec3(l), 1.0); //
15 | }
--------------------------------------------------------------------------------
/example/shaders/position/frag.glsl:
--------------------------------------------------------------------------------
1 | varying vec2 vUv;
2 | uniform float uDelta;
3 |
4 | void main() {
5 | vec3 tp = texture2D(positionField, vUv).xyz;
6 | vec3 v = texture2D(velocityField, vUv).xyz;
7 | vec3 f = texture2D(flowField, vUv).xyz;
8 |
9 | vec3 p = tp;
10 | p += (v * f) * uDelta;
11 |
12 | float w = 15.0;
13 |
14 | if (p.x > w) {
15 | p.x = -0.0;
16 | } else if (p.x < -w) {
17 | p.x = 0.0;
18 | }
19 |
20 | if (p.y > w) {
21 | p.y = -0.0;
22 | } else if (p.y < -w) {
23 | p.y = 0.0;
24 | }
25 |
26 | if (p.z > w) {
27 | p.z = -0.0;
28 | } else if (p.z < -w) {
29 | p.z = 0.0;
30 | }
31 |
32 | gl_FragColor = vec4(p, 1.0); //
33 | }
--------------------------------------------------------------------------------
/example/lights.js:
--------------------------------------------------------------------------------
1 | import * as THREE from "https://cdn.skypack.dev/three";
2 |
3 | export default function lights(scene) {
4 | const directionalLight = new THREE.DirectionalLight(0xffffff, 0.5, 100);
5 | const light = new THREE.HemisphereLight(0xffffff, 0xffffff, 0.9);
6 |
7 | scene.add(light);
8 | scene.add(directionalLight);
9 |
10 | directionalLight.position.set(8, 8, 2);
11 | directionalLight.castShadow = true;
12 |
13 | directionalLight.shadow.mapSize.width = 512; // default
14 | directionalLight.shadow.mapSize.height = 512; // default
15 | directionalLight.shadow.camera.near = 0.5; // default
16 | directionalLight.shadow.camera.far = 500;
17 |
18 | return { light, directionalLight };
19 | }
20 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | // project options
4 | "lib":["es5", "es6", "dom"],
5 | "outDir": "build",
6 | "module": "esnext",
7 | "target": "ES2018",
8 | "declaration": true,
9 | "declarationDir": "build/types",
10 |
11 | // Strict Checks
12 | "alwaysStrict": true,
13 | "allowUnreachableCode": false,
14 | "noImplicitAny": true,
15 | "noImplicitReturns": true,
16 | "noUncheckedIndexedAccess": true,
17 | "noUnusedLocals": true,
18 | "noUnusedParameters": true,
19 | "moduleResolution": "Node",
20 | "allowJs": true,
21 | "checkJs": false
22 | },
23 | "include": ["src/**/*", "index.ts"],
24 | "exclude": [
25 | "node_modules/**/*"
26 | ]
27 | }
--------------------------------------------------------------------------------
/example/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Multipass Shader Helper | Example
8 |
34 |
35 |
36 | Particles via Curl Noise.
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Faraz Shaikh
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "three-multipass-shader-helper",
3 | "version": "1.0.0",
4 | "description": "Create multi-pass shaders in ThreeJS, intuitively.",
5 | "main": "build/MultipassShaderHelper.js",
6 | "type": "module",
7 | "types": "build/MultipassShaderHelper.d.ts",
8 | "scripts": {
9 | "build": "chmod +x scripts/build.sh && ./scripts/build.sh"
10 | },
11 | "keywords": [
12 | "glsl",
13 | "shader",
14 | "webgl",
15 | "threejs",
16 | "3d"
17 | ],
18 | "repository": {
19 | "type": "git",
20 | "url": "https://github.com/FarazzShaikh/THREE-MultipassShaderHelper"
21 | },
22 | "homepage": "https://github.com/FarazzShaikh/THREE-MultipassShaderHelper",
23 | "author": "Faraz Shaikh",
24 | "license": "MIT",
25 | "files": [
26 | "build/*",
27 | "README.md",
28 | "package.json"
29 | ],
30 | "dependencies": {
31 | "three": "^0.132.2"
32 | },
33 | "devDependencies": {
34 | "@types/node": "^15.0.3",
35 | "@types/node-fetch": "^2.5.10",
36 | "@types/three": "^0.131.0",
37 | "rollup": "^2.46.0",
38 | "rollup-plugin-cleanup": "^3.2.1",
39 | "rollup-plugin-dts": "^3.0.2",
40 | "rollup-plugin-typescript2": "^0.30.0",
41 | "tslib": "^2.2.0",
42 | "typescript": "^4.2.4"
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import typescript from "rollup-plugin-typescript2";
2 | import dts from "rollup-plugin-dts";
3 | import cleanup from "rollup-plugin-cleanup";
4 |
5 | const tscOpts = {
6 | useTsconfigDeclarationDir: true,
7 | };
8 |
9 | export default [
10 | {
11 | input: "index.ts",
12 | output: {
13 | file: "build/MultipassShaderHelper.js",
14 | format: "es",
15 | },
16 | external: ["three"],
17 | plugins: [typescript(tscOpts), cleanup()],
18 | },
19 | {
20 | input: "index.ts",
21 | output: {
22 | file: "build/MultipassShaderHelper.browser.js",
23 | format: "iife",
24 | name: "MultipassShaderHelper",
25 | globals: {
26 | three: "THREE",
27 | },
28 | },
29 | external: ["three"],
30 | plugins: [typescript(tscOpts), cleanup()],
31 | },
32 |
33 | {
34 | input: "index.ts",
35 | output: {
36 | sourcemap: true,
37 | file: "build/MultipassShaderHelper.cdn.js",
38 | format: "es",
39 | paths: {
40 | three: "https://cdn.skypack.dev/three",
41 | },
42 | },
43 | external: ["three"],
44 | plugins: [typescript(tscOpts), cleanup()],
45 | },
46 |
47 | {
48 | input: "build/types/index.d.ts",
49 | output: [
50 | {
51 | file: "build/MultipassShaderHelper.d.ts",
52 | format: "es",
53 | },
54 | ],
55 | external: ["three"],
56 | plugins: [dts()],
57 | },
58 | ];
59 |
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | name: Main 🧠
2 | on:
3 | push:
4 | branches:
5 | - master
6 | jobs:
7 | build-and-deploy:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - name: Checkout repo
11 | uses: actions/checkout@v2
12 | with:
13 | submodules: "true"
14 |
15 | - name: Build
16 | run: |
17 | yarn install
18 | yarn build
19 |
20 | - name: Publish
21 | uses: JamesIves/github-pages-deploy-action@4.1.1
22 | with:
23 | branch: gh-pages
24 | folder: example
25 |
26 | - name: Publish to NPM
27 | uses: JS-DevTools/npm-publish@v1
28 | id: publish
29 | if: ${{ env.deployment_status != 'failed' }}
30 | with:
31 | token: ${{ secrets.NPM_TOKEN }}
32 |
33 | - name: Get changes from changelog
34 | if: ${{ steps.publish.outputs.type != 'none' }}
35 | run: |
36 | chmod +x scripts/getChange.sh
37 | ./scripts/getChange.sh ${{steps.publish.outputs.version}} CHANGELOG.md > CHANGELOG.txt
38 |
39 | - name: Release on GitHub
40 | uses: softprops/action-gh-release@v1
41 | if: ${{ steps.publish.outputs.type != 'none' }}
42 | with:
43 | body_path: CHANGELOG.txt
44 | files: build/*
45 | tag_name: ${{steps.publish.outputs.version}}
46 | env:
47 | GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
48 |
49 | - name: Push changes
50 | uses: ad-m/github-push-action@master
51 | with:
52 | github_token: ${{ secrets.GITHUB_TOKEN }}
53 | branch: ${{ github.ref }}
54 |
--------------------------------------------------------------------------------
/example/setup.js:
--------------------------------------------------------------------------------
1 | import * as THREE from "https://cdn.skypack.dev/three";
2 | import { OrbitControls } from "https://cdn.skypack.dev/three/examples/jsm/controls/OrbitControls.js";
3 |
4 | let renderer, scene, camera, controls;
5 |
6 | /**
7 | *
8 | * @returns {THREE.Scene}
9 | */
10 | export function initScene() {
11 | // Creating a scene
12 | scene = new THREE.Scene();
13 |
14 | // Defining options
15 | const fov = 45;
16 | const aspectRatio = window.innerWidth / window.innerHeight;
17 | const nearPlane = 0.1;
18 | const farPlane = 1000;
19 |
20 | // Creating a camera
21 | camera = new THREE.PerspectiveCamera(fov, aspectRatio, nearPlane, farPlane);
22 |
23 | camera.position.set(5, 7, 5);
24 | camera.lookAt(0, 0, 0);
25 |
26 | // Creating a Renderer
27 | renderer = new THREE.WebGLRenderer({
28 | antialias: true, // 👈 Enable Antialiasing
29 | alpha: true,
30 | });
31 | renderer.shadowMap.enabled = true;
32 | renderer.shadowMap.type = THREE.PCFSoftShadowMap; // default THREE.PCFShadowMap
33 |
34 | // Setting the Renderer's size to the entire window
35 | renderer.setSize(window.innerWidth, window.innerHeight);
36 |
37 | // Append Renderer to the body
38 | document.body.appendChild(renderer.domElement);
39 |
40 | controls = new OrbitControls(camera, renderer.domElement);
41 | controls.enableDamping = true; // Enables inertia on the camera making it come to a more gradual stop.
42 | controls.dampingFactor = 0.25; // Inertia factor
43 |
44 | return { scene, renderer, camera, controls };
45 | }
46 |
47 | export function initHelpers() {
48 | const size = 10;
49 | const divisions = 10;
50 |
51 | const gridHelper = new THREE.GridHelper(size, divisions);
52 | scene.add(gridHelper);
53 |
54 | const axesHelper = new THREE.AxesHelper(5);
55 | scene.add(axesHelper);
56 | }
57 |
58 | /**
59 | *
60 | * @param {number} dt
61 | * @param {Function} callback
62 | */
63 | export function render(dt, callback, noRender) {
64 | callback(dt);
65 | controls.update();
66 |
67 | if (!noRender) renderer.render(scene, camera);
68 | requestAnimationFrame((dt) => render(dt, callback, noRender));
69 | }
70 |
--------------------------------------------------------------------------------
/src/MultipassShaderHelper.ts:
--------------------------------------------------------------------------------
1 | import * as THREE from "three";
2 | import { GPUComputationRenderer } from "./GPUComputationRenderer";
3 |
4 | type TPass = {
5 | vertexShader: string;
6 | fragmentShader: string;
7 | uniforms: {
8 | [key: string]: THREE.IUniform;
9 | };
10 | onLoadTexture: (texture: THREE.DataTexture) => void;
11 | };
12 |
13 | type TPasses = {
14 | [key: string]: TPass;
15 | };
16 |
17 | export class MultipassShaderHelper extends GPUComputationRenderer {
18 | static Dependency = class Dependency {};
19 |
20 | textures: {
21 | [key: string]: () => THREE.DataTexture[];
22 | } = {};
23 |
24 | allVariables: {
25 | [key: string]: any;
26 | } = {};
27 |
28 | constructor(
29 | renderer: THREE.WebGLRenderer,
30 | passes: TPasses,
31 | width: number = 512,
32 | height: number = 512
33 | ) {
34 | super(width, height, renderer);
35 |
36 | Object.keys(passes).forEach((name) => {
37 | const pass = passes[name];
38 |
39 | // Texture
40 | const texture = this.createTexture();
41 | if (pass.onLoadTexture) pass.onLoadTexture(texture);
42 |
43 | // Variable
44 | const variable = this.addVariable(
45 | name,
46 | pass.fragmentShader,
47 | pass.vertexShader,
48 | texture
49 | );
50 | this.allVariables[name] = variable;
51 | });
52 |
53 | Object.keys(passes).forEach((name) => {
54 | const pass = passes[name];
55 |
56 | if (pass.uniforms) {
57 | const cVariable = this.variables.find((v) => v.name === name);
58 | const deps = [];
59 |
60 | for (const key in pass.uniforms) {
61 | const uniform = pass.uniforms[key];
62 |
63 | if (uniform.value instanceof MultipassShaderHelper.Dependency) {
64 | const dVariable = this.variables.find((v) => v.name === key);
65 | deps.push(dVariable);
66 | } else {
67 | cVariable.material.uniforms[key] = uniform;
68 | }
69 | }
70 | this.setVariableDependencies(cVariable, deps);
71 | }
72 | });
73 |
74 | this.textures = {};
75 | for (const name in this.allVariables) {
76 | this.textures[name] = (() =>
77 | this.getCurrentRenderTarget(this.allVariables[name]).texture).bind(
78 | this
79 | );
80 | }
81 |
82 | this.reset();
83 | }
84 |
85 | reset() {
86 | const error = this.init();
87 | if (error !== null) {
88 | console.error(error);
89 | }
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
THREEMultipass Shader Helper
4 |
5 |
6 | Create multi-pass shaders in ThreeJS, intuitively.
7 |
8 | View Demo
9 | ·
10 | Report Bug
11 |
12 |
13 |
14 |
15 |
16 |
17 | ## Install
18 |
19 | ### Ndoe
20 |
21 | ```bash
22 | npm install three-multipass-shader-helper
23 | # or
24 | yarn add three-multipass-shader-helper
25 | ```
26 |
27 | ### Browser
28 |
29 | Download the IIFE style module from `build/MultipassShaderHelper.browser.js`.
30 |
31 | ## Import
32 |
33 | ### Node
34 |
35 | ```js
36 | import { MultipassShaderHelper } from "three-multipass-shader-helper";
37 | ```
38 |
39 | ### Browser
40 |
41 | ```html
42 |
43 |
44 |
45 |
46 |
47 | ```
48 |
49 | ## Use
50 |
51 | It's quite straightforward.
52 |
53 | ### Create passes
54 |
55 | ```js
56 | const passes = {
57 | BufferA: {
58 | vertexShader: `...`,
59 | fragmentShader: `...`,
60 | uniforms: {
61 | // Takes in regular uniforms
62 | uDelta: { value: 0 },
63 |
64 | // And other passes
65 | BufferB: { value: new MultipassShaderHelper.Dependency() },
66 | // Must have this type
67 | },
68 | onLoadTexture: (texture) => {
69 | /*...Fill texture maybe?*/
70 | },
71 | },
72 | BufferB: {
73 | vertexShader: pVert,
74 | fragmentShader: pFrag,
75 | // Uniforms and `onLoadTexture` are optional
76 | },
77 | };
78 | ```
79 |
80 | ### Apply passes
81 |
82 | ```js
83 | const gpuCompute = new MultipassShaderHelper(renderer, passes);
84 | const material = new THREE.ShaderMaterial({
85 | vertexShader: `...`,
86 | fragmentShader: `...`,
87 | uniforms: {
88 | BufferA: { value: gpu.textures.BufferA() },
89 | BufferB: { value: gpu.textures.BufferB() },
90 | },
91 | });
92 |
93 | // ...
94 |
95 | const clock = new THREE.Clock();
96 | function render() {
97 | const delta = clock.getDelta();
98 |
99 | // Get a buffer's variable
100 | const { BufferA } = gpuCompute.allVariables;
101 | // Update its uniforms
102 | BufferA.material.uniforms.uDelta = delta;
103 |
104 | // Use it
105 | material.uniforms.BufferA.value = gpu.textures.BufferA();
106 | material.uniforms.BufferB.value = gpu.textures.BufferB();
107 |
108 | // Compute the shaders
109 | gpuCompute.compute();
110 | }
111 | ```
112 |
--------------------------------------------------------------------------------
/example/main.js:
--------------------------------------------------------------------------------
1 | import * as THREE from "https://cdn.skypack.dev/three";
2 | import { initScene, render } from "./setup.js";
3 |
4 | import {
5 | loadShadersCSM,
6 | loadShadersRaw,
7 | loadShaders,
8 | } from "./lib/glNoise/build/glNoise.m.js";
9 |
10 | import {
11 | CustomShaderMaterial,
12 | TYPES,
13 | } from "https://cdn.skypack.dev/three-custom-shader-material";
14 | import * as dat from "https://cdn.skypack.dev/dat.gui";
15 |
16 | import { MultipassShaderHelper } from "./build/MultipassShaderHelper.cdn.js";
17 |
18 | function fillVelocityTexture(texture) {
19 | const theArray = texture.image.data;
20 |
21 | for (let k = 0, kl = theArray.length; k < kl; k += 4) {
22 | const x = Math.random() - 0.5;
23 | const y = Math.random() - 0.5;
24 | const z = Math.random() - 0.5;
25 |
26 | theArray[k + 0] = x * 10;
27 | theArray[k + 1] = y * 10;
28 | theArray[k + 2] = z * 10;
29 | theArray[k + 3] = 1;
30 | }
31 | }
32 |
33 | function fillPositionTexture(texture) {
34 | const theArray = texture.image.data;
35 |
36 | for (let k = 0, kl = theArray.length; k < kl; k += 4) {
37 | const x = 0;
38 | const y = 0;
39 | const z = 0;
40 |
41 | theArray[k + 0] = x;
42 | theArray[k + 1] = y;
43 | theArray[k + 2] = z;
44 | theArray[k + 3] = 1;
45 | }
46 | }
47 |
48 | async function makePasses() {
49 | const [cVert, cFrag] = await loadShaders([
50 | "./shaders/curl/vert.glsl", //
51 | "./shaders/curl/frag.glsl",
52 | ]);
53 |
54 | const [vVert, vFrag, pVert, pFrag, lVert, lFrag] = await loadShadersRaw([
55 | "./shaders/velocity/vert.glsl", //
56 | "./shaders/velocity/frag.glsl",
57 | "./shaders/position/vert.glsl", //
58 | "./shaders/position/frag.glsl",
59 | "./shaders/life/vert.glsl", //
60 | "./shaders/life/frag.glsl",
61 | ]);
62 |
63 | const passes = {
64 | velocityField: {
65 | vertexShader: vVert,
66 | fragmentShader: vFrag,
67 | uniforms: {
68 | uDelta: { value: 0 },
69 | uAccleration: { value: new THREE.Vector3().setScalar(0.2) },
70 |
71 | velocityField: { value: new MultipassShaderHelper.Dependency() },
72 | positionField: { value: new MultipassShaderHelper.Dependency() },
73 | },
74 | onLoadTexture: (t) => fillVelocityTexture(t),
75 | },
76 | positionField: {
77 | vertexShader: pVert,
78 | fragmentShader: pFrag,
79 | uniforms: {
80 | uDelta: { value: 0 },
81 |
82 | velocityField: { value: new MultipassShaderHelper.Dependency() },
83 | positionField: { value: new MultipassShaderHelper.Dependency() },
84 | flowField: { value: new MultipassShaderHelper.Dependency() },
85 | },
86 | onLoadTexture: (t) => fillPositionTexture(t),
87 | },
88 | flowField: {
89 | vertexShader: cVert,
90 | fragmentShader: cFrag,
91 |
92 | uniforms: {
93 | positionField: { value: new MultipassShaderHelper.Dependency() },
94 | },
95 | },
96 | };
97 |
98 | return passes;
99 | }
100 |
101 | const createShaderMaterial = async () => {
102 | const particleVertexShader = await loadShadersCSM({
103 | header: "./shaders/particle/vert/header.glsl", //
104 | main: "./shaders/particle/vert/main.glsl", //
105 | });
106 |
107 | const material = new CustomShaderMaterial({
108 | baseMaterial: TYPES.POINTS,
109 | vShader: particleVertexShader,
110 | uniforms: {
111 | positionField: {
112 | value: null,
113 | },
114 | lifeField: {
115 | value: null,
116 | },
117 | uTime: {
118 | value: 0,
119 | },
120 | pointColor: {
121 | value: new THREE.Color("#F38BA0"),
122 | },
123 | },
124 | passthrough: {
125 | size: 0.3,
126 | transparent: true,
127 | opacity: 0.1,
128 | },
129 | });
130 | return material;
131 | };
132 |
133 | (async () => {
134 | const { scene, renderer, camera, controls } = initScene();
135 | camera.position.setScalar(25);
136 |
137 | const geom = new THREE.IcosahedronGeometry(3, 64);
138 | const material = await createShaderMaterial();
139 | const mesh = new THREE.Points(geom, material);
140 | scene.add(mesh);
141 |
142 | const passes = await makePasses();
143 | const gpu = new MultipassShaderHelper(renderer, passes);
144 |
145 | const gui = new dat.gui.GUI();
146 | gui.domElement.parentElement.style.zIndex = 1000;
147 |
148 | const obj = {
149 | Reset: () => {
150 | gpu.reset();
151 | },
152 | };
153 | gui.add(obj, "Reset");
154 |
155 | const clock = new THREE.Clock();
156 | render(0, () => {
157 | const delta = clock.getDelta();
158 | if (material && material.uniforms) {
159 | const { positionField, velocityField } = gpu.allVariables;
160 |
161 | const positionTexture = gpu.textures.positionField();
162 |
163 | material.uniforms.positionField.value = positionTexture;
164 |
165 | velocityField.material.uniforms.uDelta.value = delta;
166 | positionField.material.uniforms.uDelta.value = delta;
167 | gpu.compute();
168 | }
169 | });
170 | })();
171 |
--------------------------------------------------------------------------------
/src/GPUComputationRenderer.js:
--------------------------------------------------------------------------------
1 | import * as THREE from "three";
2 |
3 | /**
4 | * GPUComputationRenderer, based on SimulationRenderer by zz85
5 | *
6 | * The GPUComputationRenderer uses the concept of variables. These variables are RGBA float textures that hold 4 floats
7 | * for each compute element (texel)
8 | *
9 | * Each variable has a fragment shader that defines the computation made to obtain the variable in question.
10 | * You can use as many variables you need, and make dependencies so you can use textures of other variables in the shader
11 | * (the sampler uniforms are added automatically) Most of the variables will need themselves as dependency.
12 | *
13 | * The renderer has actually two render targets per variable, to make ping-pong. Textures from the current frame are used
14 | * as inputs to render the textures of the next frame.
15 | *
16 | * The render targets of the variables can be used as input textures for your visualization shaders.
17 | *
18 | * Variable names should be valid identifiers and should not collide with THREE GLSL used identifiers.
19 | * a common approach could be to use 'texture' prefixing the variable name; i.e texturePosition, textureVelocity...
20 | *
21 | * The size of the computation (sizeX * sizeY) is defined as 'resolution' automatically in the shader. For example:
22 | * #DEFINE resolution vec2( 1024.0, 1024.0 )
23 | *
24 | * -------------
25 | *
26 | * Basic use:
27 | *
28 | * // Initialization...
29 | *
30 | * // Create computation renderer
31 | * const gpuCompute = new GPUComputationRenderer( 1024, 1024, renderer );
32 | *
33 | * // Create initial state float textures
34 | * const pos0 = gpuCompute.createTexture();
35 | * const vel0 = gpuCompute.createTexture();
36 | * // and fill in here the texture data...
37 | *
38 | * // Add texture variables
39 | * const velVar = gpuCompute.addVariable( "textureVelocity", fragmentShaderVel, pos0 );
40 | * const posVar = gpuCompute.addVariable( "texturePosition", fragmentShaderPos, vel0 );
41 | *
42 | * // Add variable dependencies
43 | * gpuCompute.setVariableDependencies( velVar, [ velVar, posVar ] );
44 | * gpuCompute.setVariableDependencies( posVar, [ velVar, posVar ] );
45 | *
46 | * // Add custom uniforms
47 | * velVar.material.uniforms.time = { value: 0.0 };
48 | *
49 | * // Check for completeness
50 | * const error = gpuCompute.init();
51 | * if ( error !== null ) {
52 | * console.error( error );
53 | * }
54 | *
55 | *
56 | * // In each frame...
57 | *
58 | * // Compute!
59 | * gpuCompute.compute();
60 | *
61 | * // Update texture uniforms in your visualization materials with the gpu renderer output
62 | * myMaterial.uniforms.myTexture.value = gpuCompute.getCurrentRenderTarget( posVar ).texture;
63 | *
64 | * // Do your rendering
65 | * renderer.render( myScene, myCamera );
66 | *
67 | * -------------
68 | *
69 | * Also, you can use utility functions to create THREE.ShaderMaterial and perform computations (rendering between textures)
70 | * Note that the shaders can have multiple input textures.
71 | *
72 | * const myFilter1 = gpuCompute.createShaderMaterial( myFilterFragmentShader1, { theTexture: { value: null } } );
73 | * const myFilter2 = gpuCompute.createShaderMaterial( myFilterFragmentShader2, { theTexture: { value: null } } );
74 | *
75 | * const inputTexture = gpuCompute.createTexture();
76 | *
77 | * // Fill in here inputTexture...
78 | *
79 | * myFilter1.uniforms.theTexture.value = inputTexture;
80 | *
81 | * const myRenderTarget = gpuCompute.createRenderTarget();
82 | * myFilter2.uniforms.theTexture.value = myRenderTarget.texture;
83 | *
84 | * const outputRenderTarget = gpuCompute.createRenderTarget();
85 | *
86 | * // Now use the output texture where you want:
87 | * myMaterial.uniforms.map.value = outputRenderTarget.texture;
88 | *
89 | * // And compute each frame, before rendering to screen:
90 | * gpuCompute.doRenderTarget( myFilter1, myRenderTarget );
91 | * gpuCompute.doRenderTarget( myFilter2, outputRenderTarget );
92 | *
93 | *
94 | *
95 | * @param {int} sizeX Computation problem size is always 2d: sizeX * sizeY elements.
96 | * @param {int} sizeY Computation problem size is always 2d: sizeX * sizeY elements.
97 | * @param {WebGLRenderer} renderer The renderer
98 | */
99 |
100 | export class GPUComputationRenderer {
101 | constructor(sizeX, sizeY, renderer) {
102 | this.sizeX = sizeX;
103 | this.sizeY = sizeY;
104 | this.renderer = renderer;
105 | this.variables = [];
106 | this.currentTextureIndex = 0;
107 | let dataType = THREE.FloatType;
108 | const scene = new THREE.Scene();
109 | const camera = new THREE.Camera();
110 | camera.position.z = 1;
111 | const passThruUniforms = {
112 | passThruTexture: {
113 | value: null,
114 | },
115 | };
116 | const passThruShader = createShaderMaterial(
117 | getPassThroughFragmentShader(),
118 | getPassThroughVertexShader(),
119 | passThruUniforms
120 | );
121 | const mesh = new THREE.Mesh(new THREE.PlaneGeometry(2, 2), passThruShader);
122 | scene.add(mesh);
123 |
124 | this.setDataType = function (type) {
125 | dataType = type;
126 | return this;
127 | };
128 |
129 | this.addVariable = function (
130 | variableName,
131 | computeFragmentShader,
132 | computeVertexShader,
133 | initialValueTexture
134 | ) {
135 | const material = this.createShaderMaterial(
136 | computeFragmentShader,
137 | computeVertexShader
138 | );
139 | const variable = {
140 | name: variableName,
141 | initialValueTexture: initialValueTexture,
142 | material: material,
143 | dependencies: null,
144 | renderTargets: [],
145 | wrapS: null,
146 | wrapT: null,
147 | minFilter: THREE.NearestFilter,
148 | magFilter: THREE.NearestFilter,
149 | };
150 | this.variables.push(variable);
151 | return variable;
152 | };
153 |
154 | this.setVariableDependencies = function (variable, dependencies) {
155 | variable.dependencies = dependencies;
156 | };
157 |
158 | this.getCurrentRenderTarget = function (variable) {
159 | return variable.renderTargets[this.currentTextureIndex];
160 | };
161 |
162 | this.getAlternateRenderTarget = function (variable) {
163 | return variable.renderTargets[this.currentTextureIndex === 0 ? 1 : 0];
164 | };
165 |
166 | function addResolutionDefine(materialShader) {
167 | materialShader.defines.resolution =
168 | "vec2( " + sizeX.toFixed(1) + ", " + sizeY.toFixed(1) + " )";
169 | }
170 |
171 | this.addResolutionDefine = addResolutionDefine; // The following functions can be used to compute things manually
172 |
173 | function createShaderMaterial(
174 | computeFragmentShader,
175 | computeVertexShader,
176 | uniforms
177 | ) {
178 | uniforms = uniforms || {};
179 | const material = new THREE.ShaderMaterial({
180 | uniforms: uniforms,
181 | vertexShader: computeVertexShader || getPassThroughVertexShader(),
182 | fragmentShader: computeFragmentShader,
183 | });
184 | addResolutionDefine(material);
185 | return material;
186 | }
187 |
188 | this.createShaderMaterial = createShaderMaterial;
189 |
190 | this.createRenderTarget = function (
191 | sizeXTexture,
192 | sizeYTexture,
193 | wrapS,
194 | wrapT,
195 | minFilter,
196 | magFilter
197 | ) {
198 | sizeXTexture = sizeXTexture || sizeX;
199 | sizeYTexture = sizeYTexture || sizeY;
200 | wrapS = wrapS || THREE.ClampToEdgeWrapping;
201 | wrapT = wrapT || THREE.ClampToEdgeWrapping;
202 | minFilter = minFilter || THREE.NearestFilter;
203 | magFilter = magFilter || THREE.NearestFilter;
204 | const renderTarget = new THREE.WebGLRenderTarget(
205 | sizeXTexture,
206 | sizeYTexture,
207 | {
208 | wrapS: wrapS,
209 | wrapT: wrapT,
210 | minFilter: minFilter,
211 | magFilter: magFilter,
212 | format: THREE.RGBAFormat,
213 | type: dataType,
214 | depthBuffer: false,
215 | }
216 | );
217 | return renderTarget;
218 | };
219 |
220 | this.createTexture = function () {
221 | const data = new Float32Array(sizeX * sizeY * 4);
222 | return new THREE.DataTexture(
223 | data,
224 | sizeX,
225 | sizeY,
226 | THREE.RGBAFormat,
227 | THREE.FloatType
228 | );
229 | };
230 |
231 | this.renderTexture = function (input, output) {
232 | // Takes a texture, and render out in rendertarget
233 | // input = Texture
234 | // output = RenderTarget
235 | passThruUniforms.passThruTexture.value = input;
236 | this.doRenderTarget(passThruShader, output);
237 | passThruUniforms.passThruTexture.value = null;
238 | };
239 |
240 | this.doRenderTarget = function (material, output) {
241 | const currentRenderTarget = renderer.getRenderTarget();
242 | mesh.material = material;
243 | renderer.setRenderTarget(output);
244 | renderer.render(scene, camera);
245 | mesh.material = passThruShader;
246 | renderer.setRenderTarget(currentRenderTarget);
247 | }; // Shaders
248 |
249 | function getPassThroughVertexShader() {
250 | return (
251 | "void main() {\n" +
252 | "\n" +
253 | " gl_Position = vec4( position, 1.0 );\n" +
254 | "\n" +
255 | "}\n"
256 | );
257 | }
258 |
259 | function getPassThroughFragmentShader() {
260 | return (
261 | "uniform sampler2D passThruTexture;\n" +
262 | "\n" +
263 | "void main() {\n" +
264 | "\n" +
265 | " vec2 uv = gl_FragCoord.xy / resolution.xy;\n" +
266 | "\n" +
267 | " gl_FragColor = texture2D( passThruTexture, uv );\n" +
268 | "\n" +
269 | "}\n"
270 | );
271 | }
272 | }
273 |
274 | init() {
275 | if (
276 | this.renderer.capabilities.isWebGL2 === false &&
277 | this.renderer.extensions.has("OES_texture_float") === false
278 | ) {
279 | return "No OES_texture_float support for float textures.";
280 | }
281 |
282 | if (this.renderer.capabilities.maxVertexTextures === 0) {
283 | return "No support for vertex shader textures.";
284 | }
285 |
286 | for (let i = 0; i < this.variables.length; i++) {
287 | const variable = this.variables[i]; // Creates rendertargets and initialize them with input texture
288 |
289 | variable.renderTargets[0] = this.createRenderTarget(
290 | this.sizeX,
291 | this.sizeY,
292 | variable.wrapS,
293 | variable.wrapT,
294 | variable.minFilter,
295 | variable.magFilter
296 | );
297 | variable.renderTargets[1] = this.createRenderTarget(
298 | this.sizeX,
299 | this.sizeY,
300 | variable.wrapS,
301 | variable.wrapT,
302 | variable.minFilter,
303 | variable.magFilter
304 | );
305 | this.renderTexture(
306 | variable.initialValueTexture,
307 | variable.renderTargets[0]
308 | );
309 | this.renderTexture(
310 | variable.initialValueTexture,
311 | variable.renderTargets[1]
312 | ); // Adds dependencies uniforms to the THREE.ShaderMaterial
313 |
314 | const material = variable.material;
315 | const uniforms = material.uniforms;
316 |
317 | if (variable.dependencies !== null) {
318 | for (let d = 0; d < variable.dependencies.length; d++) {
319 | const depVar = variable.dependencies[d];
320 |
321 | if (depVar.name !== variable.name) {
322 | // Checks if variable exists
323 | let found = false;
324 |
325 | for (let j = 0; j < this.variables.length; j++) {
326 | if (depVar.name === this.variables[j].name) {
327 | found = true;
328 | break;
329 | }
330 | }
331 |
332 | if (!found) {
333 | return (
334 | "Variable dependency not found. Variable=" +
335 | variable.name +
336 | ", dependency=" +
337 | depVar.name
338 | );
339 | }
340 | }
341 |
342 | uniforms[depVar.name] = {
343 | value: null,
344 | };
345 | material.fragmentShader =
346 | "\nuniform sampler2D " +
347 | depVar.name +
348 | ";\n" +
349 | material.fragmentShader;
350 | }
351 | }
352 | }
353 |
354 | this.currentTextureIndex = 0;
355 | return null;
356 | }
357 |
358 | compute() {
359 | const currentTextureIndex = this.currentTextureIndex;
360 | const nextTextureIndex = this.currentTextureIndex === 0 ? 1 : 0;
361 |
362 | for (let i = 0, il = this.variables.length; i < il; i++) {
363 | const variable = this.variables[i]; // Sets texture dependencies uniforms
364 |
365 | if (variable.dependencies !== null) {
366 | const uniforms = variable.material.uniforms;
367 |
368 | for (let d = 0, dl = variable.dependencies.length; d < dl; d++) {
369 | const depVar = variable.dependencies[d];
370 | uniforms[depVar.name].value =
371 | depVar.renderTargets[currentTextureIndex].texture;
372 | }
373 | } // Performs the computation for this variable
374 |
375 | this.doRenderTarget(
376 | variable.material,
377 | variable.renderTargets[nextTextureIndex]
378 | );
379 | }
380 |
381 | this.currentTextureIndex = nextTextureIndex;
382 | }
383 | }
384 |
--------------------------------------------------------------------------------
/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.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5":
6 | version "7.14.5"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"
8 | integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
9 | dependencies:
10 | "@babel/highlight" "^7.14.5"
11 |
12 | "@babel/compat-data@^7.15.0":
13 | version "7.15.0"
14 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176"
15 | integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==
16 |
17 | "@babel/core@^7.7.5":
18 | version "7.15.0"
19 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8"
20 | integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==
21 | dependencies:
22 | "@babel/code-frame" "^7.14.5"
23 | "@babel/generator" "^7.15.0"
24 | "@babel/helper-compilation-targets" "^7.15.0"
25 | "@babel/helper-module-transforms" "^7.15.0"
26 | "@babel/helpers" "^7.14.8"
27 | "@babel/parser" "^7.15.0"
28 | "@babel/template" "^7.14.5"
29 | "@babel/traverse" "^7.15.0"
30 | "@babel/types" "^7.15.0"
31 | convert-source-map "^1.7.0"
32 | debug "^4.1.0"
33 | gensync "^1.0.0-beta.2"
34 | json5 "^2.1.2"
35 | semver "^6.3.0"
36 | source-map "^0.5.0"
37 |
38 | "@babel/generator@^7.12.11", "@babel/generator@^7.15.0":
39 | version "7.15.0"
40 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15"
41 | integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==
42 | dependencies:
43 | "@babel/types" "^7.15.0"
44 | jsesc "^2.5.1"
45 | source-map "^0.5.0"
46 |
47 | "@babel/helper-compilation-targets@^7.15.0":
48 | version "7.15.0"
49 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818"
50 | integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==
51 | dependencies:
52 | "@babel/compat-data" "^7.15.0"
53 | "@babel/helper-validator-option" "^7.14.5"
54 | browserslist "^4.16.6"
55 | semver "^6.3.0"
56 |
57 | "@babel/helper-function-name@^7.14.5":
58 | version "7.14.5"
59 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4"
60 | integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==
61 | dependencies:
62 | "@babel/helper-get-function-arity" "^7.14.5"
63 | "@babel/template" "^7.14.5"
64 | "@babel/types" "^7.14.5"
65 |
66 | "@babel/helper-get-function-arity@^7.14.5":
67 | version "7.14.5"
68 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815"
69 | integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==
70 | dependencies:
71 | "@babel/types" "^7.14.5"
72 |
73 | "@babel/helper-hoist-variables@^7.14.5":
74 | version "7.14.5"
75 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d"
76 | integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==
77 | dependencies:
78 | "@babel/types" "^7.14.5"
79 |
80 | "@babel/helper-member-expression-to-functions@^7.15.0":
81 | version "7.15.0"
82 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b"
83 | integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==
84 | dependencies:
85 | "@babel/types" "^7.15.0"
86 |
87 | "@babel/helper-module-imports@^7.14.5":
88 | version "7.14.5"
89 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3"
90 | integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==
91 | dependencies:
92 | "@babel/types" "^7.14.5"
93 |
94 | "@babel/helper-module-transforms@^7.15.0":
95 | version "7.15.0"
96 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08"
97 | integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==
98 | dependencies:
99 | "@babel/helper-module-imports" "^7.14.5"
100 | "@babel/helper-replace-supers" "^7.15.0"
101 | "@babel/helper-simple-access" "^7.14.8"
102 | "@babel/helper-split-export-declaration" "^7.14.5"
103 | "@babel/helper-validator-identifier" "^7.14.9"
104 | "@babel/template" "^7.14.5"
105 | "@babel/traverse" "^7.15.0"
106 | "@babel/types" "^7.15.0"
107 |
108 | "@babel/helper-optimise-call-expression@^7.14.5":
109 | version "7.14.5"
110 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c"
111 | integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==
112 | dependencies:
113 | "@babel/types" "^7.14.5"
114 |
115 | "@babel/helper-replace-supers@^7.15.0":
116 | version "7.15.0"
117 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4"
118 | integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==
119 | dependencies:
120 | "@babel/helper-member-expression-to-functions" "^7.15.0"
121 | "@babel/helper-optimise-call-expression" "^7.14.5"
122 | "@babel/traverse" "^7.15.0"
123 | "@babel/types" "^7.15.0"
124 |
125 | "@babel/helper-simple-access@^7.14.8":
126 | version "7.14.8"
127 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924"
128 | integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==
129 | dependencies:
130 | "@babel/types" "^7.14.8"
131 |
132 | "@babel/helper-split-export-declaration@^7.14.5":
133 | version "7.14.5"
134 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a"
135 | integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==
136 | dependencies:
137 | "@babel/types" "^7.14.5"
138 |
139 | "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9":
140 | version "7.14.9"
141 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48"
142 | integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==
143 |
144 | "@babel/helper-validator-option@^7.14.5":
145 | version "7.14.5"
146 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3"
147 | integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==
148 |
149 | "@babel/helpers@^7.14.8":
150 | version "7.15.3"
151 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357"
152 | integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==
153 | dependencies:
154 | "@babel/template" "^7.14.5"
155 | "@babel/traverse" "^7.15.0"
156 | "@babel/types" "^7.15.0"
157 |
158 | "@babel/highlight@^7.14.5":
159 | version "7.14.5"
160 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
161 | integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
162 | dependencies:
163 | "@babel/helper-validator-identifier" "^7.14.5"
164 | chalk "^2.0.0"
165 | js-tokens "^4.0.0"
166 |
167 | "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.2.3":
168 | version "7.15.3"
169 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862"
170 | integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==
171 |
172 | "@babel/polyfill@^7.4.4":
173 | version "7.12.1"
174 | resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.12.1.tgz#1f2d6371d1261bbd961f3c5d5909150e12d0bd96"
175 | integrity sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==
176 | dependencies:
177 | core-js "^2.6.5"
178 | regenerator-runtime "^0.13.4"
179 |
180 | "@babel/runtime@^7.7.6":
181 | version "7.15.3"
182 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b"
183 | integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==
184 | dependencies:
185 | regenerator-runtime "^0.13.4"
186 |
187 | "@babel/template@^7.14.5":
188 | version "7.14.5"
189 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
190 | integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==
191 | dependencies:
192 | "@babel/code-frame" "^7.14.5"
193 | "@babel/parser" "^7.14.5"
194 | "@babel/types" "^7.14.5"
195 |
196 | "@babel/traverse@^7.1.6", "@babel/traverse@^7.15.0":
197 | version "7.15.0"
198 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98"
199 | integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==
200 | dependencies:
201 | "@babel/code-frame" "^7.14.5"
202 | "@babel/generator" "^7.15.0"
203 | "@babel/helper-function-name" "^7.14.5"
204 | "@babel/helper-hoist-variables" "^7.14.5"
205 | "@babel/helper-split-export-declaration" "^7.14.5"
206 | "@babel/parser" "^7.15.0"
207 | "@babel/types" "^7.15.0"
208 | debug "^4.1.0"
209 | globals "^11.1.0"
210 |
211 | "@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0", "@babel/types@^7.2.0":
212 | version "7.15.0"
213 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd"
214 | integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==
215 | dependencies:
216 | "@babel/helper-validator-identifier" "^7.14.9"
217 | to-fast-properties "^2.0.0"
218 |
219 | "@bcoe/v8-coverage@^0.2.3":
220 | version "0.2.3"
221 | resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
222 | integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
223 |
224 | "@istanbuljs/schema@^0.1.2":
225 | version "0.1.3"
226 | resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
227 | integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
228 |
229 | "@rollup/pluginutils@^4.1.0":
230 | version "4.1.1"
231 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.1.tgz#1d4da86dd4eded15656a57d933fda2b9a08d47ec"
232 | integrity sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==
233 | dependencies:
234 | estree-walker "^2.0.1"
235 | picomatch "^2.2.2"
236 |
237 | "@types/babel-types@*", "@types/babel-types@^7.0.0":
238 | version "7.0.11"
239 | resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.11.tgz#263b113fa396fac4373188d73225297fb86f19a9"
240 | integrity sha512-pkPtJUUY+Vwv6B1inAz55rQvivClHJxc9aVEPPmaq2cbyeMLCiDpbKpcKyX4LAwpNGi+SHBv0tHv6+0gXv0P2A==
241 |
242 | "@types/babylon@^6.16.2":
243 | version "6.16.6"
244 | resolved "https://registry.yarnpkg.com/@types/babylon/-/babylon-6.16.6.tgz#a1e7e01567b26a5ebad321a74d10299189d8d932"
245 | integrity sha512-G4yqdVlhr6YhzLXFKy5F7HtRBU8Y23+iWy7UKthMq/OSQnL1hbsoeXESQ2LY8zEDlknipDG3nRGhUC9tkwvy/w==
246 | dependencies:
247 | "@types/babel-types" "*"
248 |
249 | "@types/istanbul-lib-coverage@^2.0.1":
250 | version "2.0.3"
251 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
252 | integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==
253 |
254 | "@types/node-fetch@^2.5.10":
255 | version "2.5.12"
256 | resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66"
257 | integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==
258 | dependencies:
259 | "@types/node" "*"
260 | form-data "^3.0.0"
261 |
262 | "@types/node@*":
263 | version "16.7.10"
264 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.10.tgz#7aa732cc47341c12a16b7d562f519c2383b6d4fc"
265 | integrity sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==
266 |
267 | "@types/node@^15.0.3":
268 | version "15.14.9"
269 | resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa"
270 | integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==
271 |
272 | "@types/three@^0.131.0":
273 | version "0.131.0"
274 | resolved "https://registry.yarnpkg.com/@types/three/-/three-0.131.0.tgz#98f59887b05f71e665cf2fbdf04e0e4ceb9f89b6"
275 | integrity sha512-4VCtsDi6mIId96GcGKG91e2Y6VwU2T0u/YB7vCFJh1kXik93arxn7l9tVZHo1LXOtgCJJDdC+e1fwf2Vu/4ySw==
276 |
277 | acorn-globals@^3.0.0:
278 | version "3.1.0"
279 | resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf"
280 | integrity sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=
281 | dependencies:
282 | acorn "^4.0.4"
283 |
284 | acorn@^3.1.0:
285 | version "3.3.0"
286 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
287 | integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
288 |
289 | acorn@^4.0.4, acorn@~4.0.2:
290 | version "4.0.13"
291 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
292 | integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=
293 |
294 | align-text@^0.1.1, align-text@^0.1.3:
295 | version "0.1.4"
296 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
297 | integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=
298 | dependencies:
299 | kind-of "^3.0.2"
300 | longest "^1.0.1"
301 | repeat-string "^1.5.2"
302 |
303 | ansi-regex@^5.0.0:
304 | version "5.0.0"
305 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
306 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
307 |
308 | ansi-styles@^3.2.1:
309 | version "3.2.1"
310 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
311 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
312 | dependencies:
313 | color-convert "^1.9.0"
314 |
315 | ansi-styles@^4.0.0:
316 | version "4.3.0"
317 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
318 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
319 | dependencies:
320 | color-convert "^2.0.1"
321 |
322 | asap@~2.0.3:
323 | version "2.0.6"
324 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
325 | integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
326 |
327 | ast-types@0.12.4, ast-types@^0.12.2:
328 | version "0.12.4"
329 | resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.12.4.tgz#71ce6383800f24efc9a1a3308f3a6e420a0974d1"
330 | integrity sha512-ky/YVYCbtVAS8TdMIaTiPFHwEpRB5z1hctepJplTr3UW5q8TDrpIMCILyk8pmLxGtn2KCtC/lSn7zOsaI7nzDw==
331 |
332 | ast-types@^0.14.2:
333 | version "0.14.2"
334 | resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd"
335 | integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==
336 | dependencies:
337 | tslib "^2.0.1"
338 |
339 | asynckit@^0.4.0:
340 | version "0.4.0"
341 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
342 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
343 |
344 | babel-runtime@^6.26.0:
345 | version "6.26.0"
346 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
347 | integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
348 | dependencies:
349 | core-js "^2.4.0"
350 | regenerator-runtime "^0.11.0"
351 |
352 | babel-types@^6.26.0:
353 | version "6.26.0"
354 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
355 | integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
356 | dependencies:
357 | babel-runtime "^6.26.0"
358 | esutils "^2.0.2"
359 | lodash "^4.17.4"
360 | to-fast-properties "^1.0.3"
361 |
362 | babylon@^6.18.0:
363 | version "6.18.0"
364 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
365 | integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
366 |
367 | balanced-match@^1.0.0:
368 | version "1.0.2"
369 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
370 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
371 |
372 | better-docs@^2.3.2:
373 | version "2.3.2"
374 | resolved "https://registry.yarnpkg.com/better-docs/-/better-docs-2.3.2.tgz#0de059301c49669a4350409d8c235868cf8bcbf7"
375 | integrity sha512-VlbXQgEftaynJSaPa853XB5WqTlPoQQr2TnxIkKi6OsyJJxF42Ke+9SIES/hqTe58aaBnuoDGrIzOso8RdNx6Q==
376 | dependencies:
377 | brace "^0.11.1"
378 | react-ace "^6.5.0"
379 | react-docgen "^5.3.0"
380 | react-frame-component "^4.1.1"
381 | typescript "^3.7.5"
382 | underscore "^1.9.1"
383 | vue-docgen-api "^3.22.0"
384 | vue2-ace-editor "^0.0.13"
385 |
386 | brace-expansion@^1.1.7:
387 | version "1.1.11"
388 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
389 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
390 | dependencies:
391 | balanced-match "^1.0.0"
392 | concat-map "0.0.1"
393 |
394 | brace@^0.11.0, brace@^0.11.1:
395 | version "0.11.1"
396 | resolved "https://registry.yarnpkg.com/brace/-/brace-0.11.1.tgz#4896fcc9d544eef45f4bb7660db320d3b379fe58"
397 | integrity sha1-SJb8ydVE7vRfS7dmDbMg07N5/lg=
398 |
399 | browserslist@^4.16.6:
400 | version "4.16.8"
401 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0"
402 | integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==
403 | dependencies:
404 | caniuse-lite "^1.0.30001251"
405 | colorette "^1.3.0"
406 | electron-to-chromium "^1.3.811"
407 | escalade "^3.1.1"
408 | node-releases "^1.1.75"
409 |
410 | buffer-from@^1.0.0:
411 | version "1.1.2"
412 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
413 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
414 |
415 | c8@^7.6.0:
416 | version "7.8.0"
417 | resolved "https://registry.yarnpkg.com/c8/-/c8-7.8.0.tgz#8fcfe848587d9d5796f22e9b0546a387a66d1b3b"
418 | integrity sha512-x2Bx+IIEd608B1LmjiNQ/kizRPkCWo5XzuV57J9afPjAHSnYXALwbCSOkQ7cSaNXBNblfqcvdycj+klmL+j6yA==
419 | dependencies:
420 | "@bcoe/v8-coverage" "^0.2.3"
421 | "@istanbuljs/schema" "^0.1.2"
422 | find-up "^5.0.0"
423 | foreground-child "^2.0.0"
424 | istanbul-lib-coverage "^3.0.0"
425 | istanbul-lib-report "^3.0.0"
426 | istanbul-reports "^3.0.2"
427 | rimraf "^3.0.0"
428 | test-exclude "^6.0.0"
429 | v8-to-istanbul "^8.0.0"
430 | yargs "^16.2.0"
431 | yargs-parser "^20.2.7"
432 |
433 | call-bind@^1.0.2:
434 | version "1.0.2"
435 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
436 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
437 | dependencies:
438 | function-bind "^1.1.1"
439 | get-intrinsic "^1.0.2"
440 |
441 | camelcase@^1.0.2:
442 | version "1.2.1"
443 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
444 | integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
445 |
446 | caniuse-lite@^1.0.30001251:
447 | version "1.0.30001252"
448 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a"
449 | integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==
450 |
451 | center-align@^0.1.1:
452 | version "0.1.3"
453 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
454 | integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60=
455 | dependencies:
456 | align-text "^0.1.3"
457 | lazy-cache "^1.0.3"
458 |
459 | chalk@^2.0.0:
460 | version "2.4.2"
461 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
462 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
463 | dependencies:
464 | ansi-styles "^3.2.1"
465 | escape-string-regexp "^1.0.5"
466 | supports-color "^5.3.0"
467 |
468 | character-parser@^2.1.1:
469 | version "2.2.0"
470 | resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0"
471 | integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A=
472 | dependencies:
473 | is-regex "^1.0.3"
474 |
475 | clean-css@^4.1.11:
476 | version "4.2.3"
477 | resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
478 | integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
479 | dependencies:
480 | source-map "~0.6.0"
481 |
482 | cliui@^2.1.0:
483 | version "2.1.0"
484 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
485 | integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=
486 | dependencies:
487 | center-align "^0.1.1"
488 | right-align "^0.1.1"
489 | wordwrap "0.0.2"
490 |
491 | cliui@^7.0.2:
492 | version "7.0.4"
493 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
494 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
495 | dependencies:
496 | string-width "^4.2.0"
497 | strip-ansi "^6.0.0"
498 | wrap-ansi "^7.0.0"
499 |
500 | color-convert@^1.9.0:
501 | version "1.9.3"
502 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
503 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
504 | dependencies:
505 | color-name "1.1.3"
506 |
507 | color-convert@^2.0.1:
508 | version "2.0.1"
509 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
510 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
511 | dependencies:
512 | color-name "~1.1.4"
513 |
514 | color-name@1.1.3:
515 | version "1.1.3"
516 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
517 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
518 |
519 | color-name@~1.1.4:
520 | version "1.1.4"
521 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
522 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
523 |
524 | colorette@^1.3.0:
525 | version "1.3.0"
526 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af"
527 | integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==
528 |
529 | combined-stream@^1.0.8:
530 | version "1.0.8"
531 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
532 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
533 | dependencies:
534 | delayed-stream "~1.0.0"
535 |
536 | commander@^2.19.0, commander@^2.20.0:
537 | version "2.20.3"
538 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
539 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
540 |
541 | commondir@^1.0.1:
542 | version "1.0.1"
543 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
544 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
545 |
546 | concat-map@0.0.1:
547 | version "0.0.1"
548 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
549 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
550 |
551 | constantinople@^3.0.1, constantinople@^3.1.2:
552 | version "3.1.2"
553 | resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-3.1.2.tgz#d45ed724f57d3d10500017a7d3a889c1381ae647"
554 | integrity sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==
555 | dependencies:
556 | "@types/babel-types" "^7.0.0"
557 | "@types/babylon" "^6.16.2"
558 | babel-types "^6.26.0"
559 | babylon "^6.18.0"
560 |
561 | convert-source-map@^1.6.0, convert-source-map@^1.7.0:
562 | version "1.8.0"
563 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
564 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
565 | dependencies:
566 | safe-buffer "~5.1.1"
567 |
568 | core-js@^2.4.0, core-js@^2.6.5:
569 | version "2.6.12"
570 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
571 | integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
572 |
573 | cross-spawn@^7.0.0:
574 | version "7.0.3"
575 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
576 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
577 | dependencies:
578 | path-key "^3.1.0"
579 | shebang-command "^2.0.0"
580 | which "^2.0.1"
581 |
582 | de-indent@^1.0.2:
583 | version "1.0.2"
584 | resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
585 | integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
586 |
587 | debug@^4.1.0:
588 | version "4.3.2"
589 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
590 | integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
591 | dependencies:
592 | ms "2.1.2"
593 |
594 | decamelize@^1.0.0:
595 | version "1.2.0"
596 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
597 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
598 |
599 | delayed-stream@~1.0.0:
600 | version "1.0.0"
601 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
602 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
603 |
604 | diff-match-patch@^1.0.4:
605 | version "1.0.5"
606 | resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37"
607 | integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==
608 |
609 | doctrine@^3.0.0:
610 | version "3.0.0"
611 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
612 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
613 | dependencies:
614 | esutils "^2.0.2"
615 |
616 | doctypes@^1.1.0:
617 | version "1.1.0"
618 | resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9"
619 | integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=
620 |
621 | electron-to-chromium@^1.3.811:
622 | version "1.3.826"
623 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.826.tgz#dbe356b1546b39d83bcd47e675a9c5f61dadaed2"
624 | integrity sha512-bpLc4QU4B8PYmdO4MSu2ZBTMD8lAaEXRS43C09lB31BvYwuk9UxgBRXbY5OJBw7VuMGcg2MZG5FyTaP9u4PQnw==
625 |
626 | emoji-regex@^8.0.0:
627 | version "8.0.0"
628 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
629 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
630 |
631 | escalade@^3.1.1:
632 | version "3.1.1"
633 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
634 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
635 |
636 | escape-string-regexp@^1.0.5:
637 | version "1.0.5"
638 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
639 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
640 |
641 | esprima@~4.0.0:
642 | version "4.0.1"
643 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
644 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
645 |
646 | estree-to-babel@^3.1.0:
647 | version "3.2.1"
648 | resolved "https://registry.yarnpkg.com/estree-to-babel/-/estree-to-babel-3.2.1.tgz#82e78315275c3ca74475fdc8ac1a5103c8a75bf5"
649 | integrity sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==
650 | dependencies:
651 | "@babel/traverse" "^7.1.6"
652 | "@babel/types" "^7.2.0"
653 | c8 "^7.6.0"
654 |
655 | estree-walker@^0.6.1:
656 | version "0.6.1"
657 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
658 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==
659 |
660 | estree-walker@^2.0.1:
661 | version "2.0.2"
662 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
663 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
664 |
665 | esutils@^2.0.2:
666 | version "2.0.3"
667 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
668 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
669 |
670 | find-cache-dir@^3.3.1:
671 | version "3.3.2"
672 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
673 | integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
674 | dependencies:
675 | commondir "^1.0.1"
676 | make-dir "^3.0.2"
677 | pkg-dir "^4.1.0"
678 |
679 | find-up@^4.0.0:
680 | version "4.1.0"
681 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
682 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
683 | dependencies:
684 | locate-path "^5.0.0"
685 | path-exists "^4.0.0"
686 |
687 | find-up@^5.0.0:
688 | version "5.0.0"
689 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
690 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
691 | dependencies:
692 | locate-path "^6.0.0"
693 | path-exists "^4.0.0"
694 |
695 | foreground-child@^2.0.0:
696 | version "2.0.0"
697 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53"
698 | integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==
699 | dependencies:
700 | cross-spawn "^7.0.0"
701 | signal-exit "^3.0.2"
702 |
703 | form-data@^3.0.0:
704 | version "3.0.1"
705 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
706 | integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
707 | dependencies:
708 | asynckit "^0.4.0"
709 | combined-stream "^1.0.8"
710 | mime-types "^2.1.12"
711 |
712 | fs-extra@8.1.0:
713 | version "8.1.0"
714 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
715 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
716 | dependencies:
717 | graceful-fs "^4.2.0"
718 | jsonfile "^4.0.0"
719 | universalify "^0.1.0"
720 |
721 | fs.realpath@^1.0.0:
722 | version "1.0.0"
723 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
724 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
725 |
726 | fsevents@~2.3.2:
727 | version "2.3.2"
728 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
729 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
730 |
731 | function-bind@^1.1.1:
732 | version "1.1.1"
733 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
734 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
735 |
736 | gensync@^1.0.0-beta.2:
737 | version "1.0.0-beta.2"
738 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
739 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
740 |
741 | get-caller-file@^2.0.5:
742 | version "2.0.5"
743 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
744 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
745 |
746 | get-intrinsic@^1.0.2:
747 | version "1.1.1"
748 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
749 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
750 | dependencies:
751 | function-bind "^1.1.1"
752 | has "^1.0.3"
753 | has-symbols "^1.0.1"
754 |
755 | glob@^7.1.3, glob@^7.1.4:
756 | version "7.1.7"
757 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
758 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
759 | dependencies:
760 | fs.realpath "^1.0.0"
761 | inflight "^1.0.4"
762 | inherits "2"
763 | minimatch "^3.0.4"
764 | once "^1.3.0"
765 | path-is-absolute "^1.0.0"
766 |
767 | globals@^11.1.0:
768 | version "11.12.0"
769 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
770 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
771 |
772 | graceful-fs@^4.1.6, graceful-fs@^4.2.0:
773 | version "4.2.8"
774 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
775 | integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
776 |
777 | has-flag@^3.0.0:
778 | version "3.0.0"
779 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
780 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
781 |
782 | has-flag@^4.0.0:
783 | version "4.0.0"
784 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
785 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
786 |
787 | has-symbols@^1.0.1, has-symbols@^1.0.2:
788 | version "1.0.2"
789 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
790 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
791 |
792 | has-tostringtag@^1.0.0:
793 | version "1.0.0"
794 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
795 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
796 | dependencies:
797 | has-symbols "^1.0.2"
798 |
799 | has@^1.0.3:
800 | version "1.0.3"
801 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
802 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
803 | dependencies:
804 | function-bind "^1.1.1"
805 |
806 | hash-sum@^1.0.2:
807 | version "1.0.2"
808 | resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
809 | integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=
810 |
811 | he@^1.1.0:
812 | version "1.2.0"
813 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
814 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
815 |
816 | html-escaper@^2.0.0:
817 | version "2.0.2"
818 | resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
819 | integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
820 |
821 | inflight@^1.0.4:
822 | version "1.0.6"
823 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
824 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
825 | dependencies:
826 | once "^1.3.0"
827 | wrappy "1"
828 |
829 | inherits@2:
830 | version "2.0.4"
831 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
832 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
833 |
834 | is-buffer@^1.1.5:
835 | version "1.1.6"
836 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
837 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
838 |
839 | is-core-module@^2.2.0:
840 | version "2.6.0"
841 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19"
842 | integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==
843 | dependencies:
844 | has "^1.0.3"
845 |
846 | is-expression@^3.0.0:
847 | version "3.0.0"
848 | resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f"
849 | integrity sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=
850 | dependencies:
851 | acorn "~4.0.2"
852 | object-assign "^4.0.1"
853 |
854 | is-fullwidth-code-point@^3.0.0:
855 | version "3.0.0"
856 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
857 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
858 |
859 | is-promise@^2.0.0:
860 | version "2.2.2"
861 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
862 | integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
863 |
864 | is-regex@^1.0.3:
865 | version "1.1.4"
866 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
867 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
868 | dependencies:
869 | call-bind "^1.0.2"
870 | has-tostringtag "^1.0.0"
871 |
872 | isexe@^2.0.0:
873 | version "2.0.0"
874 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
875 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
876 |
877 | istanbul-lib-coverage@^3.0.0:
878 | version "3.0.0"
879 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
880 | integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==
881 |
882 | istanbul-lib-report@^3.0.0:
883 | version "3.0.0"
884 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
885 | integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
886 | dependencies:
887 | istanbul-lib-coverage "^3.0.0"
888 | make-dir "^3.0.0"
889 | supports-color "^7.1.0"
890 |
891 | istanbul-reports@^3.0.2:
892 | version "3.0.2"
893 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b"
894 | integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==
895 | dependencies:
896 | html-escaper "^2.0.0"
897 | istanbul-lib-report "^3.0.0"
898 |
899 | jest-worker@^26.2.1:
900 | version "26.6.2"
901 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
902 | integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
903 | dependencies:
904 | "@types/node" "*"
905 | merge-stream "^2.0.0"
906 | supports-color "^7.0.0"
907 |
908 | js-cleanup@^1.2.0:
909 | version "1.2.0"
910 | resolved "https://registry.yarnpkg.com/js-cleanup/-/js-cleanup-1.2.0.tgz#8dbc65954b1d38b255f1e8cf02cd17b3f7a053f9"
911 | integrity sha512-JeDD0yiiSt80fXzAVa/crrS0JDPQljyBG/RpOtaSbyDq03VHa9szJWMaWOYU/bcTn412uMN2MxApXq8v79cUiQ==
912 | dependencies:
913 | magic-string "^0.25.7"
914 | perf-regexes "^1.0.1"
915 | skip-regex "^1.0.2"
916 |
917 | js-stringify@^1.0.1:
918 | version "1.0.2"
919 | resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db"
920 | integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds=
921 |
922 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
923 | version "4.0.0"
924 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
925 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
926 |
927 | jsesc@^2.5.1:
928 | version "2.5.2"
929 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
930 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
931 |
932 | json5@^2.1.2:
933 | version "2.2.0"
934 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
935 | integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
936 | dependencies:
937 | minimist "^1.2.5"
938 |
939 | jsonfile@^4.0.0:
940 | version "4.0.0"
941 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
942 | integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
943 | optionalDependencies:
944 | graceful-fs "^4.1.6"
945 |
946 | jstransformer@1.0.0:
947 | version "1.0.0"
948 | resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3"
949 | integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=
950 | dependencies:
951 | is-promise "^2.0.0"
952 | promise "^7.0.1"
953 |
954 | kind-of@^3.0.2:
955 | version "3.2.2"
956 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
957 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
958 | dependencies:
959 | is-buffer "^1.1.5"
960 |
961 | lazy-cache@^1.0.3:
962 | version "1.0.4"
963 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
964 | integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
965 |
966 | locate-path@^5.0.0:
967 | version "5.0.0"
968 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
969 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
970 | dependencies:
971 | p-locate "^4.1.0"
972 |
973 | locate-path@^6.0.0:
974 | version "6.0.0"
975 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
976 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
977 | dependencies:
978 | p-locate "^5.0.0"
979 |
980 | lodash.get@^4.4.2:
981 | version "4.4.2"
982 | resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
983 | integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
984 |
985 | lodash.isequal@^4.5.0:
986 | version "4.5.0"
987 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
988 | integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
989 |
990 | lodash@^4.17.4:
991 | version "4.17.21"
992 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
993 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
994 |
995 | longest@^1.0.1:
996 | version "1.0.1"
997 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
998 | integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=
999 |
1000 | loose-envify@^1.4.0:
1001 | version "1.4.0"
1002 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
1003 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1004 | dependencies:
1005 | js-tokens "^3.0.0 || ^4.0.0"
1006 |
1007 | lru-cache@^4.1.5:
1008 | version "4.1.5"
1009 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
1010 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
1011 | dependencies:
1012 | pseudomap "^1.0.2"
1013 | yallist "^2.1.2"
1014 |
1015 | magic-string@^0.25.7:
1016 | version "0.25.7"
1017 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
1018 | integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
1019 | dependencies:
1020 | sourcemap-codec "^1.4.4"
1021 |
1022 | make-dir@^3.0.0, make-dir@^3.0.2:
1023 | version "3.1.0"
1024 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
1025 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
1026 | dependencies:
1027 | semver "^6.0.0"
1028 |
1029 | merge-stream@^2.0.0:
1030 | version "2.0.0"
1031 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
1032 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1033 |
1034 | mime-db@1.49.0:
1035 | version "1.49.0"
1036 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed"
1037 | integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==
1038 |
1039 | mime-types@^2.1.12:
1040 | version "2.1.32"
1041 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5"
1042 | integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==
1043 | dependencies:
1044 | mime-db "1.49.0"
1045 |
1046 | min-indent@^1.0.0:
1047 | version "1.0.1"
1048 | resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
1049 | integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
1050 |
1051 | minimatch@^3.0.2, minimatch@^3.0.4:
1052 | version "3.0.4"
1053 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1054 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1055 | dependencies:
1056 | brace-expansion "^1.1.7"
1057 |
1058 | minimist@^1.2.5:
1059 | version "1.2.5"
1060 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
1061 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1062 |
1063 | ms@2.1.2:
1064 | version "2.1.2"
1065 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1066 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1067 |
1068 | neo-async@^2.6.1:
1069 | version "2.6.2"
1070 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
1071 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
1072 |
1073 | node-dir@^0.1.10:
1074 | version "0.1.17"
1075 | resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5"
1076 | integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=
1077 | dependencies:
1078 | minimatch "^3.0.2"
1079 |
1080 | node-releases@^1.1.75:
1081 | version "1.1.75"
1082 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe"
1083 | integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==
1084 |
1085 | object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
1086 | version "4.1.1"
1087 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1088 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
1089 |
1090 | once@^1.3.0:
1091 | version "1.4.0"
1092 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1093 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1094 | dependencies:
1095 | wrappy "1"
1096 |
1097 | p-limit@^2.2.0:
1098 | version "2.3.0"
1099 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
1100 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
1101 | dependencies:
1102 | p-try "^2.0.0"
1103 |
1104 | p-limit@^3.0.2:
1105 | version "3.1.0"
1106 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
1107 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1108 | dependencies:
1109 | yocto-queue "^0.1.0"
1110 |
1111 | p-locate@^4.1.0:
1112 | version "4.1.0"
1113 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
1114 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
1115 | dependencies:
1116 | p-limit "^2.2.0"
1117 |
1118 | p-locate@^5.0.0:
1119 | version "5.0.0"
1120 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
1121 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
1122 | dependencies:
1123 | p-limit "^3.0.2"
1124 |
1125 | p-try@^2.0.0:
1126 | version "2.2.0"
1127 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1128 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
1129 |
1130 | path-exists@^4.0.0:
1131 | version "4.0.0"
1132 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1133 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1134 |
1135 | path-is-absolute@^1.0.0:
1136 | version "1.0.1"
1137 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1138 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1139 |
1140 | path-key@^3.1.0:
1141 | version "3.1.1"
1142 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1143 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1144 |
1145 | path-parse@^1.0.6:
1146 | version "1.0.7"
1147 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1148 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1149 |
1150 | perf-regexes@^1.0.1:
1151 | version "1.0.1"
1152 | resolved "https://registry.yarnpkg.com/perf-regexes/-/perf-regexes-1.0.1.tgz#6da1d62f5a94bf9353a0451bccacf69068b75d0b"
1153 | integrity sha512-L7MXxUDtqr4PUaLFCDCXBfGV/6KLIuSEccizDI7JxT+c9x1G1v04BQ4+4oag84SHaCdrBgQAIs/Cqn+flwFPng==
1154 |
1155 | picomatch@^2.2.2:
1156 | version "2.3.0"
1157 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
1158 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
1159 |
1160 | pkg-dir@^4.1.0:
1161 | version "4.2.0"
1162 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
1163 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
1164 | dependencies:
1165 | find-up "^4.0.0"
1166 |
1167 | private@^0.1.8:
1168 | version "0.1.8"
1169 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
1170 | integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
1171 |
1172 | promise@^7.0.1:
1173 | version "7.3.1"
1174 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
1175 | integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
1176 | dependencies:
1177 | asap "~2.0.3"
1178 |
1179 | prop-types@^15.7.2:
1180 | version "15.7.2"
1181 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
1182 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
1183 | dependencies:
1184 | loose-envify "^1.4.0"
1185 | object-assign "^4.1.1"
1186 | react-is "^16.8.1"
1187 |
1188 | pseudomap@^1.0.2:
1189 | version "1.0.2"
1190 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
1191 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
1192 |
1193 | pug-attrs@^2.0.4:
1194 | version "2.0.4"
1195 | resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-2.0.4.tgz#b2f44c439e4eb4ad5d4ef25cac20d18ad28cc336"
1196 | integrity sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==
1197 | dependencies:
1198 | constantinople "^3.0.1"
1199 | js-stringify "^1.0.1"
1200 | pug-runtime "^2.0.5"
1201 |
1202 | pug-code-gen@^2.0.2:
1203 | version "2.0.3"
1204 | resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-2.0.3.tgz#122eb9ada9b5bf601705fe15aaa0a7d26bc134ab"
1205 | integrity sha512-r9sezXdDuZJfW9J91TN/2LFbiqDhmltTFmGpHTsGdrNGp3p4SxAjjXEfnuK2e4ywYsRIVP0NeLbSAMHUcaX1EA==
1206 | dependencies:
1207 | constantinople "^3.1.2"
1208 | doctypes "^1.1.0"
1209 | js-stringify "^1.0.1"
1210 | pug-attrs "^2.0.4"
1211 | pug-error "^1.3.3"
1212 | pug-runtime "^2.0.5"
1213 | void-elements "^2.0.1"
1214 | with "^5.0.0"
1215 |
1216 | pug-error@^1.3.3:
1217 | version "1.3.3"
1218 | resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-1.3.3.tgz#f342fb008752d58034c185de03602dd9ffe15fa6"
1219 | integrity sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==
1220 |
1221 | pug-filters@^3.1.1:
1222 | version "3.1.1"
1223 | resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-3.1.1.tgz#ab2cc82db9eeccf578bda89130e252a0db026aa7"
1224 | integrity sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==
1225 | dependencies:
1226 | clean-css "^4.1.11"
1227 | constantinople "^3.0.1"
1228 | jstransformer "1.0.0"
1229 | pug-error "^1.3.3"
1230 | pug-walk "^1.1.8"
1231 | resolve "^1.1.6"
1232 | uglify-js "^2.6.1"
1233 |
1234 | pug-lexer@^4.1.0:
1235 | version "4.1.0"
1236 | resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-4.1.0.tgz#531cde48c7c0b1fcbbc2b85485c8665e31489cfd"
1237 | integrity sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==
1238 | dependencies:
1239 | character-parser "^2.1.1"
1240 | is-expression "^3.0.0"
1241 | pug-error "^1.3.3"
1242 |
1243 | pug-linker@^3.0.6:
1244 | version "3.0.6"
1245 | resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-3.0.6.tgz#f5bf218b0efd65ce6670f7afc51658d0f82989fb"
1246 | integrity sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==
1247 | dependencies:
1248 | pug-error "^1.3.3"
1249 | pug-walk "^1.1.8"
1250 |
1251 | pug-load@^2.0.12:
1252 | version "2.0.12"
1253 | resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.12.tgz#d38c85eb85f6e2f704dea14dcca94144d35d3e7b"
1254 | integrity sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==
1255 | dependencies:
1256 | object-assign "^4.1.0"
1257 | pug-walk "^1.1.8"
1258 |
1259 | pug-parser@^5.0.1:
1260 | version "5.0.1"
1261 | resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-5.0.1.tgz#03e7ada48b6840bd3822f867d7d90f842d0ffdc9"
1262 | integrity sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==
1263 | dependencies:
1264 | pug-error "^1.3.3"
1265 | token-stream "0.0.1"
1266 |
1267 | pug-runtime@^2.0.5:
1268 | version "2.0.5"
1269 | resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-2.0.5.tgz#6da7976c36bf22f68e733c359240d8ae7a32953a"
1270 | integrity sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==
1271 |
1272 | pug-strip-comments@^1.0.4:
1273 | version "1.0.4"
1274 | resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz#cc1b6de1f6e8f5931cf02ec66cdffd3f50eaf8a8"
1275 | integrity sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==
1276 | dependencies:
1277 | pug-error "^1.3.3"
1278 |
1279 | pug-walk@^1.1.8:
1280 | version "1.1.8"
1281 | resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.8.tgz#b408f67f27912f8c21da2f45b7230c4bd2a5ea7a"
1282 | integrity sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==
1283 |
1284 | pug@^2.0.3:
1285 | version "2.0.4"
1286 | resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.4.tgz#ee7682ec0a60494b38d48a88f05f3b0ac931377d"
1287 | integrity sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==
1288 | dependencies:
1289 | pug-code-gen "^2.0.2"
1290 | pug-filters "^3.1.1"
1291 | pug-lexer "^4.1.0"
1292 | pug-linker "^3.0.6"
1293 | pug-load "^2.0.12"
1294 | pug-parser "^5.0.1"
1295 | pug-runtime "^2.0.5"
1296 | pug-strip-comments "^1.0.4"
1297 |
1298 | randombytes@^2.1.0:
1299 | version "2.1.0"
1300 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
1301 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
1302 | dependencies:
1303 | safe-buffer "^5.1.0"
1304 |
1305 | react-ace@^6.5.0:
1306 | version "6.6.0"
1307 | resolved "https://registry.yarnpkg.com/react-ace/-/react-ace-6.6.0.tgz#a79457ef03c3b1f8d4fc598a003b1d6ad464f1a0"
1308 | integrity sha512-Jehhp8bxa8kqiXk07Jzy+uD5qZMBwo43O+raniGHjdX7Qk93xFkKaAz8LxtUVZPJGlRnV5ODMNj0qHwDSN+PBw==
1309 | dependencies:
1310 | "@babel/polyfill" "^7.4.4"
1311 | brace "^0.11.1"
1312 | diff-match-patch "^1.0.4"
1313 | lodash.get "^4.4.2"
1314 | lodash.isequal "^4.5.0"
1315 | prop-types "^15.7.2"
1316 |
1317 | react-docgen@^5.3.0:
1318 | version "5.4.0"
1319 | resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-5.4.0.tgz#2cd7236720ec2769252ef0421f23250b39a153a1"
1320 | integrity sha512-JBjVQ9cahmNlfjMGxWUxJg919xBBKAoy3hgDgKERbR+BcF4ANpDuzWAScC7j27hZfd8sJNmMPOLWo9+vB/XJEQ==
1321 | dependencies:
1322 | "@babel/core" "^7.7.5"
1323 | "@babel/generator" "^7.12.11"
1324 | "@babel/runtime" "^7.7.6"
1325 | ast-types "^0.14.2"
1326 | commander "^2.19.0"
1327 | doctrine "^3.0.0"
1328 | estree-to-babel "^3.1.0"
1329 | neo-async "^2.6.1"
1330 | node-dir "^0.1.10"
1331 | strip-indent "^3.0.0"
1332 |
1333 | react-frame-component@^4.1.1:
1334 | version "4.1.3"
1335 | resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-4.1.3.tgz#64c09dd29574720879c5f43ee36c17d8ae74d4ec"
1336 | integrity sha512-4PurhctiqnmC1F5prPZ+LdsalH7pZ3SFA5xoc0HBe8mSHctdLLt4Cr2WXfXOoajHBYq/yiipp9zOgx+vy8GiEA==
1337 |
1338 | react-is@^16.8.1:
1339 | version "16.13.1"
1340 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
1341 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
1342 |
1343 | recast@^0.17.3:
1344 | version "0.17.6"
1345 | resolved "https://registry.yarnpkg.com/recast/-/recast-0.17.6.tgz#64ae98d0d2dfb10ff92ff5fb9ffb7371823b69fa"
1346 | integrity sha512-yoQRMRrK1lszNtbkGyM4kN45AwylV5hMiuEveUBlxytUViWevjvX6w+tzJt1LH4cfUhWt4NZvy3ThIhu6+m5wQ==
1347 | dependencies:
1348 | ast-types "0.12.4"
1349 | esprima "~4.0.0"
1350 | private "^0.1.8"
1351 | source-map "~0.6.1"
1352 |
1353 | regenerator-runtime@^0.11.0:
1354 | version "0.11.1"
1355 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
1356 | integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
1357 |
1358 | regenerator-runtime@^0.13.4:
1359 | version "0.13.9"
1360 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
1361 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
1362 |
1363 | repeat-string@^1.5.2:
1364 | version "1.6.1"
1365 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
1366 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
1367 |
1368 | require-directory@^2.1.1:
1369 | version "2.1.1"
1370 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
1371 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
1372 |
1373 | resolve@1.20.0, resolve@^1.1.6:
1374 | version "1.20.0"
1375 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
1376 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
1377 | dependencies:
1378 | is-core-module "^2.2.0"
1379 | path-parse "^1.0.6"
1380 |
1381 | right-align@^0.1.1:
1382 | version "0.1.3"
1383 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
1384 | integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8=
1385 | dependencies:
1386 | align-text "^0.1.1"
1387 |
1388 | rimraf@^3.0.0:
1389 | version "3.0.2"
1390 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
1391 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1392 | dependencies:
1393 | glob "^7.1.3"
1394 |
1395 | rollup-plugin-cleanup@^3.2.1:
1396 | version "3.2.1"
1397 | resolved "https://registry.yarnpkg.com/rollup-plugin-cleanup/-/rollup-plugin-cleanup-3.2.1.tgz#8cbc92ecf58babd7c210051929797f137bbf777c"
1398 | integrity sha512-zuv8EhoO3TpnrU8MX8W7YxSbO4gmOR0ny06Lm3nkFfq0IVKdBUtHwhVzY1OAJyNCIAdLiyPnOrU0KnO0Fri1GQ==
1399 | dependencies:
1400 | js-cleanup "^1.2.0"
1401 | rollup-pluginutils "^2.8.2"
1402 |
1403 | rollup-plugin-dts@^3.0.2:
1404 | version "3.0.2"
1405 | resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-3.0.2.tgz#2b628d88f864d271d6eaec2e4c2a60ae4e944c5c"
1406 | integrity sha512-hswlsdWu/x7k5pXzaLP6OvKRKcx8Bzprksz9i9mUe72zvt8LvqAb/AZpzs6FkLgmyRaN8B6rUQOVtzA3yEt9Yw==
1407 | dependencies:
1408 | magic-string "^0.25.7"
1409 | optionalDependencies:
1410 | "@babel/code-frame" "^7.12.13"
1411 |
1412 | rollup-plugin-terser@^7.0.2:
1413 | version "7.0.2"
1414 | resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d"
1415 | integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
1416 | dependencies:
1417 | "@babel/code-frame" "^7.10.4"
1418 | jest-worker "^26.2.1"
1419 | serialize-javascript "^4.0.0"
1420 | terser "^5.0.0"
1421 |
1422 | rollup-plugin-typescript2@^0.30.0:
1423 | version "0.30.0"
1424 | resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz#1cc99ac2309bf4b9d0a3ebdbc2002aecd56083d3"
1425 | integrity sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ==
1426 | dependencies:
1427 | "@rollup/pluginutils" "^4.1.0"
1428 | find-cache-dir "^3.3.1"
1429 | fs-extra "8.1.0"
1430 | resolve "1.20.0"
1431 | tslib "2.1.0"
1432 |
1433 | rollup-pluginutils@^2.8.2:
1434 | version "2.8.2"
1435 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
1436 | integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
1437 | dependencies:
1438 | estree-walker "^0.6.1"
1439 |
1440 | rollup@^2.46.0:
1441 | version "2.56.3"
1442 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.3.tgz#b63edadd9851b0d618a6d0e6af8201955a77aeff"
1443 | integrity sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==
1444 | optionalDependencies:
1445 | fsevents "~2.3.2"
1446 |
1447 | safe-buffer@^5.1.0:
1448 | version "5.2.1"
1449 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1450 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1451 |
1452 | safe-buffer@~5.1.1:
1453 | version "5.1.2"
1454 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1455 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1456 |
1457 | semver@^6.0.0, semver@^6.3.0:
1458 | version "6.3.0"
1459 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1460 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1461 |
1462 | serialize-javascript@^4.0.0:
1463 | version "4.0.0"
1464 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
1465 | integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
1466 | dependencies:
1467 | randombytes "^2.1.0"
1468 |
1469 | shebang-command@^2.0.0:
1470 | version "2.0.0"
1471 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1472 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1473 | dependencies:
1474 | shebang-regex "^3.0.0"
1475 |
1476 | shebang-regex@^3.0.0:
1477 | version "3.0.0"
1478 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1479 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1480 |
1481 | signal-exit@^3.0.2:
1482 | version "3.0.3"
1483 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
1484 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
1485 |
1486 | skip-regex@^1.0.2:
1487 | version "1.0.2"
1488 | resolved "https://registry.yarnpkg.com/skip-regex/-/skip-regex-1.0.2.tgz#ac655d77e7c771ac2b9f37585fea37bff56ad65b"
1489 | integrity sha512-pEjMUbwJ5Pl/6Vn6FsamXHXItJXSRftcibixDmNCWbWhic0hzHrwkMZo0IZ7fMRH9KxcWDFSkzhccB4285PutA==
1490 |
1491 | source-map-support@~0.5.19:
1492 | version "0.5.19"
1493 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
1494 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
1495 | dependencies:
1496 | buffer-from "^1.0.0"
1497 | source-map "^0.6.0"
1498 |
1499 | source-map@^0.5.0, source-map@~0.5.1:
1500 | version "0.5.7"
1501 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1502 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1503 |
1504 | source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1:
1505 | version "0.6.1"
1506 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1507 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1508 |
1509 | source-map@^0.7.3, source-map@~0.7.2:
1510 | version "0.7.3"
1511 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
1512 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
1513 |
1514 | sourcemap-codec@^1.4.4:
1515 | version "1.4.8"
1516 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
1517 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
1518 |
1519 | string-width@^4.1.0, string-width@^4.2.0:
1520 | version "4.2.2"
1521 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
1522 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
1523 | dependencies:
1524 | emoji-regex "^8.0.0"
1525 | is-fullwidth-code-point "^3.0.0"
1526 | strip-ansi "^6.0.0"
1527 |
1528 | strip-ansi@^6.0.0:
1529 | version "6.0.0"
1530 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
1531 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
1532 | dependencies:
1533 | ansi-regex "^5.0.0"
1534 |
1535 | strip-indent@^3.0.0:
1536 | version "3.0.0"
1537 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
1538 | integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
1539 | dependencies:
1540 | min-indent "^1.0.0"
1541 |
1542 | supports-color@^5.3.0:
1543 | version "5.5.0"
1544 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1545 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1546 | dependencies:
1547 | has-flag "^3.0.0"
1548 |
1549 | supports-color@^7.0.0, supports-color@^7.1.0:
1550 | version "7.2.0"
1551 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1552 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1553 | dependencies:
1554 | has-flag "^4.0.0"
1555 |
1556 | terser@^5.0.0:
1557 | version "5.7.2"
1558 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.2.tgz#d4d95ed4f8bf735cb933e802f2a1829abf545e3f"
1559 | integrity sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==
1560 | dependencies:
1561 | commander "^2.20.0"
1562 | source-map "~0.7.2"
1563 | source-map-support "~0.5.19"
1564 |
1565 | test-exclude@^6.0.0:
1566 | version "6.0.0"
1567 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
1568 | integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
1569 | dependencies:
1570 | "@istanbuljs/schema" "^0.1.2"
1571 | glob "^7.1.4"
1572 | minimatch "^3.0.4"
1573 |
1574 | three@^0.132.2:
1575 | version "0.132.2"
1576 | resolved "https://registry.yarnpkg.com/three/-/three-0.132.2.tgz#95eb1856147237c03e887cbbe56f964b6fb40b5e"
1577 | integrity sha512-0wcR7LxxkXMn6Gi58gEs3QvY8WpTVXA31L2VOvpjm4ZPYFRHCZC13UqynheFoS5OXDYgtBneN0dhbaNBE8iLhQ==
1578 |
1579 | to-fast-properties@^1.0.3:
1580 | version "1.0.3"
1581 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
1582 | integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
1583 |
1584 | to-fast-properties@^2.0.0:
1585 | version "2.0.0"
1586 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1587 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1588 |
1589 | token-stream@0.0.1:
1590 | version "0.0.1"
1591 | resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a"
1592 | integrity sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=
1593 |
1594 | ts-map@^1.0.3:
1595 | version "1.0.3"
1596 | resolved "https://registry.yarnpkg.com/ts-map/-/ts-map-1.0.3.tgz#1c4d218dec813d2103b7e04e4bcf348e1471c1ff"
1597 | integrity sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w==
1598 |
1599 | tslib@2.1.0:
1600 | version "2.1.0"
1601 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
1602 | integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
1603 |
1604 | tslib@^2.0.1, tslib@^2.2.0:
1605 | version "2.3.1"
1606 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
1607 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
1608 |
1609 | typescript@^3.2.2, typescript@^3.7.5:
1610 | version "3.9.10"
1611 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8"
1612 | integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==
1613 |
1614 | typescript@^4.2.4:
1615 | version "4.4.2"
1616 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86"
1617 | integrity sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==
1618 |
1619 | uglify-js@^2.6.1:
1620 | version "2.8.29"
1621 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
1622 | integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0=
1623 | dependencies:
1624 | source-map "~0.5.1"
1625 | yargs "~3.10.0"
1626 | optionalDependencies:
1627 | uglify-to-browserify "~1.0.0"
1628 |
1629 | uglify-to-browserify@~1.0.0:
1630 | version "1.0.2"
1631 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
1632 | integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc=
1633 |
1634 | underscore@^1.9.1:
1635 | version "1.13.1"
1636 | resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1"
1637 | integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==
1638 |
1639 | universalify@^0.1.0:
1640 | version "0.1.2"
1641 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
1642 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
1643 |
1644 | v8-to-istanbul@^8.0.0:
1645 | version "8.0.0"
1646 | resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c"
1647 | integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==
1648 | dependencies:
1649 | "@types/istanbul-lib-coverage" "^2.0.1"
1650 | convert-source-map "^1.6.0"
1651 | source-map "^0.7.3"
1652 |
1653 | void-elements@^2.0.1:
1654 | version "2.0.1"
1655 | resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
1656 | integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=
1657 |
1658 | vue-docgen-api@^3.22.0:
1659 | version "3.26.0"
1660 | resolved "https://registry.yarnpkg.com/vue-docgen-api/-/vue-docgen-api-3.26.0.tgz#2afc6a39e72862fbbc60ceb8510c681749f05460"
1661 | integrity sha512-ujdg4i5ZI/wE46RZQMFzKnDGyhEuPCu+fMA86CAd9EIek/6+OqraSVBm5ZkLrbEd5f8xxdnqMU4yiSGHHeao/Q==
1662 | dependencies:
1663 | "@babel/parser" "^7.2.3"
1664 | "@babel/types" "^7.0.0"
1665 | ast-types "^0.12.2"
1666 | hash-sum "^1.0.2"
1667 | lru-cache "^4.1.5"
1668 | pug "^2.0.3"
1669 | recast "^0.17.3"
1670 | ts-map "^1.0.3"
1671 | typescript "^3.2.2"
1672 | vue-template-compiler "^2.0.0"
1673 |
1674 | vue-template-compiler@^2.0.0:
1675 | version "2.6.14"
1676 | resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763"
1677 | integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==
1678 | dependencies:
1679 | de-indent "^1.0.2"
1680 | he "^1.1.0"
1681 |
1682 | vue2-ace-editor@^0.0.13:
1683 | version "0.0.13"
1684 | resolved "https://registry.yarnpkg.com/vue2-ace-editor/-/vue2-ace-editor-0.0.13.tgz#5528998ce2c13e8ed3a294f714298199fd107dc2"
1685 | integrity sha512-uQICyvJzYNix16xeYjNAINuNUQhPbqMR7UQsJeI+ycpEd2otsiNNU73jcZqHkpjuz0uaHDHnrpzQuI/RApsKXA==
1686 | dependencies:
1687 | brace "^0.11.0"
1688 |
1689 | which@^2.0.1:
1690 | version "2.0.2"
1691 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1692 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1693 | dependencies:
1694 | isexe "^2.0.0"
1695 |
1696 | window-size@0.1.0:
1697 | version "0.1.0"
1698 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
1699 | integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=
1700 |
1701 | with@^5.0.0:
1702 | version "5.1.1"
1703 | resolved "https://registry.yarnpkg.com/with/-/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe"
1704 | integrity sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=
1705 | dependencies:
1706 | acorn "^3.1.0"
1707 | acorn-globals "^3.0.0"
1708 |
1709 | wordwrap@0.0.2:
1710 | version "0.0.2"
1711 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
1712 | integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=
1713 |
1714 | wrap-ansi@^7.0.0:
1715 | version "7.0.0"
1716 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
1717 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1718 | dependencies:
1719 | ansi-styles "^4.0.0"
1720 | string-width "^4.1.0"
1721 | strip-ansi "^6.0.0"
1722 |
1723 | wrappy@1:
1724 | version "1.0.2"
1725 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1726 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1727 |
1728 | y18n@^5.0.5:
1729 | version "5.0.8"
1730 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
1731 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
1732 |
1733 | yallist@^2.1.2:
1734 | version "2.1.2"
1735 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
1736 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
1737 |
1738 | yargs-parser@^20.2.2, yargs-parser@^20.2.7:
1739 | version "20.2.9"
1740 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
1741 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
1742 |
1743 | yargs@^16.2.0:
1744 | version "16.2.0"
1745 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
1746 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
1747 | dependencies:
1748 | cliui "^7.0.2"
1749 | escalade "^3.1.1"
1750 | get-caller-file "^2.0.5"
1751 | require-directory "^2.1.1"
1752 | string-width "^4.2.0"
1753 | y18n "^5.0.5"
1754 | yargs-parser "^20.2.2"
1755 |
1756 | yargs@~3.10.0:
1757 | version "3.10.0"
1758 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
1759 | integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=
1760 | dependencies:
1761 | camelcase "^1.0.2"
1762 | cliui "^2.1.0"
1763 | decamelize "^1.0.0"
1764 | window-size "0.1.0"
1765 |
1766 | yocto-queue@^0.1.0:
1767 | version "0.1.0"
1768 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
1769 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
1770 |
--------------------------------------------------------------------------------