├── .gitignore
├── .prettierrc.json
├── Makefile
├── README.md
├── package.json
├── src
├── dom_tags.mjs
├── helpers.mjs
└── index.mjs
├── tests
├── fixtures
│ ├── anonymous_expored_default
│ │ ├── expected.js
│ │ └── input.js
│ ├── basic_example
│ │ ├── expected.js
│ │ └── input.js
│ ├── exported_default_arrow_function
│ │ ├── expected.js
│ │ └── input.js
│ ├── inline_identifiers
│ │ ├── expected.js
│ │ └── input.js
│ └── jsx_example
│ │ ├── expected.js
│ │ └── input.js
├── smoketests
│ ├── README.md
│ ├── composerize.js
│ ├── flow_example.js
│ └── plaid.js
└── test.mjs
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "all",
3 | "tabWidth": 4,
4 | "singleQuote": true,
5 | "printWidth": 120
6 | }
7 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | test:
2 | node tests/test.mjs
3 |
4 | prettier: node_modules
5 | yarn prettier src tests --write
6 |
7 | node_modules:
8 | yarn
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 🌳🥤 tiny-treeshaker
2 |
3 | A really ~bad~ tiny tree shaker (experimental)
4 |
5 | ### Why?
6 |
7 | This is a bare-bones tree shaking codemod that can be adapted for targeting specific use cases.
8 |
9 | (I made this cos i'm writing a seperate codemod for a migration I'm working on. The migration removes callsites to a bunch of random helper functions - which now eslint complains about, and I need to remove. Hence this tree shaking codemod.)
10 |
11 | Existing solutions are very fancy pants and try and target everything and require complex setups. I want to only target a known set
12 | of things to tree shake away. (allowlist vs denylist).
13 |
14 | The goal of this is to be:
15 | - small as possible (while still being "correct". This won't shake away things you use, but may not shake away everything you don't use.)
16 | - simple to understand / extend / chop and change as needed
17 |
18 | ### Usage
19 |
20 | - Clone this repo
21 | - [Install jscodeshift](https://github.com/facebook/jscodeshift)
22 | - Run with the CLI (e.g. `jscodeshift --transform /path/to/tiny-treeshaker/src/index.mjs ...`)
23 |
24 | ### Work in progress
25 |
26 | This doesn't shake _everything_ away just yet (sorry!), but gets most of the common cases (i.e. enough to be used when targeting a specific thing)
27 |
28 | ### What you should probably use instead
29 |
30 | - https://github.com/coderaiser/putout
31 | - https://github.com/smeijer/unimported
32 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tiny-treeshaker",
3 | "version": "1.0.1",
4 | "main": "src/index.mjs",
5 | "license": "MIT",
6 | "scripts": {
7 | "test": "node tests/test.mjs"
8 | },
9 | "type": "module",
10 | "devDependencies": {
11 | "chalk": "^4.1.1",
12 | "execa": "^5.1.1",
13 | "jscodeshift": "^0.12.0",
14 | "prettier": "^2.3.2"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/dom_tags.mjs:
--------------------------------------------------------------------------------
1 | /**
2 | * Valid DOM tags that can be used as variable references
3 | *
4 | * Generated by going to:
5 | *
6 | * https://eastmanreference.com/complete-list-of-html-tags
7 | *
8 | * And in devtools, running:
9 | *
10 | * copy([...document.querySelectorAll('p strong')].map(el => el.innerText).map(tag => tag.replace(/[<>]/g, '')))
11 | */
12 |
13 | export default [
14 | 'a',
15 | 'abbr',
16 | 'address',
17 | 'area',
18 | 'article',
19 | 'aside',
20 | 'audio',
21 | 'b',
22 | 'base',
23 | 'bdi',
24 | 'bdo',
25 | 'blockquote',
26 | 'body',
27 | 'br',
28 | 'button',
29 | 'canvas',
30 | 'caption',
31 | 'cite',
32 | 'code',
33 | 'col',
34 | 'colgroup',
35 | 'data',
36 | 'datalist',
37 | 'dd',
38 | 'del',
39 | 'details',
40 | 'dfn',
41 | 'dialog',
42 | 'div',
43 | 'dl',
44 | 'dt',
45 | 'em',
46 | 'embed',
47 | 'fieldset',
48 | 'figure',
49 | 'footer',
50 | 'form',
51 | 'h1',
52 | 'h2',
53 | 'h3',
54 | 'h4',
55 | 'h5',
56 | 'h6',
57 | 'head',
58 | 'header',
59 | 'hgroup',
60 | 'hr',
61 | 'html',
62 | 'i',
63 | 'iframe',
64 | 'img',
65 | 'input',
66 | 'ins',
67 | 'kbd',
68 | 'keygen',
69 | 'label',
70 | 'legend',
71 | 'li',
72 | 'link',
73 | 'main',
74 | 'map',
75 | 'mark',
76 | 'menu',
77 | 'menuitem',
78 | 'meta',
79 | 'meter',
80 | 'nav',
81 | 'noscript',
82 | 'object',
83 | 'ol',
84 | 'optgroup',
85 | 'option',
86 | 'output',
87 | 'p',
88 | 'param',
89 | 'pre',
90 | 'progress',
91 | 'q',
92 | 'rb',
93 | 'rp',
94 | 'rt',
95 | 'rtc',
96 | 'ruby',
97 | 's',
98 | 'samp',
99 | 'script',
100 | 'section',
101 | 'select',
102 | 'small',
103 | 'source',
104 | 'span',
105 | 'strong',
106 | 'style',
107 | 'sub',
108 | 'summary',
109 | 'sup',
110 | 'table',
111 | 'tbody',
112 | 'td',
113 | 'template',
114 | 'textarea',
115 | 'tfoot',
116 | 'th',
117 | 'thead',
118 | 'time',
119 | 'title',
120 | 'tr',
121 | 'track',
122 | 'u',
123 | 'ul',
124 | 'var',
125 | 'video',
126 | 'wbr',
127 | ];
128 |
--------------------------------------------------------------------------------
/src/helpers.mjs:
--------------------------------------------------------------------------------
1 | import Collection from 'jscodeshift/src/Collection';
2 |
3 | // Nodes types where identifiers could be defined or imported (that we may want to remove)
4 | const ORIGINS = ['ImportSpecifier', 'VariableDeclarator', 'FunctionDeclaration', 'ImportDefaultSpecifier'];
5 |
6 | export const isTopLevel = (path) => path.parent.value.type === 'Program';
7 |
8 | /**
9 | * Inspired by getVariableDeclarator
10 | * @see https://github.com/facebook/jscodeshift/blob/57a9d9c73/src/collections/Node.js#L103
11 | *
12 | * Given an identifier name, look up where in scope it could be imported from
13 | */
14 | export function getReferenceFromScope(j, path, identifier) {
15 | let scope = path.scope;
16 | if (!scope) return;
17 |
18 | // https://github.com/benjamn/ast-types/blob/53123a2be5e0/lib/scope.ts#L374
19 | scope = scope.lookup(identifier);
20 | if (!scope) return;
21 |
22 | const bindings = scope.getBindings()[identifier];
23 | if (!bindings) return;
24 |
25 | const decl = Collection.fromPaths(bindings);
26 |
27 | for (const origin of ORIGINS) {
28 | if (decl.closest(j[origin]).length === 1) {
29 | return decl.closest(j[origin]).get();
30 | }
31 | }
32 | }
33 |
34 | // useful for debugging ast objects
35 | export function pprint(pathOrNode) {
36 | let node;
37 |
38 | if (pathOrNode.value) {
39 | node = pathOrNode.value;
40 | } else {
41 | node = pathOrNode;
42 | }
43 |
44 | let name;
45 |
46 | if (node.id) {
47 | name = node.id.name;
48 | }
49 |
50 | return {
51 | type: node.type,
52 | name,
53 | };
54 | }
55 |
--------------------------------------------------------------------------------
/src/index.mjs:
--------------------------------------------------------------------------------
1 | import { getReferenceFromScope, isTopLevel } from './helpers';
2 |
3 | import DOM_TAGS from './dom_tags';
4 |
5 | export default function transformer(file, api) {
6 | const j = api.jscodeshift;
7 | const root = j(file.source);
8 |
9 | /**
10 | * Get a "thing" defined at the top level.
11 | * Could be a function, variable, object, class etc.
12 | * @return NodePath?
13 | */
14 | function getTopLevelThing(identifierName) {
15 | const variables = root
16 | .find(j.VariableDeclarator, {
17 | id: { name: identifierName },
18 | })
19 | .filter((path) => {
20 | // check this a top level variable
21 | const declaration = j(path).closest(j.VariableDeclaration).get();
22 | return declaration.parent.value.type === 'Program';
23 | });
24 |
25 | // TODO: warn if length >= 2?
26 | // It would/should be invalid for a program to have two top level things of the same name
27 | if (variables.length === 1) {
28 | // .get() returns the first item
29 | // @see https://github.com/facebook/jscodeshift/blob/57a9d9c/src/Collection.js#L210
30 | return variables.get();
31 | }
32 |
33 | const functions = root
34 | .find(j.FunctionDeclaration, {
35 | id: { name: identifierName },
36 | })
37 | .filter(isTopLevel);
38 |
39 | if (functions.length === 1) {
40 | return functions.get();
41 | }
42 | }
43 |
44 | // Store all "things" (Functions, Classes, Objects, Variables etc) that are exported.
45 | // (If something is exported, that means we consider it as "used").
46 | // Anything referenced inside an exported thing will _not_ be shaken away.
47 | const liveNodePaths = new Set();
48 |
49 | // TODO: maybe this is gross?
50 | // We need to maintain the node paths (in liveNodePaths), in order for
51 | // getReferenceFromScope to work.
52 | // But we also need liveNodes cos paths can change, so
53 | // Maybe maintaining two sets is ok, but also maybe there's a better way.
54 | const liveNodes = new Set();
55 |
56 | /**
57 | * Find all functions that are exported inline
58 | * e.g. `export function foo () { ... }`
59 | */
60 | root.find(j.ExportNamedDeclaration, {
61 | declaration: { type: 'FunctionDeclaration', id: { type: 'Identifier' } },
62 | }).forEach((path) => {
63 | liveNodePaths.add(j(path).find(j.FunctionDeclaration).get());
64 | liveNodes.add(j(path).find(j.FunctionDeclaration).get().value);
65 | });
66 |
67 | /**
68 | * Find all things that are exported with export specifiers
69 | * e.g. `const foo = 'bar'; export { foo };`
70 | */
71 | root.find(j.ExportNamedDeclaration, {
72 | declaration: null,
73 | specifiers: [{ type: 'ExportSpecifier' }],
74 | }).forEach((path) => {
75 | path.value.specifiers.forEach((exportSpecifier) => {
76 | const name = exportSpecifier.local.name;
77 | const thing = getTopLevelThing(name);
78 | if (!thing) {
79 | throw new Error(`Could not find exported thing: ${name}`);
80 | }
81 | liveNodePaths.add(thing);
82 | liveNodes.add(thing.value);
83 | });
84 | });
85 |
86 | /**
87 | * Find default exported thing
88 | * e.g. `const foo = () => 'bar'; export default foo;`
89 | */
90 | root.find(j.ExportDefaultDeclaration).forEach((path) => {
91 | const name = path.value.declaration.name;
92 | const thing = getTopLevelThing(name);
93 | if (!thing) {
94 | throw new Error(`Could not find exported thing: ${name}`);
95 | }
96 | liveNodePaths.add(thing);
97 | liveNodes.add(thing.value);
98 | });
99 |
100 | /**
101 | * Recursively add every "live" identifier, starting with the top level
102 | * exported functions.
103 | *
104 | * For every live node path (initially set to all exported functions and
105 | * variables etc), find all pointers to other variables/functions etc and
106 | * add them to liveNodePaths.
107 | *
108 | * Repeat until liveNodePaths is stable.
109 | */
110 | function addLiveNodePaths() {
111 | const initialLiveNodePathsSize = liveNodePaths.size;
112 |
113 | [...liveNodePaths].forEach((subRoot) => {
114 | j(subRoot)
115 | .find(j.Identifier)
116 | .filter((path) => {
117 | /**
118 | * We only want to look up identifiers that are being used to reference other variables in a higher sope.
119 | * (For now) allowlist allowed pointer types.
120 | *
121 | * e.g.
122 | * - in `console.log(foo)` we want to look up `foo`
123 | * - in `const foo = bar` we want to look up `bar`
124 | * - in `const foo = { bar: baz }` we want to look up `baz`
125 | *
126 | * be careful though! not every Identifier is a reference to a variable:
127 | * - in `console.log(foo)` we do NOT want to look up `log`
128 | * - in `const foo = 'bar'` we do NOT want to look up `foo`
129 | * - in `const foo = { bar: baz }` we do NOT want to look up `bar`
130 | */
131 | if (!path.parentPath.value.type) return true;
132 | if (path.parentPath.value.type === 'ReturnStatement') return true;
133 | if (path.parentPath.value.type === 'CallExpression') return true;
134 | if (path.parentPath.value.type === 'JSXOpeningElement') return true;
135 | })
136 | .forEach((path) => {
137 | const name = path.value.name;
138 | const reference = getReferenceFromScope(j, path, name);
139 |
140 | if (!reference) {
141 | // Check if the tag being referenced is a DOM tag
142 | if (path.value.type === 'JSXIdentifier' && DOM_TAGS.includes(name)) {
143 | return;
144 | }
145 |
146 | // Otherwise, we're trying to reference a variable or function that does not exist
147 | // (Or a global that this codemod doesn't know about yet)
148 | throw new Error(
149 | [
150 | `The definition for ${name} does not exist.`,
151 | "Either your code is invalid, or that's a global we haven't added yet.",
152 | ].join('\n'),
153 | );
154 | }
155 |
156 | liveNodePaths.add(reference);
157 | liveNodes.add(reference.value);
158 | });
159 | });
160 |
161 | if (liveNodePaths.size > initialLiveNodePathsSize) {
162 | addLiveNodePaths();
163 | }
164 | }
165 |
166 | addLiveNodePaths();
167 |
168 | // For everythig in ORIGINS, remove all (top level?) origin sites
169 |
170 | root.find(j.VariableDeclarator)
171 | .filter((path) => {
172 | // We only want top level variable declarations to be filtered out
173 | const declaration = j(path).closest(j.VariableDeclaration).get();
174 | return isTopLevel(declaration);
175 | })
176 | .forEach((path) => {
177 | if (!liveNodePaths.has(path)) {
178 | if (path.parentPath.value.length === 1) {
179 | // Remove the whole VariableDeclaration if this is the only declarator
180 | // (remember, `let foo = 'foo', bar = 'bar'` is a thing)
181 | j(path).closest(j.VariableDeclaration).remove();
182 | } else {
183 | j(path).remove();
184 | }
185 | }
186 | });
187 |
188 | root.find(j.FunctionDeclaration).forEach((path) => {
189 | // TODO: comparing the node paths doesn't work - they change. We need to
190 | // compare the raw nodes
191 | if (!liveNodes.has(path.value)) {
192 | j(path).remove();
193 | }
194 | });
195 |
196 | root.find(j.ImportSpecifier).forEach((path) => {
197 | if (!liveNodePaths.has(path)) {
198 | if (path.parentPath.value.length === 1) {
199 | // Remove the whole ImportDeclaration if this is the only import
200 | j(path).closest(j.ImportDeclaration).remove();
201 | } else {
202 | j(path).remove();
203 | }
204 | }
205 | });
206 |
207 | root.find(j.ImportDefaultSpecifier).forEach((path) => {
208 | if (!liveNodePaths.has(path)) {
209 | // Allowlist `import React from 'react';`
210 | const importSource = j(path).closest(j.ImportDeclaration).get().value.source.value;
211 | if (importSource === 'react') return;
212 |
213 | if (path.parentPath.value.length === 1) {
214 | // Remove the whole ImportDeclaration if this is the only import
215 | j(path).closest(j.ImportDeclaration).remove();
216 | } else {
217 | j(path).remove();
218 | }
219 | }
220 | });
221 |
222 | return root.toSource();
223 | }
224 |
225 | // you may need to fiddle with this line
226 | export const parser = 'flow';
227 |
--------------------------------------------------------------------------------
/tests/fixtures/anonymous_expored_default/expected.js:
--------------------------------------------------------------------------------
1 | // TODO: make pass
2 | // export default () => {
3 | // return 'foo';
4 | // }
5 |
--------------------------------------------------------------------------------
/tests/fixtures/anonymous_expored_default/input.js:
--------------------------------------------------------------------------------
1 | // TODO: make pass
2 | // export default () => {
3 | // return 'foo';
4 | // }
5 |
--------------------------------------------------------------------------------
/tests/fixtures/basic_example/expected.js:
--------------------------------------------------------------------------------
1 | import { Boz, Foo as MyFoo } from 'some/module2';
2 |
3 | const getFoo = () => 'Foo';
4 | const getFooBar = () => `${getFoo()} Bar`;
5 |
6 | function getFooBarBaz() {
7 | return `${getFooBar} Baz`;
8 | }
9 |
10 | export function main() {
11 | MyFoo();
12 | Boz();
13 | console.log(getFooBarBaz());
14 | }
15 |
--------------------------------------------------------------------------------
/tests/fixtures/basic_example/input.js:
--------------------------------------------------------------------------------
1 | import { Bar, Baz, Boz, Foo as MyFoo } from 'some/module2';
2 | import { Qux as Quux, Qux2 } from 'some/module3';
3 |
4 | import Fooooo from 'some/module1';
5 |
6 | const unused1 = () => {},
7 | hello = 'world';
8 |
9 | const unused2 = '';
10 |
11 | function unused3() {}
12 |
13 | const unused4 = function () {};
14 |
15 | const getFoo = () => 'Foo';
16 | const getFooBar = () => `${getFoo()} Bar`;
17 |
18 | function getFooBarBaz() {
19 | return `${getFooBar} Baz`;
20 | }
21 |
22 | export function main() {
23 | MyFoo();
24 | Boz();
25 | console.log(getFooBarBaz());
26 | }
27 |
--------------------------------------------------------------------------------
/tests/fixtures/exported_default_arrow_function/expected.js:
--------------------------------------------------------------------------------
1 | const Foo = () => {
2 | return 'foo';
3 | };
4 |
5 | export default Foo;
6 |
--------------------------------------------------------------------------------
/tests/fixtures/exported_default_arrow_function/input.js:
--------------------------------------------------------------------------------
1 | const Foo = () => {
2 | return 'foo';
3 | };
4 |
5 | export default Foo;
6 |
--------------------------------------------------------------------------------
/tests/fixtures/inline_identifiers/expected.js:
--------------------------------------------------------------------------------
1 | function foo() {
2 | return { foo: 'foo' };
3 | }
4 |
5 | function getBar() {
6 | return { bar: 'bar' };
7 | }
8 |
9 | const baz = () => 'baz';
10 |
11 | function main() {
12 | const { foo: myFoo } = foo();
13 | const { bar } = getBar();
14 | const myBaz = baz();
15 | }
16 |
17 | export default main;
18 |
--------------------------------------------------------------------------------
/tests/fixtures/inline_identifiers/input.js:
--------------------------------------------------------------------------------
1 | function foo() {
2 | return { foo: 'foo' };
3 | }
4 |
5 | function getBar() {
6 | return { bar: 'bar' };
7 | }
8 |
9 | const baz = () => 'baz';
10 |
11 | const qux = () => 'qux!';
12 |
13 | function main() {
14 | const { foo: myFoo } = foo();
15 | const { bar } = getBar();
16 | const myBaz = baz();
17 | }
18 |
19 | export default main;
20 |
--------------------------------------------------------------------------------
/tests/fixtures/jsx_example/expected.js:
--------------------------------------------------------------------------------
1 | import { Box, Button } from '@chakra-ui/react';
2 | import { Link, useParams } from 'react-router-dom';
3 |
4 | import { ArrowBackIcon } from '@chakra-ui/icons';
5 | import MoneyTable from './MoneyTable';
6 | import Shell from '../Shell';
7 |
8 | const Header = ({ text }) => {
9 | return
{text}
;
10 | };
11 |
12 | const FilterView = () => {
13 | const { filter } = useParams();
14 |
15 | return (
16 |
17 |
18 |
19 | }>Back
20 |
21 |
22 |
23 |
24 |
25 |
26 | );
27 | };
28 |
29 | export default FilterView;
30 |
--------------------------------------------------------------------------------
/tests/fixtures/jsx_example/input.js:
--------------------------------------------------------------------------------
1 | import { Box, Button, Text } from '@chakra-ui/react';
2 | import { Link, Route, useParams } from 'react-router-dom';
3 |
4 | import { ArrowBackIcon } from '@chakra-ui/icons';
5 | import MoneyTable from './MoneyTable';
6 | import Shell from '../Shell';
7 |
8 | const foo = () => {};
9 | const bar = () => foo();
10 |
11 | const Header = ({ text }) => {
12 | return {text}
;
13 | };
14 |
15 | const FilterView = () => {
16 | const { filter } = useParams();
17 |
18 | return (
19 |
20 |
21 |
22 | }>Back
23 |
24 |
25 |
26 |
27 |
28 |
29 | );
30 | };
31 |
32 | export default FilterView;
33 |
--------------------------------------------------------------------------------
/tests/smoketests/README.md:
--------------------------------------------------------------------------------
1 | # smoketests
2 |
3 | Just a bunch of JS/JSX files that should produce the same output (no change)
4 |
5 | Purpose of this is to make sure the codemod doesn't blow up and does the right
6 | thing by testing against a bunch of "real world" examples
--------------------------------------------------------------------------------
/tests/smoketests/composerize.js:
--------------------------------------------------------------------------------
1 | // TODO: make pass
2 | // // @flow
3 |
4 | // // https://github.com/magicmark/composerize/blob/master/packages/composerize/src/index.js
5 |
6 | // import 'core-js/fn/object/entries';
7 |
8 | // import { getComposeJson, maybeGetComposeEntry } from './logic';
9 |
10 | // import deepmerge from 'deepmerge';
11 | // import parser from 'yargs-parser';
12 | // import yamljs from 'yamljs';
13 |
14 | // export type RawValue = string | number | boolean | [string | number | boolean];
15 |
16 | // const getServiceName = (image: string): string => {
17 | // let name = image.includes('/') ? image.split('/')[1] : image;
18 | // name = name.includes(':') ? name.split(':')[0] : name;
19 |
20 | // return name;
21 | // };
22 |
23 | // export default (input: string): ?string => {
24 | // const formattedInput = input.replace(/(\s)+/g, ' ').trim();
25 | // const parsedInput: {
26 | // +_: Array,
27 | // +[flag: string]: RawValue,
28 | // } = parser(formattedInput);
29 | // const { _: command, ...params } = parsedInput;
30 |
31 | // if (command[0] !== 'docker' || (command[1] !== 'run' && command[1] !== 'create')) {
32 | // throw new SyntaxError('must be a valid docker run/create command');
33 | // }
34 |
35 | // // The service object that we'll update
36 | // let service = {};
37 |
38 | // // Loop through the tokens and append to the service object
39 | // Object.entries(params).forEach(
40 | // // https://github.com/facebook/flow/issues/2174
41 | // // $FlowFixMe: Object.entries wipes out types ATOW
42 | // ([key, value]: [string, RawValue]) => {
43 | // const result = maybeGetComposeEntry(key, value);
44 | // if (result) {
45 | // const entries = Array.isArray(result) ? result : [result];
46 | // entries.forEach(entry => {
47 | // // Store whatever the next entry will be
48 | // const json = getComposeJson(entry);
49 | // service = deepmerge(service, json);
50 | // });
51 | // }
52 | // },
53 | // );
54 |
55 | // const image = command.slice(-1)[0];
56 | // service.image = image;
57 |
58 | // const serviceName = getServiceName(image);
59 |
60 | // // Outer template
61 | // const result = {
62 | // version: '3.3',
63 | // services: {
64 | // [serviceName]: service,
65 | // },
66 | // };
67 |
68 | // return yamljs.stringify(result, 9, 4).trim();
69 | // };
70 |
--------------------------------------------------------------------------------
/tests/smoketests/flow_example.js:
--------------------------------------------------------------------------------
1 | // @flow
2 |
3 | // random file copied from https://github.com/magicmark/composerize/blob/master/packages/composerize/src/mappings.js
4 |
5 | // Define the "types" of data a docker cli flag can represent in yaml.
6 | export type ArgType =
7 | // Used for lists of things
8 | // e.g. --device (https://docs.docker.com/compose/compose-file/#devices)
9 | | 'Array'
10 |
11 | // Used to store a mapping of one key to one value
12 | // e.g. --log-driver (https://docs.docker.com/compose/compose-file/#logging)
13 | | 'KeyValue'
14 |
15 | // Used to store a "limits" value of the input format: =[:]
16 | // e.g. --ulimit
17 | // @see https://docs.docker.com/compose/compose-file/#ulimits
18 | // @see https://docs.docker.com/engine/reference/commandline/run/#set-ulimits-in-container---ulimit
19 | | 'Ulimits'
20 |
21 | // Used to store a boolean value for an option
22 | // e.g. --privileged (https://docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir)
23 | | 'Switch'
24 |
25 | // Used to store an arbitrary text value for an option
26 | | 'Value';
27 |
28 | // Type to represent the structure of the docker compose mapping
29 | export type Mapping = {
30 | type: ArgType,
31 | path: string,
32 | };
33 |
34 | // Type to represent a compose file entry
35 | export type ArrayComposeEntry = {
36 | path: string,
37 | value: [string],
38 | };
39 |
40 | export type KVComposeEntry = {
41 | path: string,
42 | value: {
43 | [string]: string | number,
44 | },
45 | };
46 |
47 | export type SwitchComposeEntry = {
48 | path: string,
49 | value: boolean,
50 | };
51 |
52 | export type ValueComposeEntry = {
53 | path: string,
54 | value: string | number,
55 | };
56 |
57 | export type ComposeEntry = ArrayComposeEntry | KVComposeEntry | SwitchComposeEntry | ValueComposeEntry;
58 |
59 | export const getMapping = (type: ArgType, path: string): Mapping => ({
60 | type,
61 | path,
62 | });
63 |
64 | // docker cli -> docker-compose options
65 | export const MAPPINGS: { [string]: Mapping } = {
66 | 'add-host': getMapping('Array', 'extra_hosts'),
67 | cap_add: getMapping('Array', 'cap_add'),
68 | cap_drop: getMapping('Array', 'cap_drop'),
69 | cgroup_parent: getMapping('Value', 'cgroup_parent'),
70 | device: getMapping('Array', 'devices'),
71 | dns: getMapping('Array', 'dns'),
72 | dns_search: getMapping('Array', 'dns_search'),
73 | env_file: getMapping('Array', 'env_file'),
74 | expose: getMapping('Array', 'expose'),
75 | label: getMapping('Array', 'labels'),
76 | link: getMapping('Array', 'links'),
77 | entrypoint: getMapping('Array', 'entrypoint'),
78 | env: getMapping('Array', 'environment'),
79 | name: getMapping('Value', 'container_name'),
80 | network: getMapping('Value', 'network_mode'),
81 | net: getMapping('Value', 'network_mode'), // alias for network
82 | pid: getMapping('Value', 'pid'),
83 | privileged: getMapping('Switch', 'privileged'),
84 | publish: getMapping('Array', 'ports'),
85 | restart: getMapping('Value', 'restart'),
86 | tmpfs: getMapping('Value', 'tmpfs'),
87 | ulimit: getMapping('Ulimits', 'ulimits'),
88 | volume: getMapping('Array', 'volumes'),
89 | 'log-driver': getMapping('Array', 'logging/driver'),
90 | 'log-opt': getMapping('KeyValue', 'logging/options'),
91 | };
92 |
93 | // Add flag mappings
94 | MAPPINGS.v = MAPPINGS.volume;
95 | MAPPINGS.p = MAPPINGS.publish;
96 | MAPPINGS.e = MAPPINGS.env;
97 |
--------------------------------------------------------------------------------
/tests/smoketests/plaid.js:
--------------------------------------------------------------------------------
1 | // https://github.com/plaid/react-plaid-link/blob/bba75a08e94b2ee3f5b370135d7d99213f9d02db/examples/hooks.js
2 |
3 | import React, { useCallback } from 'react';
4 |
5 | import { usePlaidLink } from '../src';
6 |
7 | const App = (props) => {
8 | const onSuccess = useCallback((token, metadata) => console.log('onSuccess', token, metadata), []);
9 | const onEvent = useCallback((eventName, metadata) => console.log('onEvent', eventName, metadata), []);
10 | const onExit = useCallback((err, metadata) => console.log('onExit', err, metadata), []);
11 | const config = {
12 | token: props.token,
13 | onSuccess,
14 | onEvent,
15 | onExit,
16 | // –– optional parameters
17 | // receivedRedirectUri: props.receivedRedirectUri || null,
18 | // ...
19 | };
20 | const { open, ready, error } = usePlaidLink(config);
21 | return (
22 | <>
23 |
26 | >
27 | );
28 | };
29 | export default App;
30 |
--------------------------------------------------------------------------------
/tests/test.mjs:
--------------------------------------------------------------------------------
1 | import assert from 'assert/strict';
2 | import chalk from 'chalk';
3 | import execa from 'execa';
4 | import { fileURLToPath } from 'url';
5 | import fs from 'fs/promises';
6 | import path from 'path';
7 |
8 | const [, , filter] = process.argv;
9 |
10 | const __dirname = path.dirname(fileURLToPath(import.meta.url));
11 |
12 | async function doTest(name, inputFile, expected) {
13 | process.stdout.write(`* Testing ${chalk.bold(name)}... `);
14 | const { stdout: actual } = await execa('node', [
15 | 'node_modules/.bin/jscodeshift',
16 | '--transform',
17 | 'src/index.mjs',
18 | '--dry',
19 | '--silent',
20 | '--print',
21 | inputFile,
22 | ]);
23 |
24 | // jscodeshift can output the empty string if no change
25 | // TODO: always output something?
26 | if (actual !== '') {
27 | assert.equal(actual.trim(), expected.trim());
28 | }
29 |
30 | process.stdout.write(`OK!\n`);
31 | }
32 |
33 | async function main() {
34 | const fixtures = await fs.readdir(path.join(__dirname, 'fixtures'));
35 |
36 | for await (const fixture of fixtures) {
37 | if (typeof filter === 'string' && fixture !== filter) {
38 | continue;
39 | }
40 | const fixtureDir = path.join(__dirname, 'fixtures', fixture);
41 | const expected = await fs.readFile(path.join(fixtureDir, 'expected.js'), 'utf-8');
42 | await doTest(fixture, path.join(fixtureDir, 'input.js'), expected);
43 | }
44 |
45 | const smoketests = await fs.readdir(path.join(__dirname, 'smoketests'));
46 |
47 | for await (const smoketest of smoketests) {
48 | const testName = smoketest.replace(/\.js$/, '');
49 | if (typeof filter === 'string' && testName !== filter) {
50 | continue;
51 | }
52 |
53 | const testFile = path.join(__dirname, 'smoketests', smoketest);
54 | const expected = await fs.readFile(testFile, 'utf-8');
55 | await doTest(testName, testFile, expected);
56 | }
57 | }
58 |
59 | main();
60 |
--------------------------------------------------------------------------------
/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.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.14.5":
13 | version "7.14.5"
14 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea"
15 | integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==
16 |
17 | "@babel/core@^7.13.16":
18 | version "7.14.6"
19 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab"
20 | integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==
21 | dependencies:
22 | "@babel/code-frame" "^7.14.5"
23 | "@babel/generator" "^7.14.5"
24 | "@babel/helper-compilation-targets" "^7.14.5"
25 | "@babel/helper-module-transforms" "^7.14.5"
26 | "@babel/helpers" "^7.14.6"
27 | "@babel/parser" "^7.14.6"
28 | "@babel/template" "^7.14.5"
29 | "@babel/traverse" "^7.14.5"
30 | "@babel/types" "^7.14.5"
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.14.5":
39 | version "7.14.5"
40 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785"
41 | integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==
42 | dependencies:
43 | "@babel/types" "^7.14.5"
44 | jsesc "^2.5.1"
45 | source-map "^0.5.0"
46 |
47 | "@babel/helper-annotate-as-pure@^7.14.5":
48 | version "7.14.5"
49 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61"
50 | integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==
51 | dependencies:
52 | "@babel/types" "^7.14.5"
53 |
54 | "@babel/helper-compilation-targets@^7.14.5":
55 | version "7.14.5"
56 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf"
57 | integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==
58 | dependencies:
59 | "@babel/compat-data" "^7.14.5"
60 | "@babel/helper-validator-option" "^7.14.5"
61 | browserslist "^4.16.6"
62 | semver "^6.3.0"
63 |
64 | "@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.14.6":
65 | version "7.14.6"
66 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542"
67 | integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==
68 | dependencies:
69 | "@babel/helper-annotate-as-pure" "^7.14.5"
70 | "@babel/helper-function-name" "^7.14.5"
71 | "@babel/helper-member-expression-to-functions" "^7.14.5"
72 | "@babel/helper-optimise-call-expression" "^7.14.5"
73 | "@babel/helper-replace-supers" "^7.14.5"
74 | "@babel/helper-split-export-declaration" "^7.14.5"
75 |
76 | "@babel/helper-function-name@^7.14.5":
77 | version "7.14.5"
78 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4"
79 | integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==
80 | dependencies:
81 | "@babel/helper-get-function-arity" "^7.14.5"
82 | "@babel/template" "^7.14.5"
83 | "@babel/types" "^7.14.5"
84 |
85 | "@babel/helper-get-function-arity@^7.14.5":
86 | version "7.14.5"
87 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815"
88 | integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==
89 | dependencies:
90 | "@babel/types" "^7.14.5"
91 |
92 | "@babel/helper-hoist-variables@^7.14.5":
93 | version "7.14.5"
94 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d"
95 | integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==
96 | dependencies:
97 | "@babel/types" "^7.14.5"
98 |
99 | "@babel/helper-member-expression-to-functions@^7.14.5":
100 | version "7.14.5"
101 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz#d5c70e4ad13b402c95156c7a53568f504e2fb7b8"
102 | integrity sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==
103 | dependencies:
104 | "@babel/types" "^7.14.5"
105 |
106 | "@babel/helper-module-imports@^7.14.5":
107 | version "7.14.5"
108 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3"
109 | integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==
110 | dependencies:
111 | "@babel/types" "^7.14.5"
112 |
113 | "@babel/helper-module-transforms@^7.14.5":
114 | version "7.14.5"
115 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e"
116 | integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==
117 | dependencies:
118 | "@babel/helper-module-imports" "^7.14.5"
119 | "@babel/helper-replace-supers" "^7.14.5"
120 | "@babel/helper-simple-access" "^7.14.5"
121 | "@babel/helper-split-export-declaration" "^7.14.5"
122 | "@babel/helper-validator-identifier" "^7.14.5"
123 | "@babel/template" "^7.14.5"
124 | "@babel/traverse" "^7.14.5"
125 | "@babel/types" "^7.14.5"
126 |
127 | "@babel/helper-optimise-call-expression@^7.14.5":
128 | version "7.14.5"
129 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c"
130 | integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==
131 | dependencies:
132 | "@babel/types" "^7.14.5"
133 |
134 | "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0":
135 | version "7.14.5"
136 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
137 | integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
138 |
139 | "@babel/helper-replace-supers@^7.14.5":
140 | version "7.14.5"
141 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94"
142 | integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==
143 | dependencies:
144 | "@babel/helper-member-expression-to-functions" "^7.14.5"
145 | "@babel/helper-optimise-call-expression" "^7.14.5"
146 | "@babel/traverse" "^7.14.5"
147 | "@babel/types" "^7.14.5"
148 |
149 | "@babel/helper-simple-access@^7.14.5":
150 | version "7.14.5"
151 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4"
152 | integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==
153 | dependencies:
154 | "@babel/types" "^7.14.5"
155 |
156 | "@babel/helper-skip-transparent-expression-wrappers@^7.14.5":
157 | version "7.14.5"
158 | resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4"
159 | integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==
160 | dependencies:
161 | "@babel/types" "^7.14.5"
162 |
163 | "@babel/helper-split-export-declaration@^7.14.5":
164 | version "7.14.5"
165 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a"
166 | integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==
167 | dependencies:
168 | "@babel/types" "^7.14.5"
169 |
170 | "@babel/helper-validator-identifier@^7.14.5":
171 | version "7.14.5"
172 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8"
173 | integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==
174 |
175 | "@babel/helper-validator-option@^7.14.5":
176 | version "7.14.5"
177 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3"
178 | integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==
179 |
180 | "@babel/helpers@^7.14.6":
181 | version "7.14.6"
182 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635"
183 | integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==
184 | dependencies:
185 | "@babel/template" "^7.14.5"
186 | "@babel/traverse" "^7.14.5"
187 | "@babel/types" "^7.14.5"
188 |
189 | "@babel/highlight@^7.14.5":
190 | version "7.14.5"
191 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
192 | integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
193 | dependencies:
194 | "@babel/helper-validator-identifier" "^7.14.5"
195 | chalk "^2.0.0"
196 | js-tokens "^4.0.0"
197 |
198 | "@babel/parser@^7.13.16", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6":
199 | version "7.14.6"
200 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.6.tgz#d85cc68ca3cac84eae384c06f032921f5227f4b2"
201 | integrity sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==
202 |
203 | "@babel/plugin-proposal-class-properties@^7.13.0":
204 | version "7.14.5"
205 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e"
206 | integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==
207 | dependencies:
208 | "@babel/helper-create-class-features-plugin" "^7.14.5"
209 | "@babel/helper-plugin-utils" "^7.14.5"
210 |
211 | "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8":
212 | version "7.14.5"
213 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6"
214 | integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==
215 | dependencies:
216 | "@babel/helper-plugin-utils" "^7.14.5"
217 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
218 |
219 | "@babel/plugin-proposal-optional-chaining@^7.13.12":
220 | version "7.14.5"
221 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603"
222 | integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==
223 | dependencies:
224 | "@babel/helper-plugin-utils" "^7.14.5"
225 | "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
226 | "@babel/plugin-syntax-optional-chaining" "^7.8.3"
227 |
228 | "@babel/plugin-syntax-flow@^7.14.5":
229 | version "7.14.5"
230 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz#2ff654999497d7d7d142493260005263731da180"
231 | integrity sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q==
232 | dependencies:
233 | "@babel/helper-plugin-utils" "^7.14.5"
234 |
235 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
236 | version "7.8.3"
237 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
238 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
239 | dependencies:
240 | "@babel/helper-plugin-utils" "^7.8.0"
241 |
242 | "@babel/plugin-syntax-optional-chaining@^7.8.3":
243 | version "7.8.3"
244 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
245 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
246 | dependencies:
247 | "@babel/helper-plugin-utils" "^7.8.0"
248 |
249 | "@babel/plugin-syntax-typescript@^7.14.5":
250 | version "7.14.5"
251 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716"
252 | integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==
253 | dependencies:
254 | "@babel/helper-plugin-utils" "^7.14.5"
255 |
256 | "@babel/plugin-transform-flow-strip-types@^7.14.5":
257 | version "7.14.5"
258 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz#0dc9c1d11dcdc873417903d6df4bed019ef0f85e"
259 | integrity sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA==
260 | dependencies:
261 | "@babel/helper-plugin-utils" "^7.14.5"
262 | "@babel/plugin-syntax-flow" "^7.14.5"
263 |
264 | "@babel/plugin-transform-modules-commonjs@^7.13.8":
265 | version "7.14.5"
266 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97"
267 | integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==
268 | dependencies:
269 | "@babel/helper-module-transforms" "^7.14.5"
270 | "@babel/helper-plugin-utils" "^7.14.5"
271 | "@babel/helper-simple-access" "^7.14.5"
272 | babel-plugin-dynamic-import-node "^2.3.3"
273 |
274 | "@babel/plugin-transform-typescript@^7.14.5":
275 | version "7.14.6"
276 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz#6e9c2d98da2507ebe0a883b100cde3c7279df36c"
277 | integrity sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA==
278 | dependencies:
279 | "@babel/helper-create-class-features-plugin" "^7.14.6"
280 | "@babel/helper-plugin-utils" "^7.14.5"
281 | "@babel/plugin-syntax-typescript" "^7.14.5"
282 |
283 | "@babel/preset-flow@^7.13.13":
284 | version "7.14.5"
285 | resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.14.5.tgz#a1810b0780c8b48ab0bece8e7ab8d0d37712751c"
286 | integrity sha512-pP5QEb4qRUSVGzzKx9xqRuHUrM/jEzMqdrZpdMA+oUCRgd5zM1qGr5y5+ZgAL/1tVv1H0dyk5t4SKJntqyiVtg==
287 | dependencies:
288 | "@babel/helper-plugin-utils" "^7.14.5"
289 | "@babel/helper-validator-option" "^7.14.5"
290 | "@babel/plugin-transform-flow-strip-types" "^7.14.5"
291 |
292 | "@babel/preset-typescript@^7.13.0":
293 | version "7.14.5"
294 | resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz#aa98de119cf9852b79511f19e7f44a2d379bcce0"
295 | integrity sha512-u4zO6CdbRKbS9TypMqrlGH7sd2TAJppZwn3c/ZRLeO/wGsbddxgbPDUZVNrie3JWYLQ9vpineKlsrWFvO6Pwkw==
296 | dependencies:
297 | "@babel/helper-plugin-utils" "^7.14.5"
298 | "@babel/helper-validator-option" "^7.14.5"
299 | "@babel/plugin-transform-typescript" "^7.14.5"
300 |
301 | "@babel/register@^7.13.16":
302 | version "7.14.5"
303 | resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.14.5.tgz#d0eac615065d9c2f1995842f85d6e56c345f3233"
304 | integrity sha512-TjJpGz/aDjFGWsItRBQMOFTrmTI9tr79CHOK+KIvLeCkbxuOAk2M5QHjvruIMGoo9OuccMh5euplPzc5FjAKGg==
305 | dependencies:
306 | clone-deep "^4.0.1"
307 | find-cache-dir "^2.0.0"
308 | make-dir "^2.1.0"
309 | pirates "^4.0.0"
310 | source-map-support "^0.5.16"
311 |
312 | "@babel/template@^7.14.5":
313 | version "7.14.5"
314 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
315 | integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==
316 | dependencies:
317 | "@babel/code-frame" "^7.14.5"
318 | "@babel/parser" "^7.14.5"
319 | "@babel/types" "^7.14.5"
320 |
321 | "@babel/traverse@^7.14.5":
322 | version "7.14.5"
323 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.5.tgz#c111b0f58afab4fea3d3385a406f692748c59870"
324 | integrity sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==
325 | dependencies:
326 | "@babel/code-frame" "^7.14.5"
327 | "@babel/generator" "^7.14.5"
328 | "@babel/helper-function-name" "^7.14.5"
329 | "@babel/helper-hoist-variables" "^7.14.5"
330 | "@babel/helper-split-export-declaration" "^7.14.5"
331 | "@babel/parser" "^7.14.5"
332 | "@babel/types" "^7.14.5"
333 | debug "^4.1.0"
334 | globals "^11.1.0"
335 |
336 | "@babel/types@^7.14.5":
337 | version "7.14.5"
338 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff"
339 | integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==
340 | dependencies:
341 | "@babel/helper-validator-identifier" "^7.14.5"
342 | to-fast-properties "^2.0.0"
343 |
344 | ansi-styles@^3.2.1:
345 | version "3.2.1"
346 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
347 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
348 | dependencies:
349 | color-convert "^1.9.0"
350 |
351 | ansi-styles@^4.1.0:
352 | version "4.3.0"
353 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
354 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
355 | dependencies:
356 | color-convert "^2.0.1"
357 |
358 | arr-diff@^4.0.0:
359 | version "4.0.0"
360 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
361 | integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
362 |
363 | arr-flatten@^1.1.0:
364 | version "1.1.0"
365 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
366 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
367 |
368 | arr-union@^3.1.0:
369 | version "3.1.0"
370 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
371 | integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
372 |
373 | array-unique@^0.3.2:
374 | version "0.3.2"
375 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
376 | integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
377 |
378 | assign-symbols@^1.0.0:
379 | version "1.0.0"
380 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
381 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
382 |
383 | ast-types@0.14.2:
384 | version "0.14.2"
385 | resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd"
386 | integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==
387 | dependencies:
388 | tslib "^2.0.1"
389 |
390 | atob@^2.1.2:
391 | version "2.1.2"
392 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
393 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
394 |
395 | babel-core@^7.0.0-bridge.0:
396 | version "7.0.0-bridge.0"
397 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece"
398 | integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==
399 |
400 | babel-plugin-dynamic-import-node@^2.3.3:
401 | version "2.3.3"
402 | resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
403 | integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
404 | dependencies:
405 | object.assign "^4.1.0"
406 |
407 | balanced-match@^1.0.0:
408 | version "1.0.2"
409 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
410 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
411 |
412 | base@^0.11.1:
413 | version "0.11.2"
414 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
415 | integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
416 | dependencies:
417 | cache-base "^1.0.1"
418 | class-utils "^0.3.5"
419 | component-emitter "^1.2.1"
420 | define-property "^1.0.0"
421 | isobject "^3.0.1"
422 | mixin-deep "^1.2.0"
423 | pascalcase "^0.1.1"
424 |
425 | brace-expansion@^1.1.7:
426 | version "1.1.11"
427 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
428 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
429 | dependencies:
430 | balanced-match "^1.0.0"
431 | concat-map "0.0.1"
432 |
433 | braces@^2.3.1:
434 | version "2.3.2"
435 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
436 | integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
437 | dependencies:
438 | arr-flatten "^1.1.0"
439 | array-unique "^0.3.2"
440 | extend-shallow "^2.0.1"
441 | fill-range "^4.0.0"
442 | isobject "^3.0.1"
443 | repeat-element "^1.1.2"
444 | snapdragon "^0.8.1"
445 | snapdragon-node "^2.0.1"
446 | split-string "^3.0.2"
447 | to-regex "^3.0.1"
448 |
449 | browserslist@^4.16.6:
450 | version "4.16.6"
451 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
452 | integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
453 | dependencies:
454 | caniuse-lite "^1.0.30001219"
455 | colorette "^1.2.2"
456 | electron-to-chromium "^1.3.723"
457 | escalade "^3.1.1"
458 | node-releases "^1.1.71"
459 |
460 | buffer-from@^1.0.0:
461 | version "1.1.1"
462 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
463 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
464 |
465 | cache-base@^1.0.1:
466 | version "1.0.1"
467 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
468 | integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
469 | dependencies:
470 | collection-visit "^1.0.0"
471 | component-emitter "^1.2.1"
472 | get-value "^2.0.6"
473 | has-value "^1.0.0"
474 | isobject "^3.0.1"
475 | set-value "^2.0.0"
476 | to-object-path "^0.3.0"
477 | union-value "^1.0.0"
478 | unset-value "^1.0.0"
479 |
480 | call-bind@^1.0.0:
481 | version "1.0.2"
482 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
483 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
484 | dependencies:
485 | function-bind "^1.1.1"
486 | get-intrinsic "^1.0.2"
487 |
488 | caniuse-lite@^1.0.30001219:
489 | version "1.0.30001239"
490 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz#66e8669985bb2cb84ccb10f68c25ce6dd3e4d2b8"
491 | integrity sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==
492 |
493 | chalk@^2.0.0:
494 | version "2.4.2"
495 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
496 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
497 | dependencies:
498 | ansi-styles "^3.2.1"
499 | escape-string-regexp "^1.0.5"
500 | supports-color "^5.3.0"
501 |
502 | chalk@^4.1.1:
503 | version "4.1.1"
504 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
505 | integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
506 | dependencies:
507 | ansi-styles "^4.1.0"
508 | supports-color "^7.1.0"
509 |
510 | class-utils@^0.3.5:
511 | version "0.3.6"
512 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
513 | integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
514 | dependencies:
515 | arr-union "^3.1.0"
516 | define-property "^0.2.5"
517 | isobject "^3.0.0"
518 | static-extend "^0.1.1"
519 |
520 | clone-deep@^4.0.1:
521 | version "4.0.1"
522 | resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
523 | integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
524 | dependencies:
525 | is-plain-object "^2.0.4"
526 | kind-of "^6.0.2"
527 | shallow-clone "^3.0.0"
528 |
529 | collection-visit@^1.0.0:
530 | version "1.0.0"
531 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
532 | integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
533 | dependencies:
534 | map-visit "^1.0.0"
535 | object-visit "^1.0.0"
536 |
537 | color-convert@^1.9.0:
538 | version "1.9.3"
539 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
540 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
541 | dependencies:
542 | color-name "1.1.3"
543 |
544 | color-convert@^2.0.1:
545 | version "2.0.1"
546 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
547 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
548 | dependencies:
549 | color-name "~1.1.4"
550 |
551 | color-name@1.1.3:
552 | version "1.1.3"
553 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
554 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
555 |
556 | color-name@~1.1.4:
557 | version "1.1.4"
558 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
559 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
560 |
561 | colorette@^1.2.2:
562 | version "1.2.2"
563 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
564 | integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
565 |
566 | colors@^1.1.2:
567 | version "1.4.0"
568 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
569 | integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
570 |
571 | commondir@^1.0.1:
572 | version "1.0.1"
573 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
574 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
575 |
576 | component-emitter@^1.2.1:
577 | version "1.3.0"
578 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
579 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
580 |
581 | concat-map@0.0.1:
582 | version "0.0.1"
583 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
584 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
585 |
586 | convert-source-map@^1.7.0:
587 | version "1.8.0"
588 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
589 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
590 | dependencies:
591 | safe-buffer "~5.1.1"
592 |
593 | copy-descriptor@^0.1.0:
594 | version "0.1.1"
595 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
596 | integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
597 |
598 | cross-spawn@^7.0.3:
599 | version "7.0.3"
600 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
601 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
602 | dependencies:
603 | path-key "^3.1.0"
604 | shebang-command "^2.0.0"
605 | which "^2.0.1"
606 |
607 | debug@^2.2.0, debug@^2.3.3:
608 | version "2.6.9"
609 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
610 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
611 | dependencies:
612 | ms "2.0.0"
613 |
614 | debug@^4.1.0:
615 | version "4.3.1"
616 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
617 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
618 | dependencies:
619 | ms "2.1.2"
620 |
621 | decode-uri-component@^0.2.0:
622 | version "0.2.0"
623 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
624 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
625 |
626 | define-properties@^1.1.3:
627 | version "1.1.3"
628 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
629 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
630 | dependencies:
631 | object-keys "^1.0.12"
632 |
633 | define-property@^0.2.5:
634 | version "0.2.5"
635 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
636 | integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
637 | dependencies:
638 | is-descriptor "^0.1.0"
639 |
640 | define-property@^1.0.0:
641 | version "1.0.0"
642 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
643 | integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
644 | dependencies:
645 | is-descriptor "^1.0.0"
646 |
647 | define-property@^2.0.2:
648 | version "2.0.2"
649 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
650 | integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
651 | dependencies:
652 | is-descriptor "^1.0.2"
653 | isobject "^3.0.1"
654 |
655 | electron-to-chromium@^1.3.723:
656 | version "1.3.752"
657 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09"
658 | integrity sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==
659 |
660 | escalade@^3.1.1:
661 | version "3.1.1"
662 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
663 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
664 |
665 | escape-string-regexp@^1.0.5:
666 | version "1.0.5"
667 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
668 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
669 |
670 | esprima@~4.0.0:
671 | version "4.0.1"
672 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
673 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
674 |
675 | execa@^5.1.1:
676 | version "5.1.1"
677 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
678 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
679 | dependencies:
680 | cross-spawn "^7.0.3"
681 | get-stream "^6.0.0"
682 | human-signals "^2.1.0"
683 | is-stream "^2.0.0"
684 | merge-stream "^2.0.0"
685 | npm-run-path "^4.0.1"
686 | onetime "^5.1.2"
687 | signal-exit "^3.0.3"
688 | strip-final-newline "^2.0.0"
689 |
690 | expand-brackets@^2.1.4:
691 | version "2.1.4"
692 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
693 | integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
694 | dependencies:
695 | debug "^2.3.3"
696 | define-property "^0.2.5"
697 | extend-shallow "^2.0.1"
698 | posix-character-classes "^0.1.0"
699 | regex-not "^1.0.0"
700 | snapdragon "^0.8.1"
701 | to-regex "^3.0.1"
702 |
703 | extend-shallow@^2.0.1:
704 | version "2.0.1"
705 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
706 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
707 | dependencies:
708 | is-extendable "^0.1.0"
709 |
710 | extend-shallow@^3.0.0, extend-shallow@^3.0.2:
711 | version "3.0.2"
712 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
713 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
714 | dependencies:
715 | assign-symbols "^1.0.0"
716 | is-extendable "^1.0.1"
717 |
718 | extglob@^2.0.4:
719 | version "2.0.4"
720 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
721 | integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
722 | dependencies:
723 | array-unique "^0.3.2"
724 | define-property "^1.0.0"
725 | expand-brackets "^2.1.4"
726 | extend-shallow "^2.0.1"
727 | fragment-cache "^0.2.1"
728 | regex-not "^1.0.0"
729 | snapdragon "^0.8.1"
730 | to-regex "^3.0.1"
731 |
732 | fill-range@^4.0.0:
733 | version "4.0.0"
734 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
735 | integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
736 | dependencies:
737 | extend-shallow "^2.0.1"
738 | is-number "^3.0.0"
739 | repeat-string "^1.6.1"
740 | to-regex-range "^2.1.0"
741 |
742 | find-cache-dir@^2.0.0:
743 | version "2.1.0"
744 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
745 | integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
746 | dependencies:
747 | commondir "^1.0.1"
748 | make-dir "^2.0.0"
749 | pkg-dir "^3.0.0"
750 |
751 | find-up@^3.0.0:
752 | version "3.0.0"
753 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
754 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
755 | dependencies:
756 | locate-path "^3.0.0"
757 |
758 | flow-parser@0.*:
759 | version "0.153.0"
760 | resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.153.0.tgz#bac7e977c79f380b07088d36fd0fccea24435db8"
761 | integrity sha512-qa7UODgbofQyruRWqNQ+KM5hO37CenByxhNfAztiwjBsPhWZ5AFh5g+gtLpTWPlzG7X66QdjBB9DuHNUBcaF+Q==
762 |
763 | for-in@^1.0.2:
764 | version "1.0.2"
765 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
766 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
767 |
768 | fragment-cache@^0.2.1:
769 | version "0.2.1"
770 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
771 | integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
772 | dependencies:
773 | map-cache "^0.2.2"
774 |
775 | fs.realpath@^1.0.0:
776 | version "1.0.0"
777 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
778 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
779 |
780 | function-bind@^1.1.1:
781 | version "1.1.1"
782 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
783 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
784 |
785 | gensync@^1.0.0-beta.2:
786 | version "1.0.0-beta.2"
787 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
788 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
789 |
790 | get-intrinsic@^1.0.2:
791 | version "1.1.1"
792 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
793 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
794 | dependencies:
795 | function-bind "^1.1.1"
796 | has "^1.0.3"
797 | has-symbols "^1.0.1"
798 |
799 | get-stream@^6.0.0:
800 | version "6.0.1"
801 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
802 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
803 |
804 | get-value@^2.0.3, get-value@^2.0.6:
805 | version "2.0.6"
806 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
807 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
808 |
809 | glob@^7.1.3:
810 | version "7.1.7"
811 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
812 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
813 | dependencies:
814 | fs.realpath "^1.0.0"
815 | inflight "^1.0.4"
816 | inherits "2"
817 | minimatch "^3.0.4"
818 | once "^1.3.0"
819 | path-is-absolute "^1.0.0"
820 |
821 | globals@^11.1.0:
822 | version "11.12.0"
823 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
824 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
825 |
826 | graceful-fs@^4.1.11, graceful-fs@^4.2.4:
827 | version "4.2.6"
828 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
829 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
830 |
831 | has-flag@^3.0.0:
832 | version "3.0.0"
833 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
834 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
835 |
836 | has-flag@^4.0.0:
837 | version "4.0.0"
838 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
839 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
840 |
841 | has-symbols@^1.0.1:
842 | version "1.0.2"
843 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
844 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
845 |
846 | has-value@^0.3.1:
847 | version "0.3.1"
848 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
849 | integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
850 | dependencies:
851 | get-value "^2.0.3"
852 | has-values "^0.1.4"
853 | isobject "^2.0.0"
854 |
855 | has-value@^1.0.0:
856 | version "1.0.0"
857 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
858 | integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
859 | dependencies:
860 | get-value "^2.0.6"
861 | has-values "^1.0.0"
862 | isobject "^3.0.0"
863 |
864 | has-values@^0.1.4:
865 | version "0.1.4"
866 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
867 | integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
868 |
869 | has-values@^1.0.0:
870 | version "1.0.0"
871 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
872 | integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
873 | dependencies:
874 | is-number "^3.0.0"
875 | kind-of "^4.0.0"
876 |
877 | has@^1.0.3:
878 | version "1.0.3"
879 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
880 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
881 | dependencies:
882 | function-bind "^1.1.1"
883 |
884 | human-signals@^2.1.0:
885 | version "2.1.0"
886 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
887 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
888 |
889 | imurmurhash@^0.1.4:
890 | version "0.1.4"
891 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
892 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
893 |
894 | inflight@^1.0.4:
895 | version "1.0.6"
896 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
897 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
898 | dependencies:
899 | once "^1.3.0"
900 | wrappy "1"
901 |
902 | inherits@2:
903 | version "2.0.4"
904 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
905 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
906 |
907 | is-accessor-descriptor@^0.1.6:
908 | version "0.1.6"
909 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
910 | integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
911 | dependencies:
912 | kind-of "^3.0.2"
913 |
914 | is-accessor-descriptor@^1.0.0:
915 | version "1.0.0"
916 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
917 | integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
918 | dependencies:
919 | kind-of "^6.0.0"
920 |
921 | is-buffer@^1.1.5:
922 | version "1.1.6"
923 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
924 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
925 |
926 | is-data-descriptor@^0.1.4:
927 | version "0.1.4"
928 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
929 | integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
930 | dependencies:
931 | kind-of "^3.0.2"
932 |
933 | is-data-descriptor@^1.0.0:
934 | version "1.0.0"
935 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
936 | integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
937 | dependencies:
938 | kind-of "^6.0.0"
939 |
940 | is-descriptor@^0.1.0:
941 | version "0.1.6"
942 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
943 | integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
944 | dependencies:
945 | is-accessor-descriptor "^0.1.6"
946 | is-data-descriptor "^0.1.4"
947 | kind-of "^5.0.0"
948 |
949 | is-descriptor@^1.0.0, is-descriptor@^1.0.2:
950 | version "1.0.2"
951 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
952 | integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
953 | dependencies:
954 | is-accessor-descriptor "^1.0.0"
955 | is-data-descriptor "^1.0.0"
956 | kind-of "^6.0.2"
957 |
958 | is-extendable@^0.1.0, is-extendable@^0.1.1:
959 | version "0.1.1"
960 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
961 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
962 |
963 | is-extendable@^1.0.1:
964 | version "1.0.1"
965 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
966 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
967 | dependencies:
968 | is-plain-object "^2.0.4"
969 |
970 | is-number@^3.0.0:
971 | version "3.0.0"
972 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
973 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
974 | dependencies:
975 | kind-of "^3.0.2"
976 |
977 | is-plain-object@^2.0.3, is-plain-object@^2.0.4:
978 | version "2.0.4"
979 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
980 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
981 | dependencies:
982 | isobject "^3.0.1"
983 |
984 | is-stream@^2.0.0:
985 | version "2.0.0"
986 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
987 | integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
988 |
989 | is-windows@^1.0.2:
990 | version "1.0.2"
991 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
992 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
993 |
994 | isarray@1.0.0:
995 | version "1.0.0"
996 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
997 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
998 |
999 | isexe@^2.0.0:
1000 | version "2.0.0"
1001 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1002 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1003 |
1004 | isobject@^2.0.0:
1005 | version "2.1.0"
1006 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
1007 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
1008 | dependencies:
1009 | isarray "1.0.0"
1010 |
1011 | isobject@^3.0.0, isobject@^3.0.1:
1012 | version "3.0.1"
1013 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
1014 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
1015 |
1016 | js-tokens@^4.0.0:
1017 | version "4.0.0"
1018 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1019 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1020 |
1021 | jscodeshift@^0.12.0:
1022 | version "0.12.0"
1023 | resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.12.0.tgz#de7302f3d3e1f4b3b36f9e484f451ba4ab7cc1f4"
1024 | integrity sha512-LEgr+wklbtEQD6SptyVYox+YZ7v+4NQeWHgqASedxl2LxQ+/kSQs6Nhs/GX+ymVOu84Hsz9/C2hQfDY89dKZ6A==
1025 | dependencies:
1026 | "@babel/core" "^7.13.16"
1027 | "@babel/parser" "^7.13.16"
1028 | "@babel/plugin-proposal-class-properties" "^7.13.0"
1029 | "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8"
1030 | "@babel/plugin-proposal-optional-chaining" "^7.13.12"
1031 | "@babel/plugin-transform-modules-commonjs" "^7.13.8"
1032 | "@babel/preset-flow" "^7.13.13"
1033 | "@babel/preset-typescript" "^7.13.0"
1034 | "@babel/register" "^7.13.16"
1035 | babel-core "^7.0.0-bridge.0"
1036 | colors "^1.1.2"
1037 | flow-parser "0.*"
1038 | graceful-fs "^4.2.4"
1039 | micromatch "^3.1.10"
1040 | neo-async "^2.5.0"
1041 | node-dir "^0.1.17"
1042 | recast "^0.20.4"
1043 | temp "^0.8.1"
1044 | write-file-atomic "^2.3.0"
1045 |
1046 | jsesc@^2.5.1:
1047 | version "2.5.2"
1048 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1049 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1050 |
1051 | json5@^2.1.2:
1052 | version "2.2.0"
1053 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
1054 | integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
1055 | dependencies:
1056 | minimist "^1.2.5"
1057 |
1058 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
1059 | version "3.2.2"
1060 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
1061 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
1062 | dependencies:
1063 | is-buffer "^1.1.5"
1064 |
1065 | kind-of@^4.0.0:
1066 | version "4.0.0"
1067 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
1068 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
1069 | dependencies:
1070 | is-buffer "^1.1.5"
1071 |
1072 | kind-of@^5.0.0:
1073 | version "5.1.0"
1074 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
1075 | integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
1076 |
1077 | kind-of@^6.0.0, kind-of@^6.0.2:
1078 | version "6.0.3"
1079 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
1080 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
1081 |
1082 | locate-path@^3.0.0:
1083 | version "3.0.0"
1084 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
1085 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
1086 | dependencies:
1087 | p-locate "^3.0.0"
1088 | path-exists "^3.0.0"
1089 |
1090 | make-dir@^2.0.0, make-dir@^2.1.0:
1091 | version "2.1.0"
1092 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
1093 | integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
1094 | dependencies:
1095 | pify "^4.0.1"
1096 | semver "^5.6.0"
1097 |
1098 | map-cache@^0.2.2:
1099 | version "0.2.2"
1100 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
1101 | integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
1102 |
1103 | map-visit@^1.0.0:
1104 | version "1.0.0"
1105 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
1106 | integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
1107 | dependencies:
1108 | object-visit "^1.0.0"
1109 |
1110 | merge-stream@^2.0.0:
1111 | version "2.0.0"
1112 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
1113 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1114 |
1115 | micromatch@^3.1.10:
1116 | version "3.1.10"
1117 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
1118 | integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
1119 | dependencies:
1120 | arr-diff "^4.0.0"
1121 | array-unique "^0.3.2"
1122 | braces "^2.3.1"
1123 | define-property "^2.0.2"
1124 | extend-shallow "^3.0.2"
1125 | extglob "^2.0.4"
1126 | fragment-cache "^0.2.1"
1127 | kind-of "^6.0.2"
1128 | nanomatch "^1.2.9"
1129 | object.pick "^1.3.0"
1130 | regex-not "^1.0.0"
1131 | snapdragon "^0.8.1"
1132 | to-regex "^3.0.2"
1133 |
1134 | mimic-fn@^2.1.0:
1135 | version "2.1.0"
1136 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
1137 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
1138 |
1139 | minimatch@^3.0.2, minimatch@^3.0.4:
1140 | version "3.0.4"
1141 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1142 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1143 | dependencies:
1144 | brace-expansion "^1.1.7"
1145 |
1146 | minimist@^1.2.5:
1147 | version "1.2.5"
1148 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
1149 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1150 |
1151 | mixin-deep@^1.2.0:
1152 | version "1.3.2"
1153 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
1154 | integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
1155 | dependencies:
1156 | for-in "^1.0.2"
1157 | is-extendable "^1.0.1"
1158 |
1159 | ms@2.0.0:
1160 | version "2.0.0"
1161 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1162 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
1163 |
1164 | ms@2.1.2:
1165 | version "2.1.2"
1166 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1167 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1168 |
1169 | nanomatch@^1.2.9:
1170 | version "1.2.13"
1171 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
1172 | integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
1173 | dependencies:
1174 | arr-diff "^4.0.0"
1175 | array-unique "^0.3.2"
1176 | define-property "^2.0.2"
1177 | extend-shallow "^3.0.2"
1178 | fragment-cache "^0.2.1"
1179 | is-windows "^1.0.2"
1180 | kind-of "^6.0.2"
1181 | object.pick "^1.3.0"
1182 | regex-not "^1.0.0"
1183 | snapdragon "^0.8.1"
1184 | to-regex "^3.0.1"
1185 |
1186 | neo-async@^2.5.0:
1187 | version "2.6.2"
1188 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
1189 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
1190 |
1191 | node-dir@^0.1.17:
1192 | version "0.1.17"
1193 | resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5"
1194 | integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=
1195 | dependencies:
1196 | minimatch "^3.0.2"
1197 |
1198 | node-modules-regexp@^1.0.0:
1199 | version "1.0.0"
1200 | resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
1201 | integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
1202 |
1203 | node-releases@^1.1.71:
1204 | version "1.1.73"
1205 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20"
1206 | integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==
1207 |
1208 | npm-run-path@^4.0.1:
1209 | version "4.0.1"
1210 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
1211 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
1212 | dependencies:
1213 | path-key "^3.0.0"
1214 |
1215 | object-copy@^0.1.0:
1216 | version "0.1.0"
1217 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
1218 | integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
1219 | dependencies:
1220 | copy-descriptor "^0.1.0"
1221 | define-property "^0.2.5"
1222 | kind-of "^3.0.3"
1223 |
1224 | object-keys@^1.0.12, object-keys@^1.1.1:
1225 | version "1.1.1"
1226 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1227 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1228 |
1229 | object-visit@^1.0.0:
1230 | version "1.0.1"
1231 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
1232 | integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
1233 | dependencies:
1234 | isobject "^3.0.0"
1235 |
1236 | object.assign@^4.1.0:
1237 | version "4.1.2"
1238 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
1239 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
1240 | dependencies:
1241 | call-bind "^1.0.0"
1242 | define-properties "^1.1.3"
1243 | has-symbols "^1.0.1"
1244 | object-keys "^1.1.1"
1245 |
1246 | object.pick@^1.3.0:
1247 | version "1.3.0"
1248 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
1249 | integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
1250 | dependencies:
1251 | isobject "^3.0.1"
1252 |
1253 | once@^1.3.0:
1254 | version "1.4.0"
1255 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1256 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1257 | dependencies:
1258 | wrappy "1"
1259 |
1260 | onetime@^5.1.2:
1261 | version "5.1.2"
1262 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
1263 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
1264 | dependencies:
1265 | mimic-fn "^2.1.0"
1266 |
1267 | p-limit@^2.0.0:
1268 | version "2.3.0"
1269 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
1270 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
1271 | dependencies:
1272 | p-try "^2.0.0"
1273 |
1274 | p-locate@^3.0.0:
1275 | version "3.0.0"
1276 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
1277 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
1278 | dependencies:
1279 | p-limit "^2.0.0"
1280 |
1281 | p-try@^2.0.0:
1282 | version "2.2.0"
1283 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1284 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
1285 |
1286 | pascalcase@^0.1.1:
1287 | version "0.1.1"
1288 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
1289 | integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
1290 |
1291 | path-exists@^3.0.0:
1292 | version "3.0.0"
1293 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
1294 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
1295 |
1296 | path-is-absolute@^1.0.0:
1297 | version "1.0.1"
1298 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1299 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1300 |
1301 | path-key@^3.0.0, path-key@^3.1.0:
1302 | version "3.1.1"
1303 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1304 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1305 |
1306 | pify@^4.0.1:
1307 | version "4.0.1"
1308 | resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
1309 | integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
1310 |
1311 | pirates@^4.0.0:
1312 | version "4.0.1"
1313 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
1314 | integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==
1315 | dependencies:
1316 | node-modules-regexp "^1.0.0"
1317 |
1318 | pkg-dir@^3.0.0:
1319 | version "3.0.0"
1320 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
1321 | integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
1322 | dependencies:
1323 | find-up "^3.0.0"
1324 |
1325 | posix-character-classes@^0.1.0:
1326 | version "0.1.1"
1327 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
1328 | integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
1329 |
1330 | prettier@^2.3.2:
1331 | version "2.3.2"
1332 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d"
1333 | integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==
1334 |
1335 | recast@^0.20.4:
1336 | version "0.20.4"
1337 | resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.4.tgz#db55983eac70c46b3fff96c8e467d65ffb4a7abc"
1338 | integrity sha512-6qLIBGGRcwjrTZGIiBpJVC/NeuXpogXNyRQpqU1zWPUigCphvApoCs9KIwDYh1eDuJ6dAFlQoi/QUyE5KQ6RBQ==
1339 | dependencies:
1340 | ast-types "0.14.2"
1341 | esprima "~4.0.0"
1342 | source-map "~0.6.1"
1343 | tslib "^2.0.1"
1344 |
1345 | regex-not@^1.0.0, regex-not@^1.0.2:
1346 | version "1.0.2"
1347 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
1348 | integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
1349 | dependencies:
1350 | extend-shallow "^3.0.2"
1351 | safe-regex "^1.1.0"
1352 |
1353 | repeat-element@^1.1.2:
1354 | version "1.1.4"
1355 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
1356 | integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
1357 |
1358 | repeat-string@^1.6.1:
1359 | version "1.6.1"
1360 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
1361 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
1362 |
1363 | resolve-url@^0.2.1:
1364 | version "0.2.1"
1365 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
1366 | integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
1367 |
1368 | ret@~0.1.10:
1369 | version "0.1.15"
1370 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
1371 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
1372 |
1373 | rimraf@~2.6.2:
1374 | version "2.6.3"
1375 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
1376 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
1377 | dependencies:
1378 | glob "^7.1.3"
1379 |
1380 | safe-buffer@~5.1.1:
1381 | version "5.1.2"
1382 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1383 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1384 |
1385 | safe-regex@^1.1.0:
1386 | version "1.1.0"
1387 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
1388 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
1389 | dependencies:
1390 | ret "~0.1.10"
1391 |
1392 | semver@^5.6.0:
1393 | version "5.7.1"
1394 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
1395 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1396 |
1397 | semver@^6.3.0:
1398 | version "6.3.0"
1399 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1400 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1401 |
1402 | set-value@^2.0.0, set-value@^2.0.1:
1403 | version "2.0.1"
1404 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
1405 | integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
1406 | dependencies:
1407 | extend-shallow "^2.0.1"
1408 | is-extendable "^0.1.1"
1409 | is-plain-object "^2.0.3"
1410 | split-string "^3.0.1"
1411 |
1412 | shallow-clone@^3.0.0:
1413 | version "3.0.1"
1414 | resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
1415 | integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
1416 | dependencies:
1417 | kind-of "^6.0.2"
1418 |
1419 | shebang-command@^2.0.0:
1420 | version "2.0.0"
1421 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1422 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1423 | dependencies:
1424 | shebang-regex "^3.0.0"
1425 |
1426 | shebang-regex@^3.0.0:
1427 | version "3.0.0"
1428 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1429 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1430 |
1431 | signal-exit@^3.0.2, signal-exit@^3.0.3:
1432 | version "3.0.3"
1433 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
1434 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
1435 |
1436 | snapdragon-node@^2.0.1:
1437 | version "2.1.1"
1438 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
1439 | integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
1440 | dependencies:
1441 | define-property "^1.0.0"
1442 | isobject "^3.0.0"
1443 | snapdragon-util "^3.0.1"
1444 |
1445 | snapdragon-util@^3.0.1:
1446 | version "3.0.1"
1447 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
1448 | integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
1449 | dependencies:
1450 | kind-of "^3.2.0"
1451 |
1452 | snapdragon@^0.8.1:
1453 | version "0.8.2"
1454 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
1455 | integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
1456 | dependencies:
1457 | base "^0.11.1"
1458 | debug "^2.2.0"
1459 | define-property "^0.2.5"
1460 | extend-shallow "^2.0.1"
1461 | map-cache "^0.2.2"
1462 | source-map "^0.5.6"
1463 | source-map-resolve "^0.5.0"
1464 | use "^3.1.0"
1465 |
1466 | source-map-resolve@^0.5.0:
1467 | version "0.5.3"
1468 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
1469 | integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
1470 | dependencies:
1471 | atob "^2.1.2"
1472 | decode-uri-component "^0.2.0"
1473 | resolve-url "^0.2.1"
1474 | source-map-url "^0.4.0"
1475 | urix "^0.1.0"
1476 |
1477 | source-map-support@^0.5.16:
1478 | version "0.5.19"
1479 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
1480 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
1481 | dependencies:
1482 | buffer-from "^1.0.0"
1483 | source-map "^0.6.0"
1484 |
1485 | source-map-url@^0.4.0:
1486 | version "0.4.1"
1487 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
1488 | integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
1489 |
1490 | source-map@^0.5.0, source-map@^0.5.6:
1491 | version "0.5.7"
1492 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1493 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1494 |
1495 | source-map@^0.6.0, source-map@~0.6.1:
1496 | version "0.6.1"
1497 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1498 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1499 |
1500 | split-string@^3.0.1, split-string@^3.0.2:
1501 | version "3.1.0"
1502 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
1503 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
1504 | dependencies:
1505 | extend-shallow "^3.0.0"
1506 |
1507 | static-extend@^0.1.1:
1508 | version "0.1.2"
1509 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
1510 | integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
1511 | dependencies:
1512 | define-property "^0.2.5"
1513 | object-copy "^0.1.0"
1514 |
1515 | strip-final-newline@^2.0.0:
1516 | version "2.0.0"
1517 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
1518 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
1519 |
1520 | supports-color@^5.3.0:
1521 | version "5.5.0"
1522 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1523 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1524 | dependencies:
1525 | has-flag "^3.0.0"
1526 |
1527 | supports-color@^7.1.0:
1528 | version "7.2.0"
1529 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1530 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1531 | dependencies:
1532 | has-flag "^4.0.0"
1533 |
1534 | temp@^0.8.1:
1535 | version "0.8.4"
1536 | resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2"
1537 | integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==
1538 | dependencies:
1539 | rimraf "~2.6.2"
1540 |
1541 | to-fast-properties@^2.0.0:
1542 | version "2.0.0"
1543 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1544 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1545 |
1546 | to-object-path@^0.3.0:
1547 | version "0.3.0"
1548 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
1549 | integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
1550 | dependencies:
1551 | kind-of "^3.0.2"
1552 |
1553 | to-regex-range@^2.1.0:
1554 | version "2.1.1"
1555 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
1556 | integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
1557 | dependencies:
1558 | is-number "^3.0.0"
1559 | repeat-string "^1.6.1"
1560 |
1561 | to-regex@^3.0.1, to-regex@^3.0.2:
1562 | version "3.0.2"
1563 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
1564 | integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
1565 | dependencies:
1566 | define-property "^2.0.2"
1567 | extend-shallow "^3.0.2"
1568 | regex-not "^1.0.2"
1569 | safe-regex "^1.1.0"
1570 |
1571 | tslib@^2.0.1:
1572 | version "2.3.0"
1573 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
1574 | integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
1575 |
1576 | union-value@^1.0.0:
1577 | version "1.0.1"
1578 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
1579 | integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
1580 | dependencies:
1581 | arr-union "^3.1.0"
1582 | get-value "^2.0.6"
1583 | is-extendable "^0.1.1"
1584 | set-value "^2.0.1"
1585 |
1586 | unset-value@^1.0.0:
1587 | version "1.0.0"
1588 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
1589 | integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
1590 | dependencies:
1591 | has-value "^0.3.1"
1592 | isobject "^3.0.0"
1593 |
1594 | urix@^0.1.0:
1595 | version "0.1.0"
1596 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
1597 | integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
1598 |
1599 | use@^3.1.0:
1600 | version "3.1.1"
1601 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
1602 | integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
1603 |
1604 | which@^2.0.1:
1605 | version "2.0.2"
1606 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1607 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1608 | dependencies:
1609 | isexe "^2.0.0"
1610 |
1611 | wrappy@1:
1612 | version "1.0.2"
1613 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1614 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1615 |
1616 | write-file-atomic@^2.3.0:
1617 | version "2.4.3"
1618 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
1619 | integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
1620 | dependencies:
1621 | graceful-fs "^4.1.11"
1622 | imurmurhash "^0.1.4"
1623 | signal-exit "^3.0.2"
1624 |
--------------------------------------------------------------------------------