Unverified Commit fd970158 authored by Allison Suarez Miranda's avatar Allison Suarez Miranda Committed by GitHub

feat: alphabetized badges (#804)

* alphabetized badges
Signed-off-by: 's avatarAllison Suarez Miranda <asuarezmiranda@lyft.com>

* Moving BadgeList container into a features folder
Signed-off-by: 's avatarMarcos Iglesias <miglesiasvalle@lyft.com>
Co-authored-by: 's avatarMarcos Iglesias <miglesiasvalle@lyft.com>
parent a6c0d5ab
...@@ -28,7 +28,7 @@ import { ...@@ -28,7 +28,7 @@ import {
Badge, Badge,
} from 'interfaces'; } from 'interfaces';
import BadgeList from 'components/common/BadgeList'; import BadgeList from 'features/BadgeList';
import ColumnType from './ColumnType'; import ColumnType from './ColumnType';
import ColumnDescEditableText from './ColumnDescEditableText'; import ColumnDescEditableText from './ColumnDescEditableText';
import ColumnStats from './ColumnStats'; import ColumnStats from './ColumnStats';
......
...@@ -2,15 +2,16 @@ ...@@ -2,15 +2,16 @@
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
import * as React from 'react'; import * as React from 'react';
import { Provider } from 'react-redux';
import { mount } from 'enzyme'; import { mount } from 'enzyme';
import configureStore from 'redux-mock-store';
import globalState from 'fixtures/globalState';
import Flag from 'components/common/Flag';
import { BadgeStyle } from 'config/config-types'; import { BadgeStyle } from 'config/config-types';
import * as ConfigUtils from 'config/config-utils'; import * as ConfigUtils from 'config/config-utils';
import { Badge } from 'interfaces/Badges'; import { Badge } from 'interfaces/Badges';
import * as UtilMethods from 'ducks/utilMethods';
import Flag from 'components/common/Flag';
import BadgeList, { BadgeListProps } from '.'; import BadgeList, { BadgeListProps } from '.';
const columnBadges: Badge[] = [ const columnBadges: Badge[] = [
...@@ -34,22 +35,17 @@ const badges: Badge[] = [ ...@@ -34,22 +35,17 @@ const badges: Badge[] = [
}, },
]; ];
const middlewares = []; const logClickSpy = jest.spyOn(UtilMethods, 'logClick');
const mockStore = configureStore(middlewares); logClickSpy.mockImplementation(() => null);
const setup = (propOverrides?: Partial<BadgeListProps>) => { const setup = (propOverrides?: Partial<BadgeListProps>) => {
const props = { const props = {
badges: [], badges,
onBadgeClick: () => {},
...propOverrides, ...propOverrides,
}; };
const testState = globalState; const wrapper = mount<BadgeListProps>(<BadgeList {...props} />);
testState.tableMetadata.tableData.badges = badges;
const wrapper = mount<BadgeListProps>(
<Provider store={mockStore(testState)}>
<BadgeList {...props} />
</Provider>
);
return { props, wrapper }; return { props, wrapper };
}; };
...@@ -63,57 +59,101 @@ describe('BadgeList', () => { ...@@ -63,57 +59,101 @@ describe('BadgeList', () => {
}; };
}); });
describe('when no badges are passed', () => { describe('render', () => {
it('renders a badge-list element', () => { describe('when no badges are passed', () => {
const { wrapper } = setup(); it('renders a badge-list element', () => {
const expected = 1; const { wrapper } = setup();
const actual = wrapper.find('.badge-list').length; const expected = 1;
const actual = wrapper.find('.badge-list').length;
expect(actual).toEqual(expected); expect(actual).toEqual(expected);
}); });
it('does not render any badges', () => { it('does not render any badges', () => {
const { wrapper } = setup(); const { wrapper } = setup();
const actual = wrapper.find(Flag).length; const actual = wrapper.find(Flag).length;
const expected = 0; const expected = 0;
expect(actual).toEqual(expected); expect(actual).toEqual(expected);
});
}); });
});
describe('when badges are passed', () => { describe('when badges are passed', () => {
it('renders a badge-list element', () => { it('renders a badge-list element', () => {
const { wrapper } = setup({ badges }); const { wrapper } = setup({ badges });
const expected = 1; const expected = 1;
const actual = wrapper.find('.badge-list').length; const actual = wrapper.find('.badge-list').length;
expect(actual).toEqual(expected);
});
it('renders a .actionable-badge for each badge in the input', () => {
const { wrapper } = setup({ badges });
const expected = badges.length;
const actual = wrapper.find('.actionable-badge').length;
expect(actual).toEqual(expected); expect(actual).toEqual(expected);
});
}); });
it('renders a .actionable-badge for each badge in the input', () => { describe('when badge category is column', () => {
const { wrapper } = setup({ badges }); it('renders a badge-list element', () => {
const expected = badges.length; const { wrapper } = setup({ badges: columnBadges });
const actual = wrapper.find('.actionable-badge').length; const expected = 1;
const actual = wrapper.find('.badge-list').length;
expect(actual).toEqual(expected); expect(actual).toEqual(expected);
});
it('renders a .static-badge for each badge in the input', () => {
const { wrapper } = setup({ badges: columnBadges });
const expected = 2;
const actual = wrapper.find('.static-badge').length;
expect(actual).toEqual(expected);
});
}); });
}); });
describe('when badge category is column', () => { describe.only('lifetime', () => {
it('renders a badge-list element', () => { describe('when clicking on a badge', () => {
const { wrapper } = setup({ badges: columnBadges }); it('should log the interaction', () => {
const expected = 1; logClickSpy.mockClear();
const actual = wrapper.find('.badge-list').length; const { wrapper } = setup();
expect(actual).toEqual(expected); wrapper.find('span.actionable-badge').at(0).simulate('click');
}); expect(logClickSpy).toHaveBeenCalled();
});
it('should call the handler', () => {
logClickSpy.mockClear();
const handlerSpy = jest.fn();
const { wrapper } = setup({
onBadgeClick: handlerSpy,
});
const expected = 1;
wrapper.find('span.actionable-badge').at(0).simulate('click');
const actual = handlerSpy.mock.calls.length;
expect(actual).toEqual(expected);
});
it('should call the handler with the proper badge name', () => {
logClickSpy.mockClear();
const handlerSpy = jest.fn();
const { wrapper } = setup({
onBadgeClick: handlerSpy,
});
const expected = 'beta test name';
wrapper.find('span.actionable-badge').at(0).simulate('click');
it('renders a .static-badge for each badge in the input', () => { const actual = handlerSpy.mock.calls[0][0];
const { wrapper } = setup({ badges: columnBadges });
const expected = 2;
const actual = wrapper.find('.static-badge').length;
expect(actual).toEqual(expected); expect(actual).toEqual(expected);
});
}); });
}); });
}); });
...@@ -4,26 +4,21 @@ ...@@ -4,26 +4,21 @@
import * as React from 'react'; import * as React from 'react';
import { getBadgeConfig } from 'config/config-utils'; import { getBadgeConfig } from 'config/config-utils';
import { BadgeStyle, BadgeStyleConfig } from 'config/config-types';
import { convertText, CaseType } from 'utils/textUtils'; import { convertText, CaseType } from 'utils/textUtils';
import { Badge } from 'interfaces/Badges'; import { Badge } from 'interfaces/Badges';
import { BadgeStyle, BadgeStyleConfig } from 'config/config-types';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { ResourceType } from 'interfaces';
import { updateSearchState } from 'ducks/search/reducer';
import { UpdateSearchStateRequest } from 'ducks/search/types';
import { logClick } from 'ducks/utilMethods'; import { logClick } from 'ducks/utilMethods';
import './styles.scss'; import './styles.scss';
const COLUMN_BADGE_CATEGORY = 'column'; const COLUMN_BADGE_CATEGORY = 'column';
export interface ListProps { export interface BadgeListProps {
badges: Badge[]; badges: Badge[];
} onBadgeClick: (badgeText: string) => void;
export interface DispatchFromProps {
searchBadge: (badgeText: string) => UpdateSearchStateRequest;
} }
export interface ActionableBadgeProps { export interface ActionableBadgeProps {
...@@ -32,8 +27,6 @@ export interface ActionableBadgeProps { ...@@ -32,8 +27,6 @@ export interface ActionableBadgeProps {
action: any; action: any;
} }
export type BadgeListProps = ListProps & DispatchFromProps;
const StaticBadge: React.FC<BadgeStyleConfig> = ({ const StaticBadge: React.FC<BadgeStyleConfig> = ({
style, style,
displayName, displayName,
...@@ -57,19 +50,28 @@ const ActionableBadge: React.FC<ActionableBadgeProps> = ({ ...@@ -57,19 +50,28 @@ const ActionableBadge: React.FC<ActionableBadgeProps> = ({
); );
}; };
export class BadgeList extends React.Component<BadgeListProps> { export default class BadgeList extends React.Component<BadgeListProps> {
handleClick = (index: number, badgeText: string, e) => { handleClick = (index: number, badgeText: string, e) => {
const { onBadgeClick } = this.props;
logClick(e, { logClick(e, {
target_type: 'badge', target_type: 'badge',
label: badgeText, label: badgeText,
}); });
this.props.searchBadge(convertText(badgeText, CaseType.LOWER_CASE)); onBadgeClick(convertText(badgeText, CaseType.LOWER_CASE));
}; };
render() { render() {
const { badges } = this.props;
const alphabetizedBadges = badges.sort((a, b) => {
const aName = (a.badge_name ? a.badge_name : a.tag_name) || '';
const bName = (b.badge_name ? b.badge_name : b.tag_name) || '';
return aName.localeCompare(bName);
});
return ( return (
<span className="badge-list"> <span className="badge-list">
{this.props.badges.map((badge, index) => { {alphabetizedBadges.map((badge, index) => {
let badgeConfig; let badgeConfig;
// search badges with just name // search badges with just name
if (badge.tag_name) { if (badge.tag_name) {
...@@ -93,7 +95,7 @@ export class BadgeList extends React.Component<BadgeListProps> { ...@@ -93,7 +95,7 @@ export class BadgeList extends React.Component<BadgeListProps> {
<ActionableBadge <ActionableBadge
displayName={badgeConfig.displayName} displayName={badgeConfig.displayName}
style={badgeConfig.style} style={badgeConfig.style}
action={(e) => action={(e: React.SyntheticEvent) =>
this.handleClick(index, badgeConfig.displayName, e) this.handleClick(index, badgeConfig.displayName, e)
} }
key={`badge-${index}`} key={`badge-${index}`}
...@@ -105,23 +107,3 @@ export class BadgeList extends React.Component<BadgeListProps> { ...@@ -105,23 +107,3 @@ export class BadgeList extends React.Component<BadgeListProps> {
); );
} }
} }
export const mapDispatchToProps = (dispatch: any) => {
return bindActionCreators(
{
searchBadge: (badgeText: string) =>
updateSearchState({
filters: {
[ResourceType.table]: { badges: badgeText },
},
submitSearch: true,
}),
},
dispatch
);
};
export default connect<null, DispatchFromProps, ListProps>(
null,
mapDispatchToProps
)(BadgeList);
...@@ -11,7 +11,7 @@ import SchemaInfo from 'components/common/ResourceListItem/SchemaInfo'; ...@@ -11,7 +11,7 @@ import SchemaInfo from 'components/common/ResourceListItem/SchemaInfo';
import { ResourceType, TagType } from 'interfaces'; import { ResourceType, TagType } from 'interfaces';
import * as ConfigUtils from 'config/config-utils'; import * as ConfigUtils from 'config/config-utils';
import BadgeList from 'components/common/BadgeList'; import BadgeList from 'features/BadgeList';
import TableListItem, { TableListItemProps } from '.'; import TableListItem, { TableListItemProps } from '.';
const MOCK_DISPLAY_NAME = 'displayName'; const MOCK_DISPLAY_NAME = 'displayName';
......
...@@ -10,7 +10,7 @@ import BookmarkIcon from 'components/common/Bookmark/BookmarkIcon'; ...@@ -10,7 +10,7 @@ import BookmarkIcon from 'components/common/Bookmark/BookmarkIcon';
import { getSourceDisplayName, getSourceIconClass } from 'config/config-utils'; import { getSourceDisplayName, getSourceIconClass } from 'config/config-utils';
import BadgeList from 'components/common/BadgeList'; import BadgeList from 'features/BadgeList';
import SchemaInfo from 'components/common/ResourceListItem/SchemaInfo'; import SchemaInfo from 'components/common/ResourceListItem/SchemaInfo';
import { LoggingParams } from '../types'; import { LoggingParams } from '../types';
......
// Copyright Contributors to the Amundsen project.
// SPDX-License-Identifier: Apache-2.0
import * as React from 'react';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { ResourceType, Badge } from 'interfaces';
import { updateSearchState } from 'ducks/search/reducer';
import { UpdateSearchStateRequest } from 'ducks/search/types';
import BadgeList from 'components/common/BadgeList';
export interface DispatchFromProps {
onBadgeClick: (badgeText: string) => UpdateSearchStateRequest;
}
export interface BadgeListFeatureProps {
badges: Badge[];
}
export const mapDispatchToProps = (dispatch: any) => {
return bindActionCreators(
{
onBadgeClick: (badgeText: string) =>
updateSearchState({
filters: {
[ResourceType.table]: { badges: badgeText },
},
submitSearch: true,
}),
},
dispatch
);
};
export default connect<null, DispatchFromProps, BadgeListFeatureProps>(
null,
mapDispatchToProps
)(BadgeList);
...@@ -100,7 +100,6 @@ describe('TableHeaderBullets', () => { ...@@ -100,7 +100,6 @@ describe('TableHeaderBullets', () => {
expect(actual).toEqual(expected); expect(actual).toEqual(expected);
}); });
it('renders a list with resource display name', () => { it('renders a list with resource display name', () => {
console.log(wrapper.debug());
expect(getDisplayNameByResource).toHaveBeenCalledWith(ResourceType.table); expect(getDisplayNameByResource).toHaveBeenCalledWith(ResourceType.table);
expect(wrapper.find('ul').find('li').at(0).text()).toEqual( expect(wrapper.find('ul').find('li').at(0).text()).toEqual(
MOCK_RESOURCE_DISPLAY_NAME MOCK_RESOURCE_DISPLAY_NAME
......
...@@ -27,7 +27,7 @@ import { ...@@ -27,7 +27,7 @@ import {
notificationsEnabled, notificationsEnabled,
} from 'config/config-utils'; } from 'config/config-utils';
import BadgeList from 'components/common/BadgeList'; import BadgeList from 'features/BadgeList';
import BookmarkIcon from 'components/common/Bookmark/BookmarkIcon'; import BookmarkIcon from 'components/common/Bookmark/BookmarkIcon';
import Breadcrumb from 'components/common/Breadcrumb'; import Breadcrumb from 'components/common/Breadcrumb';
import TabsComponent, { TabInfo } from 'components/common/TabsComponent'; import TabsComponent, { TabInfo } from 'components/common/TabsComponent';
......
...@@ -708,128 +708,6 @@ ...@@ -708,128 +708,6 @@
} }
} }
}, },
"@babel/helper-define-map": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz",
"integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==",
"dev": true,
"requires": {
"@babel/helper-function-name": "^7.8.3",
"@babel/types": "^7.8.3",
"lodash": "^4.17.13"
},
"dependencies": {
"@babel/code-frame": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
"integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
"dev": true,
"requires": {
"@babel/highlight": "^7.8.3"
}
},
"@babel/helper-function-name": {
"version": "7.9.5",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
"integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
"dev": true,
"requires": {
"@babel/helper-get-function-arity": "^7.8.3",
"@babel/template": "^7.8.3",
"@babel/types": "^7.9.5"
}
},
"@babel/helper-get-function-arity": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
"integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
"dev": true,
"requires": {
"@babel/types": "^7.8.3"
}
},
"@babel/highlight": {
"version": "7.9.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
"integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.9.0",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
}
},
"@babel/parser": {
"version": "7.9.6",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
"integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
"dev": true
},
"@babel/template": {
"version": "7.8.6",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
"integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.8.3",
"@babel/parser": "^7.8.6",
"@babel/types": "^7.8.6"
}
},
"@babel/types": {
"version": "7.9.6",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
"integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.9.5",
"lodash": "^4.17.13",
"to-fast-properties": "^2.0.0"
}
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
},
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"dev": true
}
}
},
"@babel/helper-explode-assignable-expression": { "@babel/helper-explode-assignable-expression": {
"version": "7.12.1", "version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz",
...@@ -2286,34 +2164,6 @@ ...@@ -2286,34 +2164,6 @@
} }
} }
}, },
"@babel/plugin-proposal-object-rest-spread": {
"version": "7.9.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz",
"integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.3",
"@babel/plugin-syntax-object-rest-spread": "^7.8.0",
"@babel/plugin-transform-parameters": "^7.9.5"
},
"dependencies": {
"@babel/helper-plugin-utils": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
"integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
"dev": true
},
"@babel/plugin-syntax-object-rest-spread": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
"integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
}
}
}
},
"@babel/plugin-proposal-optional-catch-binding": { "@babel/plugin-proposal-optional-catch-binding": {
"version": "7.12.1", "version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz",
...@@ -3000,23 +2850,6 @@ ...@@ -3000,23 +2850,6 @@
} }
} }
}, },
"@babel/plugin-transform-arrow-functions": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz",
"integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.3"
},
"dependencies": {
"@babel/helper-plugin-utils": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
"integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
"dev": true
}
}
},
"@babel/plugin-transform-async-to-generator": { "@babel/plugin-transform-async-to-generator": {
"version": "7.12.1", "version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz",
...@@ -3036,219 +2869,36 @@ ...@@ -3036,219 +2869,36 @@
"requires": { "requires": {
"@babel/types": "^7.12.5" "@babel/types": "^7.12.5"
} }
}, },
"@babel/helper-plugin-utils": { "@babel/helper-plugin-utils": {
"version": "7.10.4", "version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
"integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==",
"dev": true
},
"@babel/helper-validator-identifier": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
"integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
"dev": true
},
"@babel/types": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
"integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.10.4",
"lodash": "^4.17.19",
"to-fast-properties": "^2.0.0"
}
}
}
},
"@babel/plugin-transform-block-scoped-functions": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz",
"integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
},
"dependencies": {
"@babel/helper-plugin-utils": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
"integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==",
"dev": true
}
}
},
"@babel/plugin-transform-block-scoping": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz",
"integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.3",
"lodash": "^4.17.13"
},
"dependencies": {
"@babel/helper-plugin-utils": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
"integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
"dev": true
}
}
},
"@babel/plugin-transform-classes": {
"version": "7.9.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz",
"integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.8.3",
"@babel/helper-define-map": "^7.8.3",
"@babel/helper-function-name": "^7.9.5",
"@babel/helper-optimise-call-expression": "^7.8.3",
"@babel/helper-plugin-utils": "^7.8.3",
"@babel/helper-replace-supers": "^7.8.6",
"@babel/helper-split-export-declaration": "^7.8.3",
"globals": "^11.1.0"
},
"dependencies": {
"@babel/code-frame": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
"integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
"dev": true,
"requires": {
"@babel/highlight": "^7.8.3"
}
},
"@babel/helper-function-name": {
"version": "7.9.5",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
"integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
"dev": true,
"requires": {
"@babel/helper-get-function-arity": "^7.8.3",
"@babel/template": "^7.8.3",
"@babel/types": "^7.9.5"
}
},
"@babel/helper-get-function-arity": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
"integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
"dev": true,
"requires": {
"@babel/types": "^7.8.3"
}
},
"@babel/helper-plugin-utils": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
"integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
"dev": true
},
"@babel/helper-split-export-declaration": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
"integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
"dev": true,
"requires": {
"@babel/types": "^7.8.3"
}
},
"@babel/highlight": {
"version": "7.9.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
"integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.9.0",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
}
},
"@babel/parser": {
"version": "7.9.6",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
"integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
"dev": true
},
"@babel/template": {
"version": "7.8.6",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
"integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.8.3",
"@babel/parser": "^7.8.6",
"@babel/types": "^7.8.6"
}
},
"@babel/types": {
"version": "7.9.6",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
"integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.9.5",
"lodash": "^4.17.13",
"to-fast-properties": "^2.0.0"
}
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true "dev": true
}, },
"js-tokens": { "@babel/helper-validator-identifier": {
"version": "4.0.0", "version": "7.10.4",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
"dev": true "dev": true
}, },
"supports-color": { "@babel/types": {
"version": "5.5.0", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"has-flag": "^3.0.0" "@babel/helper-validator-identifier": "^7.10.4",
"lodash": "^4.17.19",
"to-fast-properties": "^2.0.0"
} }
},
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"dev": true
} }
} }
}, },
"@babel/plugin-transform-computed-properties": { "@babel/plugin-transform-block-scoped-functions": {
"version": "7.12.1", "version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz",
"integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-plugin-utils": "^7.10.4" "@babel/helper-plugin-utils": "^7.10.4"
...@@ -3262,19 +2912,19 @@ ...@@ -3262,19 +2912,19 @@
} }
} }
}, },
"@babel/plugin-transform-destructuring": { "@babel/plugin-transform-computed-properties": {
"version": "7.9.5", "version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz",
"integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-plugin-utils": "^7.8.3" "@babel/helper-plugin-utils": "^7.10.4"
}, },
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": { "@babel/helper-plugin-utils": {
"version": "7.8.3", "version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
"integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==",
"dev": true "dev": true
} }
} }
...@@ -3350,23 +3000,6 @@ ...@@ -3350,23 +3000,6 @@
} }
} }
}, },
"@babel/plugin-transform-for-of": {
"version": "7.9.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz",
"integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.3"
},
"dependencies": {
"@babel/helper-plugin-utils": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
"integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
"dev": true
}
}
},
"@babel/plugin-transform-function-name": { "@babel/plugin-transform-function-name": {
"version": "7.12.1", "version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz",
...@@ -3704,50 +3337,6 @@ ...@@ -3704,50 +3337,6 @@
} }
} }
}, },
"@babel/plugin-transform-parameters": {
"version": "7.9.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz",
"integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==",
"dev": true,
"requires": {
"@babel/helper-get-function-arity": "^7.8.3",
"@babel/helper-plugin-utils": "^7.8.3"
},
"dependencies": {
"@babel/helper-get-function-arity": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
"integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
"dev": true,
"requires": {
"@babel/types": "^7.8.3"
}
},
"@babel/helper-plugin-utils": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
"integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
"dev": true
},
"@babel/types": {
"version": "7.9.6",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
"integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.9.5",
"lodash": "^4.17.13",
"to-fast-properties": "^2.0.0"
}
},
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"dev": true
}
}
},
"@babel/plugin-transform-property-literals": { "@babel/plugin-transform-property-literals": {
"version": "7.12.1", "version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz",
...@@ -3925,40 +3514,6 @@ ...@@ -3925,40 +3514,6 @@
} }
} }
}, },
"@babel/plugin-transform-shorthand-properties": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz",
"integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.3"
},
"dependencies": {
"@babel/helper-plugin-utils": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
"integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
"dev": true
}
}
},
"@babel/plugin-transform-spread": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz",
"integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.3"
},
"dependencies": {
"@babel/helper-plugin-utils": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
"integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
"dev": true
}
}
},
"@babel/plugin-transform-sticky-regex": { "@babel/plugin-transform-sticky-regex": {
"version": "7.12.7", "version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz",
...@@ -3976,24 +3531,6 @@ ...@@ -3976,24 +3531,6 @@
} }
} }
}, },
"@babel/plugin-transform-template-literals": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz",
"integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.8.3",
"@babel/helper-plugin-utils": "^7.8.3"
},
"dependencies": {
"@babel/helper-plugin-utils": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
"integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
"dev": true
}
}
},
"@babel/plugin-transform-typeof-symbol": { "@babel/plugin-transform-typeof-symbol": {
"version": "7.12.1", "version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz",
...@@ -4217,23 +3754,6 @@ ...@@ -4217,23 +3754,6 @@
} }
} }
}, },
"@babel/plugin-transform-unicode-escapes": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz",
"integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
},
"dependencies": {
"@babel/helper-plugin-utils": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
"integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==",
"dev": true
}
}
},
"@babel/plugin-transform-unicode-regex": { "@babel/plugin-transform-unicode-regex": {
"version": "7.12.1", "version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz",
...@@ -11954,6 +11474,23 @@ ...@@ -11954,6 +11474,23 @@
"integrity": "sha512-EfrUGcQ63oLJbj0J0RI9ebX6TAITbsDBLbsjr881L/X5fMO9+oadKzEF21C7R3ULKG6Gv3uoab2HiqVJa/4+oA==", "integrity": "sha512-EfrUGcQ63oLJbj0J0RI9ebX6TAITbsDBLbsjr881L/X5fMO9+oadKzEF21C7R3ULKG6Gv3uoab2HiqVJa/4+oA==",
"dev": true "dev": true
}, },
"html-webpack-plugin": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz",
"integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==",
"dev": true,
"requires": {
"@types/html-minifier-terser": "^5.0.0",
"@types/tapable": "^1.0.5",
"@types/webpack": "^4.41.8",
"html-minifier-terser": "^5.0.1",
"loader-utils": "^1.2.3",
"lodash": "^4.17.15",
"pretty-error": "^2.1.1",
"tapable": "^1.1.3",
"util.promisify": "1.0.0"
}
},
"interpret": { "interpret": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
...@@ -14379,9 +13916,9 @@ ...@@ -14379,9 +13916,9 @@
"dev": true "dev": true
}, },
"@types/uglify-js": { "@types/uglify-js": {
"version": "3.11.0", "version": "3.11.1",
"resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.0.tgz", "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz",
"integrity": "sha512-I0Yd8TUELTbgRHq2K65j8rnDPAzAP+DiaF/syLem7yXwYLsHZhPd+AM2iXsWmf9P2F2NlFCgl5erZPQx9IbM9Q==", "integrity": "sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"source-map": "^0.6.1" "source-map": "^0.6.1"
...@@ -14401,9 +13938,9 @@ ...@@ -14401,9 +13938,9 @@
"integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ=="
}, },
"@types/webpack": { "@types/webpack": {
"version": "4.41.22", "version": "4.41.25",
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.22.tgz", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.25.tgz",
"integrity": "sha512-JQDJK6pj8OMV9gWOnN1dcLCyU9Hzs6lux0wBO4lr1+gyEhIBR9U3FMrz12t2GPkg110XAxEAw2WHF6g7nZIbRQ==", "integrity": "sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/anymatch": "*", "@types/anymatch": "*",
...@@ -14429,9 +13966,9 @@ ...@@ -14429,9 +13966,9 @@
"dev": true "dev": true
}, },
"@types/webpack-sources": { "@types/webpack-sources": {
"version": "2.0.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.0.0.tgz", "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz",
"integrity": "sha512-a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg==", "integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/node": "*", "@types/node": "*",
...@@ -17764,19 +17301,19 @@ ...@@ -17764,19 +17301,19 @@
"dev": true "dev": true
}, },
"camel-case": { "camel-case": {
"version": "4.1.1", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
"integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
"dev": true, "dev": true,
"requires": { "requires": {
"pascal-case": "^3.1.1", "pascal-case": "^3.1.2",
"tslib": "^1.10.0" "tslib": "^2.0.3"
}, },
"dependencies": { "dependencies": {
"tslib": { "tslib": {
"version": "1.14.1", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
"dev": true "dev": true
} }
} }
...@@ -19659,19 +19196,19 @@ ...@@ -19659,19 +19196,19 @@
} }
}, },
"dot-case": { "dot-case": {
"version": "3.0.3", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
"integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
"dev": true, "dev": true,
"requires": { "requires": {
"no-case": "^3.0.3", "no-case": "^3.0.4",
"tslib": "^1.10.0" "tslib": "^2.0.3"
}, },
"dependencies": { "dependencies": {
"tslib": { "tslib": {
"version": "1.14.1", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
"dev": true "dev": true
} }
} }
...@@ -22749,7 +22286,6 @@ ...@@ -22749,7 +22286,6 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"is-extglob": "^2.1.0" "is-extglob": "^2.1.0"
} }
...@@ -23347,20 +22883,18 @@ ...@@ -23347,20 +22883,18 @@
} }
}, },
"html-webpack-plugin": { "html-webpack-plugin": {
"version": "4.5.0", "version": "5.0.0-alpha.4",
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.0.0-alpha.4.tgz",
"integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==", "integrity": "sha512-/7sC2/ZFgyPiJH4T3/557a39VekFu5XNvvPXebOy6bmqXSO2SSJM8cOEItl1M5D4FPNR9bn/78fG3V+8Y4fOpQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/html-minifier-terser": "^5.0.0", "@types/html-minifier-terser": "^5.0.0",
"@types/tapable": "^1.0.5", "@types/tapable": "^1.0.5",
"@types/webpack": "^4.41.8",
"html-minifier-terser": "^5.0.1", "html-minifier-terser": "^5.0.1",
"loader-utils": "^1.2.3", "loader-utils": "2.0.0",
"lodash": "^4.17.15", "lodash": "^4.17.20",
"pretty-error": "^2.1.1", "pretty-error": "^2.1.1",
"tapable": "^1.1.3", "tapable": "2.0.0"
"util.promisify": "1.0.0"
}, },
"dependencies": { "dependencies": {
"big.js": { "big.js": {
...@@ -23376,29 +22910,29 @@ ...@@ -23376,29 +22910,29 @@
"dev": true "dev": true
}, },
"json5": { "json5": {
"version": "1.0.1", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
"dev": true, "dev": true,
"requires": { "requires": {
"minimist": "^1.2.0" "minimist": "^1.2.5"
} }
}, },
"loader-utils": { "loader-utils": {
"version": "1.4.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
"integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"big.js": "^5.2.2", "big.js": "^5.2.2",
"emojis-list": "^3.0.0", "emojis-list": "^3.0.0",
"json5": "^1.0.1" "json5": "^2.1.2"
} }
}, },
"tapable": { "tapable": {
"version": "1.1.3", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.0.0.tgz",
"integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "integrity": "sha512-bjzn0C0RWoffnNdTzNi7rNDhs1Zlwk2tRXgk8EiHKAOX1Mag3d6T0Y5zNa7l9CJ+EoUne/0UHdwS8tMbkh9zDg==",
"dev": true "dev": true
} }
} }
...@@ -29746,18 +29280,18 @@ ...@@ -29746,18 +29280,18 @@
} }
}, },
"lower-case": { "lower-case": {
"version": "2.0.1", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
"integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
"dev": true, "dev": true,
"requires": { "requires": {
"tslib": "^1.10.0" "tslib": "^2.0.3"
}, },
"dependencies": { "dependencies": {
"tslib": { "tslib": {
"version": "1.14.1", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
"dev": true "dev": true
} }
} }
...@@ -30670,19 +30204,19 @@ ...@@ -30670,19 +30204,19 @@
"dev": true "dev": true
}, },
"no-case": { "no-case": {
"version": "3.0.3", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
"integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
"dev": true, "dev": true,
"requires": { "requires": {
"lower-case": "^2.0.1", "lower-case": "^2.0.2",
"tslib": "^1.10.0" "tslib": "^2.0.3"
}, },
"dependencies": { "dependencies": {
"tslib": { "tslib": {
"version": "1.14.1", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
"dev": true "dev": true
} }
} }
...@@ -31796,19 +31330,19 @@ ...@@ -31796,19 +31330,19 @@
} }
}, },
"param-case": { "param-case": {
"version": "3.0.3", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
"integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
"dev": true, "dev": true,
"requires": { "requires": {
"dot-case": "^3.0.3", "dot-case": "^3.0.4",
"tslib": "^1.10.0" "tslib": "^2.0.3"
}, },
"dependencies": { "dependencies": {
"tslib": { "tslib": {
"version": "1.14.1", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
"dev": true "dev": true
} }
} }
...@@ -31885,19 +31419,19 @@ ...@@ -31885,19 +31419,19 @@
"dev": true "dev": true
}, },
"pascal-case": { "pascal-case": {
"version": "3.1.1", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
"integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
"dev": true, "dev": true,
"requires": { "requires": {
"no-case": "^3.0.3", "no-case": "^3.0.4",
"tslib": "^1.10.0" "tslib": "^2.0.3"
}, },
"dependencies": { "dependencies": {
"tslib": { "tslib": {
"version": "1.14.1", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
"dev": true "dev": true
} }
} }
...@@ -32507,12 +32041,6 @@ ...@@ -32507,12 +32041,6 @@
"clipboard": "^2.0.0" "clipboard": "^2.0.0"
} }
}, },
"private": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
"integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
"dev": true
},
"process": { "process": {
"version": "0.11.10", "version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
...@@ -20,7 +20,8 @@ ...@@ -20,7 +20,8 @@
"eslint": "eslint --ignore-path=.eslintignore --ext .js,.jsx,.ts,.tsx .", "eslint": "eslint --ignore-path=.eslintignore --ext .js,.jsx,.ts,.tsx .",
"eslint:errors": "eslint --ignore-path=.eslintignore --quiet --ext .js,.jsx,.ts,.tsx .", "eslint:errors": "eslint --ignore-path=.eslintignore --quiet --ext .js,.jsx,.ts,.tsx .",
"eslint:fix": "eslint --fix --ignore-path=.eslintignore --ext .js,.jsx,.ts,.tsx .", "eslint:fix": "eslint --fix --ignore-path=.eslintignore --ext .js,.jsx,.ts,.tsx .",
"tsc": "tsc", "tsc": "tsc --pretty --noEmit",
"type-check": "tsc --pretty --noEmit",
"clean-sass-vars": "find-unused-sass-variables ./js", "clean-sass-vars": "find-unused-sass-variables ./js",
"stylelint": "stylelint '**/*.scss'", "stylelint": "stylelint '**/*.scss'",
"stylelint:fix": "stylelint --fix '**/*.scss'", "stylelint:fix": "stylelint --fix '**/*.scss'",
...@@ -29,7 +30,7 @@ ...@@ -29,7 +30,7 @@
"build-storybook": "cross-env TS_NODE_PROJECT='tsconfig.webpack.json' build-storybook", "build-storybook": "cross-env TS_NODE_PROJECT='tsconfig.webpack.json' build-storybook",
"betterer": "betterer", "betterer": "betterer",
"betterer:update": "betterer --update", "betterer:update": "betterer --update",
"check": "npm run eslint:errors && npm run stylelint && npm run tsc && npm run betterer" "check": "npm run eslint:errors && npm run stylelint && npm run type-check && npm run betterer"
}, },
"author": "", "author": "",
"license": "Apache-2.0", "license": "Apache-2.0",
...@@ -70,7 +71,7 @@ ...@@ -70,7 +71,7 @@
"@types/react-router": "^4.4.5", "@types/react-router": "^4.4.5",
"@types/react-tagsinput": "^3.19.7", "@types/react-tagsinput": "^3.19.7",
"@types/storybook__addon-knobs": "^5.2.1", "@types/storybook__addon-knobs": "^5.2.1",
"@types/webpack": "^4.41.22", "@types/webpack": "^4.41.25",
"@typescript-eslint/eslint-plugin": "4.5.0", "@typescript-eslint/eslint-plugin": "4.5.0",
"@typescript-eslint/eslint-plugin-tslint": "4.5.0", "@typescript-eslint/eslint-plugin-tslint": "4.5.0",
"@typescript-eslint/parser": "4.6.1", "@typescript-eslint/parser": "4.6.1",
...@@ -93,7 +94,7 @@ ...@@ -93,7 +94,7 @@
"eslint-plugin-react": "^7.20.5", "eslint-plugin-react": "^7.20.5",
"eslint-plugin-react-hooks": "^4.0.4", "eslint-plugin-react-hooks": "^4.0.4",
"find-unused-sass-variables": "^3.0.0", "find-unused-sass-variables": "^3.0.0",
"html-webpack-plugin": "^4.5.0", "html-webpack-plugin": "5.0.0-alpha.4",
"husky": "^4.3.0", "husky": "^4.3.0",
"jest": "^26.6.0", "jest": "^26.6.0",
"jest-css-modules": "^2.1.0", "jest-css-modules": "^2.1.0",
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
"baseUrl": "js", "baseUrl": "js",
"paths": { "paths": {
"components/*": ["components/*"], "components/*": ["components/*"],
"features/*": ["features/*"],
"config/*": ["config/*"], "config/*": ["config/*"],
"ducks/*": ["ducks/*"], "ducks/*": ["ducks/*"],
"interfaces/*": ["interfaces/*"], "interfaces/*": ["interfaces/*"],
......
...@@ -28,6 +28,7 @@ const PATHS = { ...@@ -28,6 +28,7 @@ const PATHS = {
dist: resolve('/dist'), dist: resolve('/dist'),
pages: resolve('/js/pages'), pages: resolve('/js/pages'),
components: resolve('/js/components'), components: resolve('/js/components'),
features: resolve('/js/features'),
config: resolve('/js/config'), config: resolve('/js/config'),
ducks: resolve('/js/ducks'), ducks: resolve('/js/ducks'),
interfaces: resolve('/js/interfaces'), interfaces: resolve('/js/interfaces'),
...@@ -68,6 +69,7 @@ const config: webpack.Configuration = { ...@@ -68,6 +69,7 @@ const config: webpack.Configuration = {
alias: { alias: {
pages: PATHS.pages, pages: PATHS.pages,
components: PATHS.components, components: PATHS.components,
features: PATHS.features,
config: PATHS.config, config: PATHS.config,
ducks: PATHS.ducks, ducks: PATHS.ducks,
interfaces: PATHS.interfaces, interfaces: PATHS.interfaces,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment