chore(nx): storybook schematics for react

This commit is contained in:
Isaac Mann 2019-11-01 15:19:33 -04:00 committed by Victor Savkin
parent 49e6a58a03
commit 8b8d30eff1
32 changed files with 965 additions and 163 deletions

View File

@ -0,0 +1,49 @@
# storybook-configuration
Create stories/specs for all components declared in a library
## Usage
```bash
ng generate storybook-configuration ...
```
By default, Nx will search for `storybook-configuration` in the default collection provisioned in `angular.json`.
You can specify the collection explicitly as follows:
```bash
ng g @nrwl/angular:storybook-configuration ...
```
Show what will be generated without writing to disk:
```bash
ng g storybook-configuration ... --dry-run
```
## Options
### configureCypress
Type: `boolean`
Run the cypress-configure schematic
### generateCypressSpecs
Type: `boolean`
Automatically generate \*.spec.ts files in the cypress e2e app generated by the cypress-configure schematic
### generateStories
Type: `boolean`
Automatically generate \*.stories.ts files for components declared in this library
### name
Type: `string`
Library name

View File

@ -0,0 +1,37 @@
# storybook-configuration
Set up storybook for a react library
## Usage
```bash
ng generate storybook-configuration ...
```
By default, Nx will search for `storybook-configuration` in the default collection provisioned in `angular.json`.
You can specify the collection explicitly as follows:
```bash
ng g @nrwl/react:storybook-configuration ...
```
Show what will be generated without writing to disk:
```bash
ng g storybook-configuration ... --dry-run
```
## Options
### configureCypress
Type: `boolean`
Run the cypress-configure schematic
### name
Type: `string`
Library name

View File

@ -30,20 +30,16 @@ Type: `boolean`
Run the cypress-configure schematic
### generateCypressSpecs
Type: `boolean`
Automatically generate \*.spec.ts files in the cypress e2e app generated by the cypress-configure schematic
### generateStories
Type: `boolean`
Automatically generate \*.stories.ts files for components declared in this library
### name
Type: `string`
Library name
### uiFramework
Type: `string`
Possible values: `@storybook/angular`, `@storybook/react`, `@storybook/web`
Storybook UI Framework to use

View File

@ -0,0 +1,49 @@
# storybook-configuration
Create stories/specs for all components declared in a library
## Usage
```bash
nx generate storybook-configuration ...
```
By default, Nx will search for `storybook-configuration` in the default collection provisioned in `workspace.json`.
You can specify the collection explicitly as follows:
```bash
nx g @nrwl/angular:storybook-configuration ...
```
Show what will be generated without writing to disk:
```bash
nx g storybook-configuration ... --dry-run
```
## Options
### configureCypress
Type: `boolean`
Run the cypress-configure schematic
### generateCypressSpecs
Type: `boolean`
Automatically generate \*.spec.ts files in the cypress e2e app generated by the cypress-configure schematic
### generateStories
Type: `boolean`
Automatically generate \*.stories.ts files for components declared in this library
### name
Type: `string`
Library name

View File

@ -0,0 +1,37 @@
# storybook-configuration
Set up storybook for a react library
## Usage
```bash
nx generate storybook-configuration ...
```
By default, Nx will search for `storybook-configuration` in the default collection provisioned in `workspace.json`.
You can specify the collection explicitly as follows:
```bash
nx g @nrwl/react:storybook-configuration ...
```
Show what will be generated without writing to disk:
```bash
nx g storybook-configuration ... --dry-run
```
## Options
### configureCypress
Type: `boolean`
Run the cypress-configure schematic
### name
Type: `string`
Library name

View File

@ -30,20 +30,16 @@ Type: `boolean`
Run the cypress-configure schematic
### generateCypressSpecs
Type: `boolean`
Automatically generate \*.spec.ts files in the cypress e2e app generated by the cypress-configure schematic
### generateStories
Type: `boolean`
Automatically generate \*.stories.ts files for components declared in this library
### name
Type: `string`
Library name
### uiFramework
Type: `string`
Possible values: `@storybook/angular`, `@storybook/react`, `@storybook/web`
Storybook UI Framework to use

View File

@ -0,0 +1,49 @@
# storybook-configuration
Create stories/specs for all components declared in a library
## Usage
```bash
nx generate storybook-configuration ...
```
By default, Nx will search for `storybook-configuration` in the default collection provisioned in `workspace.json`.
You can specify the collection explicitly as follows:
```bash
nx g @nrwl/angular:storybook-configuration ...
```
Show what will be generated without writing to disk:
```bash
nx g storybook-configuration ... --dry-run
```
## Options
### configureCypress
Type: `boolean`
Run the cypress-configure schematic
### generateCypressSpecs
Type: `boolean`
Automatically generate \*.spec.ts files in the cypress e2e app generated by the cypress-configure schematic
### generateStories
Type: `boolean`
Automatically generate \*.stories.ts files for components declared in this library
### name
Type: `string`
Library name

View File

@ -0,0 +1,37 @@
# storybook-configuration
Set up storybook for a react library
## Usage
```bash
nx generate storybook-configuration ...
```
By default, Nx will search for `storybook-configuration` in the default collection provisioned in `workspace.json`.
You can specify the collection explicitly as follows:
```bash
nx g @nrwl/react:storybook-configuration ...
```
Show what will be generated without writing to disk:
```bash
nx g storybook-configuration ... --dry-run
```
## Options
### configureCypress
Type: `boolean`
Run the cypress-configure schematic
### name
Type: `string`
Library name

View File

@ -30,20 +30,16 @@ Type: `boolean`
Run the cypress-configure schematic
### generateCypressSpecs
Type: `boolean`
Automatically generate \*.spec.ts files in the cypress e2e app generated by the cypress-configure schematic
### generateStories
Type: `boolean`
Automatically generate \*.stories.ts files for components declared in this library
### name
Type: `string`
Library name
### uiFramework
Type: `string`
Possible values: `@storybook/angular`, `@storybook/react`, `@storybook/web`
Storybook UI Framework to use

View File

@ -21,17 +21,20 @@ forEachCli(() => {
const mylib = uniq('test-ui-lib');
createTestUILib(mylib);
const mylib2 = uniq('test-ui-lib2');
createTestUILib(mylib2);
const mylib2 = uniq('test-ui-lib-react');
runCLI(`generate @nrwl/react:lib ${mylib2} --no-interactive`);
runCLI(
`generate @nrwl/react:component TestComponent --project=${mylib2} --no-interactive`
);
runCLI(
`generate @nrwl/storybook:configuration ${mylib} --configureCypress --generateStories --generateCypressSpecs --no-interactive`
`generate @nrwl/angular:storybook-configuration ${mylib} --configureCypress --generateStories --generateCypressSpecs --no-interactive`
);
runCLI(
`generate @nrwl/storybook:configuration ${mylib} --no-interactive`
);
runCLI(
`generate @nrwl/storybook:configuration ${mylib2} --configureCypress --generateStories --generateCypressSpecs --no-interactive`
`generate @nrwl/react:storybook-configuration ${mylib2} --configureCypress --no-interactive`
);
expect(

View File

@ -64,6 +64,7 @@
"@testing-library/react": "9.3.0",
"@storybook/core": "^5.2.5",
"@storybook/angular": "^5.2.5",
"@storybook/react": "^5.2.5",
"@storybook/addon-knobs": "^5.2.5",
"@types/express": "4.17.0",
"@types/fast-levenshtein": "^0.0.1",

View File

@ -55,6 +55,13 @@
"description": "Add an upgrade module"
},
"storybook-configuration": {
"factory": "./src/schematics/storybook-configuration/configuration",
"schema": "./src/schematics/storybook-configuration/schema.json",
"description": "Create stories/specs for all components declared in a library",
"hidden": false
},
"stories": {
"factory": "./src/schematics/stories/stories",
"schema": "./src/schematics/stories/schema.json",

View File

@ -32,7 +32,6 @@ export function createAllStories(
return (tree: Tree, context: SchematicContext) => {
context.logger.debug('adding .storybook folder to lib');
debugger;
const libPath = getProjectConfig(tree, projectName).sourceRoot + '/lib';
return chain(
tree

View File

@ -0,0 +1,51 @@
import { Tree } from '@angular-devkit/schematics';
import { runSchematic } from '../../utils/testing';
import { StorybookConfigureSchema } from './schema';
import { createTestUILib } from '../stories/stories.spec';
describe('schematic:configuration', () => {
let appTree: Tree;
beforeEach(async () => {
appTree = await createTestUILib('test-ui-lib');
});
it('should configure everything at once', async () => {
const tree = await runSchematic(
'storybook-configuration',
<StorybookConfigureSchema>{
name: 'test-ui-lib',
configureCypress: true,
generateCypressSpecs: true,
generateStories: true
},
appTree
);
expect(tree.exists('libs/test-ui-lib/.storybook/addons.js')).toBeTruthy();
expect(tree.exists('libs/test-ui-lib/.storybook/config.js')).toBeTruthy();
expect(
tree.exists('libs/test-ui-lib/.storybook/tsconfig.json')
).toBeTruthy();
expect(tree.exists('apps/test-ui-lib-e2e/cypress.json')).toBeTruthy();
expect(
tree.exists(
'libs/test-ui-lib/src/lib/test-button/test-button.component.stories.ts'
)
).toBeTruthy();
expect(
tree.exists(
'libs/test-ui-lib/src/lib/test-other/test-other.component.stories.ts'
)
).toBeTruthy();
expect(
tree.exists(
'apps/test-ui-lib-e2e/src/integration/test-button/test-button.component.spec.ts'
)
).toBeTruthy();
expect(
tree.exists(
'apps/test-ui-lib-e2e/src/integration/test-other/test-other.component.spec.ts'
)
).toBeTruthy();
});
});

View File

@ -0,0 +1,29 @@
import {
chain,
externalSchematic,
Rule,
schematic
} from '@angular-devkit/schematics';
import { StorybookStoriesSchema } from '../stories/stories';
import { StorybookConfigureSchema } from './schema';
export default function(schema: StorybookConfigureSchema): Rule {
return chain([
externalSchematic('@nrwl/storybook', 'configuration', {
name: schema.name,
uiFramework: '@storybook/angular',
configureCypress: schema.configureCypress
}),
generateStories(schema)
]);
}
function generateStories(schema: StorybookConfigureSchema): Rule {
return (tree, context) => {
return schematic<StorybookStoriesSchema>('stories', {
name: schema.name,
generateCypressSpecs:
schema.configureCypress && schema.generateCypressSpecs
});
};
}

View File

@ -0,0 +1,6 @@
export interface StorybookConfigureSchema {
name: string;
configureCypress: boolean;
generateStories: boolean;
generateCypressSpecs: boolean;
}

View File

@ -0,0 +1,31 @@
{
"$schema": "http://json-schema.org/schema",
"id": "storybook-configure",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Library name",
"$default": {
"$source": "argv",
"index": 0
}
},
"configureCypress": {
"type": "boolean",
"description": "Run the cypress-configure schematic",
"x-prompt": "Configure a cypress e2e app to run against the storybook instance?"
},
"generateStories": {
"type": "boolean",
"description": "Automatically generate *.stories.ts files for components declared in this library",
"x-prompt": "Automatically generate *.stories.ts files for components declared in this library?"
},
"generateCypressSpecs": {
"type": "boolean",
"description": "Automatically generate *.spec.ts files in the cypress e2e app generated by the cypress-configure schematic",
"x-prompt": "Automatically generate *.spec.ts files in the cypress e2e app generated by the cypress-configure schematic?"
}
},
"required": ["name"]
}

View File

@ -37,6 +37,13 @@
"schema": "./src/schematics/redux/schema.json",
"description": "Create a redux slice for a project",
"aliases": ["slice"]
},
"storybook-configuration": {
"factory": "./src/schematics/storybook-configuration/configuration",
"schema": "./src/schematics/storybook-configuration/schema.json",
"description": "Set up storybook for a react library",
"hidden": false
}
}
}

View File

@ -0,0 +1,36 @@
import { Tree, schematic, externalSchematic } from '@angular-devkit/schematics';
import { runSchematic, callRule } from '../../utils/testing';
import { StorybookConfigureSchema } from './schema';
import { createEmptyWorkspace } from '@nrwl/workspace/testing';
describe('react:storybook-configuration', () => {
it('should configure everything at once', async () => {
const appTree = await createTestUILib('test-ui-lib');
const tree = await runSchematic(
'storybook-configuration',
<StorybookConfigureSchema>{
name: 'test-ui-lib',
configureCypress: true
},
appTree
);
expect(tree.exists('libs/test-ui-lib/.storybook/addons.js')).toBeTruthy();
expect(tree.exists('libs/test-ui-lib/.storybook/config.js')).toBeTruthy();
expect(
tree.exists('libs/test-ui-lib/.storybook/tsconfig.json')
).toBeTruthy();
expect(tree.exists('apps/test-ui-lib-e2e/cypress.json')).toBeTruthy();
});
});
export async function createTestUILib(libName: string): Promise<Tree> {
let appTree = Tree.empty();
appTree = createEmptyWorkspace(appTree);
appTree = await callRule(
externalSchematic('@nrwl/react', 'library', {
name: libName
}),
appTree
);
return appTree;
}

View File

@ -0,0 +1,12 @@
import { chain, externalSchematic, Rule } from '@angular-devkit/schematics';
import { StorybookConfigureSchema } from './schema';
export default function(schema: StorybookConfigureSchema): Rule {
return chain([
externalSchematic('@nrwl/storybook', 'configuration', {
name: schema.name,
uiFramework: '@storybook/react',
configureCypress: schema.configureCypress
})
]);
}

View File

@ -0,0 +1,4 @@
export interface StorybookConfigureSchema {
name: string;
configureCypress: boolean;
}

View File

@ -0,0 +1,21 @@
{
"$schema": "http://json-schema.org/schema",
"id": "storybook-configure",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Library name",
"$default": {
"$source": "argv",
"index": 0
}
},
"configureCypress": {
"type": "boolean",
"description": "Run the cypress-configure schematic",
"x-prompt": "Configure a cypress e2e app to run against the storybook instance?"
}
},
"required": ["name"]
}

View File

@ -9,10 +9,25 @@ const testRunner = new SchematicTestRunner(
join(__dirname, '../../collection.json')
);
export function runSchematic(schematicName: string, options: any, tree: Tree) {
export function runSchematic<SchemaOptions = any>(
schematicName: string,
options: SchemaOptions,
tree: Tree
) {
return testRunner.runSchematicAsync(schematicName, options, tree).toPromise();
}
export function runExternalSchematic<SchemaOptions = any>(
collectionName: string,
schematicName: string,
options: SchemaOptions,
tree: Tree
) {
return testRunner
.runExternalSchematicAsync(collectionName, schematicName, options, tree)
.toPromise();
}
export function callRule(rule: Rule, tree: Tree) {
return testRunner.callRule(rule, tree).toPromise();
}

View File

@ -56,73 +56,4 @@ describe('schematic:configuration', () => {
);
expect(tsconfigLibJson.exclude.includes('**/*.stories.ts')).toBeTruthy();
});
it('should configure everything at once', async () => {
const tree = await runSchematic(
'configuration',
<StorybookConfigureSchema>{
name: 'test-ui-lib',
configureCypress: true,
generateCypressSpecs: true,
generateStories: true
},
appTree
);
expect(tree.exists('libs/test-ui-lib/.storybook/addons.js')).toBeTruthy();
expect(tree.exists('libs/test-ui-lib/.storybook/config.js')).toBeTruthy();
expect(
tree.exists('libs/test-ui-lib/.storybook/tsconfig.json')
).toBeTruthy();
expect(tree.exists('apps/test-ui-lib-e2e/cypress.json')).toBeTruthy();
expect(
tree.exists(
'libs/test-ui-lib/src/lib/test-button/test-button.component.stories.ts'
)
).toBeTruthy();
expect(
tree.exists(
'libs/test-ui-lib/src/lib/test-other/test-other.component.stories.ts'
)
).toBeTruthy();
expect(
tree.exists(
'apps/test-ui-lib-e2e/src/integration/test-button/test-button.component.spec.ts'
)
).toBeTruthy();
expect(
tree.exists(
'apps/test-ui-lib-e2e/src/integration/test-other/test-other.component.spec.ts'
)
).toBeTruthy();
});
// it('should launch cypress and storybook successfully', async done => {
// const tree = await runSchematic(
// 'configuration',
// <StorybookConfigureSchema>{
// name: 'test-ui-lib',
// configureCypress: true,
// generateCypressSpecs: true,
// generateStories: true
// },
// appTree
// );
// const registry = new schema.CoreSchemaRegistry();
// registry.addPostTransform(schema.transforms.addUndefinedDefaults);
// const testArchitectHost = new TestingArchitectHost('/root', '/root');
// const architect = new Architect(testArchitectHost, registry);
// await testArchitectHost.addBuilderFromPackage(
// path.join(__dirname, '../../..')
// );
// const run = await architect.scheduleTarget(
// targetFromTargetString('test-ui-lib-e2e:e2e')
// );
// expect(await run.result).toEqual(
// jasmine.objectContaining({
// success: true
// })
// );
// done();
// });
});

View File

@ -24,20 +24,13 @@ export default function(schema: StorybookConfigureSchema): Rule {
return chain([
schematic('ng-add', {}),
createRootStorybookDir(),
createLibStorybookDir(schema.name),
createLibStorybookDir(schema.name, schema.uiFramework),
configureTsConfig(schema.name),
addStorybookTask(schema.name),
addStorybookTask(schema.name, schema.uiFramework),
schema.configureCypress
? schematic<CypressConfigureSchema>('cypress-project', {
name: schema.name
})
: () => {},
schema.generateStories
? externalSchematic<StorybookStoriesSchema>('@nrwl/angular', 'stories', {
name: schema.name,
generateCypressSpecs:
schema.configureCypress && schema.generateCypressSpecs
})
: () => {}
]);
}
@ -53,7 +46,7 @@ function createRootStorybookDir(): Rule {
};
}
function createLibStorybookDir(projectName: string): Rule {
function createLibStorybookDir(projectName: string, uiFramework: string): Rule {
return (tree: Tree, context: SchematicContext) => {
context.logger.debug('adding .storybook folder to lib');
const projectConfig = getProjectConfig(tree, projectName);
@ -62,6 +55,7 @@ function createLibStorybookDir(projectName: string): Rule {
applyWithSkipExisting(url('./lib-files'), [
template({
tmpl: '',
uiFramework,
offsetFromRoot: offsetFromRoot(projectConfig.root)
}),
move(projectConfig.root)
@ -94,18 +88,9 @@ function configureTsConfig(projectName: string): Rule {
};
}
function addStorybookTask(projectName: string): Rule {
function addStorybookTask(projectName: string, uiFramework: string): Rule {
return updateWorkspace(workspace => {
const projectConfig = workspace.projects.get(projectName);
let uiFramework = '@storybook/react';
try {
if (
readJsonFile(projectConfig.root + '/tsconfig.lib.json')
.angularCompilerOptions
) {
uiFramework = '@storybook/angular';
}
} catch (e) {}
projectConfig.targets.set('storybook', {
builder: '@nrwl/storybook:storybook',
options: {

View File

@ -1,3 +1,3 @@
import { configure } from '@storybook/angular';
import { configure } from '<%= uiFramework %>';
configure(require.context('../src/lib', true, /\.stories\.ts$/), module);

View File

@ -24,12 +24,17 @@ module.exports = async ({ config, mode }) => {
});
config.module.rules = r;
config.resolve.extensions.push('.tsx');
let scssLoader = config.module.rules.find(i => !!'a.scss'.match(i.test));
scssLoader.use = ['to-string-loader', ...scssLoader.use];
if (scssLoader && scssLoader.use) {
scssLoader.use = ['to-string-loader', ...scssLoader.use];
}
let htmlLoader = config.module.rules.find(i => !!'a.html'.match(i.test));
htmlLoader.loader = 'html-loader';
if (htmlLoader) {
htmlLoader.loader = 'html-loader';
}
// Return the altered config
return config;

View File

@ -1,6 +1,5 @@
export interface StorybookConfigureSchema {
name: string;
uiFramework: string;
configureCypress: boolean;
generateStories: boolean;
generateCypressSpecs: boolean;
}

View File

@ -11,17 +11,16 @@
"index": 0
}
},
"uiFramework": {
"type": "string",
"description": "Storybook UI Framework to use",
"enum": ["@storybook/angular", "@storybook/react", "@storybook/web"],
"x-prompt": "What UI framework plugin should storybook use?"
},
"configureCypress": {
"type": "boolean",
"description": "Run the cypress-configure schematic"
},
"generateStories": {
"type": "boolean",
"description": "Automatically generate *.stories.ts files for components declared in this library"
},
"generateCypressSpecs": {
"type": "boolean",
"description": "Automatically generate *.spec.ts files in the cypress e2e app generated by the cypress-configure schematic"
"description": "Run the cypress-configure schematic",
"x-prompt": "Configure a cypress e2e app to run against the storybook instance?"
}
},
"required": ["name"]

View File

@ -13,8 +13,7 @@ import {
import {
babelCoreVersion,
babelLoaderVersion,
storybookAddonKnobsVersion,
storybookAngularVersion
storybookVersion
} from '../../utils/versions';
import { Schema } from './schema';
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
@ -27,8 +26,9 @@ function checkDependenciesInstalled(): Rule {
context.addTask(new NodePackageInstallTask());
dependencyList.push(
{ name: '@nrwl/storybook', version: '*' },
{ name: '@storybook/angular', version: storybookAngularVersion },
{ name: '@storybook/addon-knobs', version: storybookAddonKnobsVersion },
{ name: '@storybook/angular', version: storybookVersion },
{ name: '@storybook/react', version: storybookVersion },
{ name: '@storybook/addon-knobs', version: storybookVersion },
{ name: 'babel-loader', version: babelLoaderVersion },
{ name: '@babel/core', version: babelCoreVersion },
{ name: 'to-string-loader', version: '*' },

View File

@ -1,4 +1,3 @@
export const storybookAngularVersion = '5.2.5';
export const storybookAddonKnobsVersion = '5.2.5';
export const storybookVersion = '5.2.5';
export const babelCoreVersion = '7.5.4';
export const babelLoaderVersion = '8.0.6';

440
yarn.lock
View File

@ -312,7 +312,7 @@
semver "^5.4.1"
source-map "^0.5.0"
"@babel/core@^7.0.1", "@babel/core@^7.1.0":
"@babel/core@7.6.0", "@babel/core@^7.0.1", "@babel/core@^7.1.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.0.tgz#9b00f73554edd67bebc86df8303ef678be3d7b48"
integrity sha512-FuRhDRtsd6IptKpHXAa+4WPZYY2ZzgowkbLBecEDDSje1X/apG7jQM33or3NdOmjXBKWGOg4JmSiRfUfuTtHXw==
@ -332,6 +332,26 @@
semver "^5.4.1"
source-map "^0.5.0"
"@babel/core@^7.0.0", "@babel/core@^7.4.5":
version "7.6.4"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.4.tgz#6ebd9fe00925f6c3e177bb726a188b5f578088ff"
integrity sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==
dependencies:
"@babel/code-frame" "^7.5.5"
"@babel/generator" "^7.6.4"
"@babel/helpers" "^7.6.2"
"@babel/parser" "^7.6.4"
"@babel/template" "^7.6.0"
"@babel/traverse" "^7.6.3"
"@babel/types" "^7.6.3"
convert-source-map "^1.1.0"
debug "^4.1.0"
json5 "^2.1.0"
lodash "^4.17.13"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.5.0"
"@babel/generator@^7.4.0", "@babel/generator@^7.4.4", "@babel/generator@^7.5.5", "@babel/generator@^7.6.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.0.tgz#e2c21efbfd3293ad819a2359b448f002bfdfda56"
@ -343,6 +363,16 @@
source-map "^0.5.0"
trim-right "^1.0.1"
"@babel/generator@^7.6.3", "@babel/generator@^7.6.4":
version "7.6.4"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671"
integrity sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==
dependencies:
"@babel/types" "^7.6.3"
jsesc "^2.5.1"
lodash "^4.17.13"
source-map "^0.5.0"
"@babel/helper-annotate-as-pure@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
@ -527,6 +557,15 @@
"@babel/traverse" "^7.6.0"
"@babel/types" "^7.6.0"
"@babel/helpers@^7.6.2":
version "7.6.2"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153"
integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==
dependencies:
"@babel/template" "^7.6.0"
"@babel/traverse" "^7.6.2"
"@babel/types" "^7.6.0"
"@babel/highlight@^7.0.0":
version "7.5.0"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
@ -541,6 +580,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.0.tgz#3e05d0647432a8326cb28d0de03895ae5a57f39b"
integrity sha512-+o2q111WEx4srBs7L9eJmcwi655eD8sXniLqMB93TBK9GrNzGrxDWSjiqz2hLU0Ha8MTXFIP0yd9fNdP+m43ZQ==
"@babel/parser@^7.6.3", "@babel/parser@^7.6.4":
version "7.6.4"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.4.tgz#cb9b36a7482110282d5cb6dd424ec9262b473d81"
integrity sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==
"@babel/plugin-proposal-async-generator-functions@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e"
@ -575,6 +619,15 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-decorators" "^7.2.0"
"@babel/plugin-proposal-decorators@7.6.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.6.0.tgz#6659d2572a17d70abd68123e89a12a43d90aa30c"
integrity sha512-ZSyYw9trQI50sES6YxREXKu+4b7MAg6Qx2cvyDDYjP2Hpzd3FleOUwC9cqn1+za8d0A2ZU8SHujxFao956efUg==
dependencies:
"@babel/helper-create-class-features-plugin" "^7.6.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-decorators" "^7.2.0"
"@babel/plugin-proposal-dynamic-import@^7.5.0":
version "7.5.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506"
@ -599,7 +652,7 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.2.0"
"@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.4.4", "@babel/plugin-proposal-object-rest-spread@^7.5.5":
"@babel/plugin-proposal-object-rest-spread@7.5.5", "@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.4.4", "@babel/plugin-proposal-object-rest-spread@^7.5.5":
version "7.5.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58"
integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==
@ -645,6 +698,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-flow@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c"
integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-json-strings@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470"
@ -732,7 +792,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-destructuring@^7.4.4", "@babel/plugin-transform-destructuring@^7.5.0", "@babel/plugin-transform-destructuring@^7.6.0":
"@babel/plugin-transform-destructuring@7.6.0", "@babel/plugin-transform-destructuring@^7.4.4", "@babel/plugin-transform-destructuring@^7.5.0", "@babel/plugin-transform-destructuring@^7.6.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6"
integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==
@ -763,6 +823,22 @@
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-flow-strip-types@7.4.4":
version "7.4.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7"
integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-flow" "^7.2.0"
"@babel/plugin-transform-flow-strip-types@^7.0.0":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.6.3.tgz#8110f153e7360cfd5996eee68706cfad92d85256"
integrity sha512-l0ETkyEofkqFJ9LS6HChNIKtVJw2ylKbhYMlJ5C6df+ldxxaLIyXY4yOdDQQspfFpV8/vDiaWoJlvflstlYNxg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-flow" "^7.2.0"
"@babel/plugin-transform-for-of@^7.4.4":
version "7.4.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
@ -875,6 +951,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-react-constant-elements@^7.0.0":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.6.3.tgz#9fc9ea060b983c7c035acbe481cbe1fb1245bfff"
integrity sha512-1/YogSSU7Tby9rq2VCmhuRg+6pxsHy2rI7w/oo8RKoBt6uBUFG+mk6x13kK+FY1/ggN92HAfg7ADd1v1+NCOKg==
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-react-constant-elements@^7.2.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.6.0.tgz#13b8434fb817d30feebd811256eb402c9a245c9e"
@ -883,7 +967,7 @@
"@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-react-display-name@^7.0.0":
"@babel/plugin-transform-react-display-name@7.2.0", "@babel/plugin-transform-react-display-name@^7.0.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0"
integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==
@ -939,6 +1023,16 @@
resolve "^1.8.1"
semver "^5.5.1"
"@babel/plugin-transform-runtime@7.6.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.0.tgz#85a3cce402b28586138e368fce20ab3019b9713e"
integrity sha512-Da8tMf7uClzwUm/pnJ1S93m/aRXmoYNDD7TkHua8xBDdaAs54uZpTWvEt6NGwmoVMb9mZbntfTqmG2oSzN/7Vg==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
resolve "^1.8.1"
semver "^5.5.1"
"@babel/plugin-transform-shorthand-properties@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
@ -985,6 +1079,15 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-typescript" "^7.2.0"
"@babel/plugin-transform-typescript@^7.6.0":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.6.3.tgz#dddb50cf3b8b2ef70b22e5326e9a91f05a1db13b"
integrity sha512-aiWINBrPMSC3xTXRNM/dfmyYuPNKY/aexYqBgh0HBI5Y+WO5oRAqW/oROYeYHrF4Zw12r9rK4fMk/ZlAmqx/FQ==
dependencies:
"@babel/helper-create-class-features-plugin" "^7.6.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-typescript" "^7.2.0"
"@babel/plugin-transform-unicode-regex@^7.4.4":
version "7.4.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f"
@ -1104,7 +1207,7 @@
js-levenshtein "^1.1.3"
semver "^5.5.0"
"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.4.5":
"@babel/preset-env@7.6.0", "@babel/preset-env@^7.0.0", "@babel/preset-env@^7.4.5":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.0.tgz#aae4141c506100bb2bfaa4ac2a5c12b395619e50"
integrity sha512-1efzxFv/TcPsNXlRhMzRnkBFMeIqBBgzwmZwlFDw5Ubj0AGLeufxugirwZmkkX/ayi3owsSqoQ4fw8LkfK9SYg==
@ -1160,6 +1263,14 @@
js-levenshtein "^1.1.3"
semver "^5.5.0"
"@babel/preset-flow@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2"
integrity sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-flow-strip-types" "^7.0.0"
"@babel/preset-react@7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0"
@ -1171,6 +1282,17 @@
"@babel/plugin-transform-react-jsx-self" "^7.0.0"
"@babel/plugin-transform-react-jsx-source" "^7.0.0"
"@babel/preset-react@^7.0.0":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.6.3.tgz#d5242c828322520205ae4eda5d4f4f618964e2f6"
integrity sha512-07yQhmkZmRAfwREYIQgW0HEwMY9GBJVuPY4Q12UC72AbfaawuupVWa8zQs2tlL+yun45Nv/1KreII/0PLfEsgA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-react-display-name" "^7.0.0"
"@babel/plugin-transform-react-jsx" "^7.0.0"
"@babel/plugin-transform-react-jsx-self" "^7.0.0"
"@babel/plugin-transform-react-jsx-source" "^7.0.0"
"@babel/preset-typescript@7.3.3":
version "7.3.3"
resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.3.3.tgz#88669911053fa16b2b276ea2ede2ca603b3f307a"
@ -1179,6 +1301,14 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-typescript" "^7.3.2"
"@babel/preset-typescript@7.6.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.6.0.tgz#25768cb8830280baf47c45ab1a519a9977498c98"
integrity sha512-4xKw3tTcCm0qApyT6PqM9qniseCE79xGHiUnNdKGdxNsGUc2X7WwZybqIpnTmoukg3nhPceI5KPNzNqLNeIJww==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-typescript" "^7.6.0"
"@babel/runtime-corejs2@7.4.5":
version "7.4.5"
resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.4.5.tgz#3d892f0560df21bafb384dd7727e33853e95d3c9"
@ -1201,7 +1331,7 @@
dependencies:
regenerator-runtime "^0.13.2"
"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0":
"@babel/runtime@7.6.0", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.0.tgz#4fc1d642a9fd0299754e8b5de62c631cf5568205"
integrity sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ==
@ -1246,6 +1376,21 @@
globals "^11.1.0"
lodash "^4.17.13"
"@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.3.tgz#66d7dba146b086703c0fb10dd588b7364cec47f9"
integrity sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==
dependencies:
"@babel/code-frame" "^7.5.5"
"@babel/generator" "^7.6.3"
"@babel/helper-function-name" "^7.1.0"
"@babel/helper-split-export-declaration" "^7.4.4"
"@babel/parser" "^7.6.3"
"@babel/types" "^7.6.3"
debug "^4.1.0"
globals "^11.1.0"
lodash "^4.17.13"
"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0":
version "7.6.1"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648"
@ -1255,6 +1400,15 @@
lodash "^4.17.13"
to-fast-properties "^2.0.0"
"@babel/types@^7.6.3":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09"
integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==
dependencies:
esutils "^2.0.2"
lodash "^4.17.13"
to-fast-properties "^2.0.0"
"@cnakazawa/watch@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef"
@ -2056,6 +2210,34 @@
pretty-hrtime "^1.0.3"
regenerator-runtime "^0.12.1"
"@storybook/react@^5.2.5":
version "5.2.5"
resolved "https://registry.yarnpkg.com/@storybook/react/-/react-5.2.5.tgz#f0082d75b14a10642986c7934fcbc8ff855b07fe"
integrity sha512-yPOL0jBEfYo3YkRJkXnIzAQ3L9lTju27mg+0bW+y3lpJAM23ffAxrRyOGV7bzj99EA7dak2lw8Hj4yVHTplBdg==
dependencies:
"@babel/plugin-transform-react-constant-elements" "^7.2.0"
"@babel/preset-flow" "^7.0.0"
"@babel/preset-react" "^7.0.0"
"@storybook/addons" "5.2.5"
"@storybook/core" "5.2.5"
"@storybook/node-logger" "5.2.5"
"@svgr/webpack" "^4.0.3"
"@types/webpack-env" "^1.13.7"
babel-plugin-add-react-displayname "^0.0.5"
babel-plugin-named-asset-import "^0.3.1"
babel-plugin-react-docgen "^3.0.0"
babel-preset-react-app "^9.0.0"
common-tags "^1.8.0"
core-js "^3.0.1"
global "^4.3.2"
lodash "^4.17.15"
mini-css-extract-plugin "^0.7.0"
prop-types "^15.7.2"
react-dev-utils "^9.0.0"
regenerator-runtime "^0.12.1"
semver "^6.0.0"
webpack "^4.33.0"
"@storybook/router@5.2.5":
version "5.2.5"
resolved "https://registry.yarnpkg.com/@storybook/router/-/router-5.2.5.tgz#a005332bc6aa1e7849503187ad50c41b3f3bef92"
@ -2126,6 +2308,109 @@
telejson "^3.0.2"
util-deprecate "^1.0.2"
"@svgr/babel-plugin-add-jsx-attribute@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1"
integrity sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==
"@svgr/babel-plugin-remove-jsx-attribute@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz#297550b9a8c0c7337bea12bdfc8a80bb66f85abc"
integrity sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==
"@svgr/babel-plugin-remove-jsx-empty-expression@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz#c196302f3e68eab6a05e98af9ca8570bc13131c7"
integrity sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==
"@svgr/babel-plugin-replace-jsx-attribute-value@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz#310ec0775de808a6a2e4fd4268c245fd734c1165"
integrity sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==
"@svgr/babel-plugin-svg-dynamic-title@^4.3.3":
version "4.3.3"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz#2cdedd747e5b1b29ed4c241e46256aac8110dd93"
integrity sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w==
"@svgr/babel-plugin-svg-em-dimensions@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz#9a94791c9a288108d20a9d2cc64cac820f141391"
integrity sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==
"@svgr/babel-plugin-transform-react-native-svg@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz#151487322843359a1ca86b21a3815fd21a88b717"
integrity sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==
"@svgr/babel-plugin-transform-svg-component@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz#5f1e2f886b2c85c67e76da42f0f6be1b1767b697"
integrity sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==
"@svgr/babel-preset@^4.3.3":
version "4.3.3"
resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-4.3.3.tgz#a75d8c2f202ac0e5774e6bfc165d028b39a1316c"
integrity sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A==
dependencies:
"@svgr/babel-plugin-add-jsx-attribute" "^4.2.0"
"@svgr/babel-plugin-remove-jsx-attribute" "^4.2.0"
"@svgr/babel-plugin-remove-jsx-empty-expression" "^4.2.0"
"@svgr/babel-plugin-replace-jsx-attribute-value" "^4.2.0"
"@svgr/babel-plugin-svg-dynamic-title" "^4.3.3"
"@svgr/babel-plugin-svg-em-dimensions" "^4.2.0"
"@svgr/babel-plugin-transform-react-native-svg" "^4.2.0"
"@svgr/babel-plugin-transform-svg-component" "^4.2.0"
"@svgr/core@^4.3.3":
version "4.3.3"
resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.3.3.tgz#b37b89d5b757dc66e8c74156d00c368338d24293"
integrity sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w==
dependencies:
"@svgr/plugin-jsx" "^4.3.3"
camelcase "^5.3.1"
cosmiconfig "^5.2.1"
"@svgr/hast-util-to-babel-ast@^4.3.2":
version "4.3.2"
resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz#1d5a082f7b929ef8f1f578950238f630e14532b8"
integrity sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg==
dependencies:
"@babel/types" "^7.4.4"
"@svgr/plugin-jsx@^4.3.3":
version "4.3.3"
resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz#e2ba913dbdfbe85252a34db101abc7ebd50992fa"
integrity sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w==
dependencies:
"@babel/core" "^7.4.5"
"@svgr/babel-preset" "^4.3.3"
"@svgr/hast-util-to-babel-ast" "^4.3.2"
svg-parser "^2.0.0"
"@svgr/plugin-svgo@^4.3.1":
version "4.3.1"
resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz#daac0a3d872e3f55935c6588dd370336865e9e32"
integrity sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w==
dependencies:
cosmiconfig "^5.2.1"
merge-deep "^3.0.2"
svgo "^1.2.2"
"@svgr/webpack@^4.0.3":
version "4.3.3"
resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-4.3.3.tgz#13cc2423bf3dff2d494f16b17eb7eacb86895017"
integrity sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==
dependencies:
"@babel/core" "^7.4.5"
"@babel/plugin-transform-react-constant-elements" "^7.0.0"
"@babel/preset-env" "^7.4.5"
"@babel/preset-react" "^7.0.0"
"@svgr/core" "^4.3.3"
"@svgr/plugin-jsx" "^4.3.3"
"@svgr/plugin-svgo" "^4.3.1"
loader-utils "^1.2.3"
"@szmarczak/http-timer@^1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
@ -2500,6 +2785,11 @@
dependencies:
source-map "^0.6.1"
"@types/webpack-env@^1.13.7":
version "1.14.1"
resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.14.1.tgz#0d8a53f308f017c53a5ddc3d07f4d6fa76b790d7"
integrity sha512-0Ki9jAAhKDSuLDXOIMADg54Hu60SuBTEsWaJGGy5cV+SSUQ63J2a+RrYYGrErzz39fXzTibhKrAQJAb8M7PNcA==
"@types/webpack-sources@*", "@types/webpack-sources@^0.1.5":
version "0.1.5"
resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.5.tgz#be47c10f783d3d6efe1471ff7f042611bd464a92"
@ -3287,6 +3577,16 @@ ast-types-flow@0.0.7, ast-types-flow@^0.0.7:
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0=
ast-types@0.11.3:
version "0.11.3"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8"
integrity sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==
ast-types@0.12.4:
version "0.12.4"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.12.4.tgz#71ce6383800f24efc9a1a3308f3a6e420a0974d1"
integrity sha512-ky/YVYCbtVAS8TdMIaTiPFHwEpRB5z1hctepJplTr3UW5q8TDrpIMCILyk8pmLxGtn2KCtC/lSn7zOsaI7nzDw==
astral-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
@ -3326,7 +3626,7 @@ async@^1.5.2:
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
async@^2.1.5, async@^2.5.0, async@^2.6.2:
async@^2.1.4, async@^2.1.5, async@^2.5.0, async@^2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
@ -3645,7 +3945,7 @@ babel-plugin-check-es2015-constants@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
babel-plugin-dynamic-import-node@^2.3.0:
babel-plugin-dynamic-import-node@2.3.0, babel-plugin-dynamic-import-node@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==
@ -3786,6 +4086,20 @@ babel-plugin-minify-type-constructors@^0.4.3:
dependencies:
babel-helper-is-void-0 "^0.4.3"
babel-plugin-named-asset-import@^0.3.1:
version "0.3.4"
resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.4.tgz#4a8fc30e9a3e2b1f5ed36883386ab2d84e1089bd"
integrity sha512-S6d+tEzc5Af1tKIMbsf2QirCcPdQ+mKUCY2H1nJj1DyA1ShwpsoxEOAwbWsG5gcXNV/olpvQd9vrUWRx4bnhpw==
babel-plugin-react-docgen@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-3.2.0.tgz#c072364d61d1f6bb19a6ca81734fc270870e8b96"
integrity sha512-MZ3fhnJ+/tUDhWFGgWsajuLct/dD1xoprmStqrBgtt9flFLPrKIOKOfqwjXjsn6/THs5QrG5rkcDFE3TMMZDjQ==
dependencies:
lodash "^4.17.15"
react-docgen "^4.1.1"
recast "^0.14.7"
"babel-plugin-styled-components@>= 1":
version "1.10.6"
resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.6.tgz#f8782953751115faf09a9f92431436912c34006b"
@ -4189,6 +4503,28 @@ babel-preset-jest@^24.9.0:
babel-plugin-transform-undefined-to-void "^6.9.4"
lodash "^4.17.11"
babel-preset-react-app@^9.0.0:
version "9.0.2"
resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-9.0.2.tgz#247d37e883d6d6f4b4691e5f23711bb2dd80567d"
integrity sha512-aXD+CTH8Chn8sNJr4tO/trWKqe5sSE4hdO76j9fhVezJSzmpWYWUSc5JoPmdSxADwef5kQFNGKXd433vvkd2VQ==
dependencies:
"@babel/core" "7.6.0"
"@babel/plugin-proposal-class-properties" "7.5.5"
"@babel/plugin-proposal-decorators" "7.6.0"
"@babel/plugin-proposal-object-rest-spread" "7.5.5"
"@babel/plugin-syntax-dynamic-import" "7.2.0"
"@babel/plugin-transform-destructuring" "7.6.0"
"@babel/plugin-transform-flow-strip-types" "7.4.4"
"@babel/plugin-transform-react-display-name" "7.2.0"
"@babel/plugin-transform-runtime" "7.6.0"
"@babel/preset-env" "7.6.0"
"@babel/preset-react" "7.0.0"
"@babel/preset-typescript" "7.6.0"
"@babel/runtime" "7.6.0"
babel-plugin-dynamic-import-node "2.3.0"
babel-plugin-macros "2.6.1"
babel-plugin-transform-react-remove-prop-types "0.4.24"
babel-register@6.26.0, babel-register@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
@ -5187,6 +5523,17 @@ cliui@^5.0.0:
strip-ansi "^5.2.0"
wrap-ansi "^5.1.0"
clone-deep@^0.2.4:
version "0.2.4"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6"
integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=
dependencies:
for-own "^0.1.3"
is-plain-object "^2.0.1"
kind-of "^3.0.2"
lazy-cache "^1.0.3"
shallow-clone "^0.1.2"
clone-deep@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.3.0.tgz#348c61ae9cdbe0edfe053d91ff4cc521d790ede8"
@ -7489,7 +7836,7 @@ esprima@^3.1.3:
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
esprima@^4.0.0:
esprima@^4.0.0, esprima@~4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
@ -8179,7 +8526,7 @@ for-in@^1.0.1, for-in@^1.0.2:
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
for-own@^0.1.4:
for-own@^0.1.3, for-own@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
@ -11097,6 +11444,11 @@ lazy-cache@^0.2.3:
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65"
integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=
lazy-cache@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
lazy-universal-dotenv@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz#a6c8938414bca426ab8c9463940da451a911db38"
@ -11802,6 +12154,15 @@ merge-anything@^2.2.4:
dependencies:
is-what "^3.3.1"
merge-deep@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2"
integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==
dependencies:
arr-union "^3.1.0"
clone-deep "^0.2.4"
kind-of "^3.0.2"
merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
@ -11975,6 +12336,16 @@ mini-css-extract-plugin@0.8.0:
schema-utils "^1.0.0"
webpack-sources "^1.1.0"
mini-css-extract-plugin@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz#5ba8290fbb4179a43dd27cca444ba150bee743a0"
integrity sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ==
dependencies:
loader-utils "^1.1.0"
normalize-url "1.9.1"
schema-utils "^1.0.0"
webpack-sources "^1.1.0"
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
@ -12340,6 +12711,13 @@ no-case@^2.2.0:
dependencies:
lower-case "^1.1.1"
node-dir@^0.1.10:
version "0.1.17"
resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5"
integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=
dependencies:
minimatch "^3.0.2"
node-fetch-npm@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7"
@ -13982,7 +14360,7 @@ prismjs@^1.8.4, prismjs@~1.17.0:
optionalDependencies:
clipboard "^2.0.0"
private@^0.1.6, private@^0.1.8:
private@^0.1.6, private@^0.1.8, private@~0.1.5:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
@ -14361,6 +14739,19 @@ react-dev-utils@^9.0.0:
strip-ansi "5.2.0"
text-table "0.2.0"
react-docgen@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-4.1.1.tgz#8fef0212dbf14733e09edecef1de6b224d87219e"
integrity sha512-o1wdswIxbgJRI4pckskE7qumiFyqkbvCO++TylEDOo2RbMiueIOg8YzKU4X9++r0DjrbXePw/LHnh81GRBTWRw==
dependencies:
"@babel/core" "^7.0.0"
"@babel/runtime" "^7.0.0"
async "^2.1.4"
commander "^2.19.0"
doctrine "^3.0.0"
node-dir "^0.1.10"
recast "^0.17.3"
react-dom@16.10.2:
version "16.10.2"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.10.2.tgz#4840bce5409176bc3a1f2bd8cb10b92db452fda6"
@ -14751,6 +15142,26 @@ realpath-native@^1.1.0:
dependencies:
util.promisify "^1.0.0"
recast@^0.14.7:
version "0.14.7"
resolved "https://registry.yarnpkg.com/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d"
integrity sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==
dependencies:
ast-types "0.11.3"
esprima "~4.0.0"
private "~0.1.5"
source-map "~0.6.1"
recast@^0.17.3:
version "0.17.6"
resolved "https://registry.yarnpkg.com/recast/-/recast-0.17.6.tgz#64ae98d0d2dfb10ff92ff5fb9ffb7371823b69fa"
integrity sha512-yoQRMRrK1lszNtbkGyM4kN45AwylV5hMiuEveUBlxytUViWevjvX6w+tzJt1LH4cfUhWt4NZvy3ThIhu6+m5wQ==
dependencies:
ast-types "0.12.4"
esprima "~4.0.0"
private "^0.1.8"
source-map "~0.6.1"
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
@ -16646,7 +17057,12 @@ supports-color@^6.1.0:
dependencies:
has-flag "^3.0.0"
svgo@^1.0.0:
svg-parser@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.2.tgz#d134cc396fa2681dc64f518330784e98bd801ec8"
integrity sha512-1gtApepKFweigFZj3sGO8KT8LvVZK8io146EzXrpVuWCDAbISz/yMucco3hWTkpZNoPabM+dnMOpy6Swue68Zg==
svgo@^1.0.0, svgo@^1.2.2:
version "1.3.0"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313"
integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==