mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2024-11-21 17:16:42 +03:00
feature(react-json-tree): convert react-json-tree to TypeScript (#601)
* eslint base * stash * setup * stash * stash * Add jest.config.js * caught
This commit is contained in:
parent
ac6f7435c2
commit
40ac89aff9
2
.gitattributes
vendored
2
.gitattributes
vendored
|
@ -1,5 +1,7 @@
|
|||
*.js text eol=lf
|
||||
*.jsx text eol=lf
|
||||
*.ts text eol=lf
|
||||
*.tsx text eol=lf
|
||||
*.json text eol=lf
|
||||
*.css text eol=lf
|
||||
*.html text eol=lf
|
||||
|
|
|
@ -8,5 +8,11 @@
|
|||
"plugin:@typescript-eslint/recommended-requiring-type-checking",
|
||||
"plugin:prettier/recommended",
|
||||
"prettier/@typescript-eslint"
|
||||
]
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-unsafe-return": "off",
|
||||
"@typescript-eslint/no-unsafe-assignment": "off",
|
||||
"@typescript-eslint/no-unsafe-call": "off",
|
||||
"@typescript-eslint/no-unsafe-member-access": "off"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,5 +9,11 @@
|
|||
"plugin:jest/style",
|
||||
"plugin:prettier/recommended",
|
||||
"prettier/@typescript-eslint"
|
||||
]
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-unsafe-return": "off",
|
||||
"@typescript-eslint/no-unsafe-assignment": "off",
|
||||
"@typescript-eslint/no-unsafe-call": "off",
|
||||
"@typescript-eslint/no-unsafe-member-access": "off"
|
||||
}
|
||||
}
|
||||
|
|
30
eslintrc.ts.react.base.json
Normal file
30
eslintrc.ts.react.base.json
Normal file
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
}
|
||||
},
|
||||
"plugins": ["@typescript-eslint", "react"],
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/eslint-recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:@typescript-eslint/recommended-requiring-type-checking",
|
||||
"plugin:react/recommended",
|
||||
"plugin:prettier/recommended",
|
||||
"prettier/@typescript-eslint",
|
||||
"prettier/react"
|
||||
],
|
||||
"settings": {
|
||||
"react": {
|
||||
"version": "detect"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"@typescript-eslint/no-unsafe-return": "off",
|
||||
"@typescript-eslint/no-unsafe-assignment": "off",
|
||||
"@typescript-eslint/no-unsafe-call": "off",
|
||||
"@typescript-eslint/no-unsafe-member-access": "off"
|
||||
}
|
||||
}
|
21
eslintrc.ts.react.jest.base.json
Normal file
21
eslintrc.ts.react.jest.base.json
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"plugins": ["jest"],
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/eslint-recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:@typescript-eslint/recommended-requiring-type-checking",
|
||||
"plugin:react/recommended",
|
||||
"plugin:jest/recommended",
|
||||
"plugin:jest/style",
|
||||
"plugin:prettier/recommended",
|
||||
"prettier/@typescript-eslint",
|
||||
"prettier/react"
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-unsafe-return": "off",
|
||||
"@typescript-eslint/no-unsafe-assignment": "off",
|
||||
"@typescript-eslint/no-unsafe-call": "off",
|
||||
"@typescript-eslint/no-unsafe-member-access": "off"
|
||||
}
|
||||
}
|
14
package.json
14
package.json
|
@ -7,6 +7,10 @@
|
|||
"@babel/preset-env": "^7.11.0",
|
||||
"@babel/preset-typescript": "^7.10.4",
|
||||
"@types/jest": "^26.0.9",
|
||||
"@types/node": "^14.6.0",
|
||||
"@types/react-test-renderer": "^16.9.3",
|
||||
"@types/webpack": "^4.41.21",
|
||||
"@types/webpack-dev-server": "^3.11.0",
|
||||
"@typescript-eslint/eslint-plugin": "^3.9.0",
|
||||
"@typescript-eslint/parser": "^3.9.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
|
@ -16,14 +20,18 @@
|
|||
"eslint-plugin-jest": "^23.20.0",
|
||||
"eslint-plugin-prettier": "^3.1.4",
|
||||
"eslint-plugin-react": "^7.20.5",
|
||||
"husky": "^4.2.5",
|
||||
"jest": "^26.2.2",
|
||||
"lerna": "^3.22.1",
|
||||
"lint-staged": "^10.2.11",
|
||||
"prettier": "^2.0.5",
|
||||
"react": "^16.13.1",
|
||||
"react-dom": "^16.13.1",
|
||||
"react-test-renderer": "^16.13.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"ts-jest": "^26.2.0",
|
||||
"typescript": "^3.9.7"
|
||||
"ts-node": "^9.0.0",
|
||||
"typescript": "^3.9.7",
|
||||
"webpack": "^4.44.1",
|
||||
"webpack-cli": "^3.3.12"
|
||||
},
|
||||
"scripts": {
|
||||
"lerna": "lerna",
|
||||
|
|
|
@ -288,3 +288,6 @@ export const invertTheme = (theme: Theme | undefined): Theme | undefined => {
|
|||
|
||||
return theme;
|
||||
};
|
||||
|
||||
export { Base16Theme };
|
||||
export * from './types';
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
{
|
||||
"presets": ["@babel/preset-env", "@babel/preset-react"],
|
||||
"presets": [
|
||||
"@babel/preset-env",
|
||||
"@babel/preset-react",
|
||||
"@babel/preset-typescript"
|
||||
],
|
||||
"plugins": ["@babel/plugin-proposal-class-properties"]
|
||||
}
|
||||
|
|
2
packages/react-json-tree/.eslintignore
Normal file
2
packages/react-json-tree/.eslintignore
Normal file
|
@ -0,0 +1,2 @@
|
|||
lib
|
||||
umd
|
29
packages/react-json-tree/.eslintrc.js
Normal file
29
packages/react-json-tree/.eslintrc.js
Normal file
|
@ -0,0 +1,29 @@
|
|||
module.exports = {
|
||||
extends: '../../.eslintrc',
|
||||
overrides: [
|
||||
{
|
||||
files: ['*.ts', '*.tsx'],
|
||||
extends: '../../eslintrc.ts.react.base.json',
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: ['./tsconfig.json'],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['test/*.ts', 'test/*.tsx'],
|
||||
extends: '../../eslintrc.ts.react.jest.base.json',
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: ['./test/tsconfig.json'],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['webpack.config.umd.ts'],
|
||||
extends: '../../eslintrc.ts.base.json',
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: ['./tsconfig.webpack.json'],
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
2
packages/react-json-tree/.prettierignore
Normal file
2
packages/react-json-tree/.prettierignore
Normal file
|
@ -0,0 +1,2 @@
|
|||
lib
|
||||
umd
|
3
packages/react-json-tree/jest.config.js
Normal file
3
packages/react-json-tree/jest.config.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
module.exports = {
|
||||
preset: 'ts-jest',
|
||||
};
|
|
@ -2,30 +2,15 @@
|
|||
"name": "react-json-tree",
|
||||
"version": "0.12.1",
|
||||
"description": "React JSON Viewer Component, Extracted from redux-devtools",
|
||||
"main": "lib/index.js",
|
||||
"scripts": {
|
||||
"clean": "rimraf lib",
|
||||
"build": "babel src --out-dir lib",
|
||||
"build:umd": "rimraf ./umd && webpack --progress --config webpack.config.umd.js",
|
||||
"build:umd:min": "webpack --env.production --progress --config webpack.config.umd.js",
|
||||
"test": "jest",
|
||||
"prepare": "npm run build",
|
||||
"prepublishOnly": "npm run test && npm run clean && npm run build && npm run build:umd && npm run build:umd:min",
|
||||
"start": "cd examples && npm start"
|
||||
},
|
||||
"files": [
|
||||
"lib",
|
||||
"src",
|
||||
"umd"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reduxjs/redux-devtools.git"
|
||||
},
|
||||
"keywords": [
|
||||
"react",
|
||||
"json viewer"
|
||||
],
|
||||
"homepage": "https://github.com/reduxjs/redux-devtools/tree/master/packages/react-json-tree",
|
||||
"bugs": {
|
||||
"url": "https://github.com/reduxjs/redux-devtools/issues"
|
||||
},
|
||||
"license": "MIT",
|
||||
"author": "Shu Uesugi <shu@chibicode.com> (http://github.com/chibicode)",
|
||||
"contributors": [
|
||||
"Alexander Kuznetsov <alexkuz@gmail.com> (http://kuzya.org/)",
|
||||
|
@ -33,32 +18,38 @@
|
|||
"Daniele Zannotti <dzannotti@me.com> (http://www.github.com/dzannotti)",
|
||||
"Mihail Diordiev <zalmoxisus@gmail.com> (https://github.com/zalmoxisus)"
|
||||
],
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/reduxjs/redux-devtools/issues"
|
||||
"files": [
|
||||
"lib",
|
||||
"src",
|
||||
"umd"
|
||||
],
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reduxjs/redux-devtools.git"
|
||||
},
|
||||
"homepage": "https://github.com/reduxjs/redux-devtools",
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.10.5",
|
||||
"@babel/core": "^7.11.1",
|
||||
"@babel/plugin-proposal-class-properties": "^7.10.4",
|
||||
"@babel/preset-env": "^7.11.0",
|
||||
"@babel/preset-react": "^7.10.4",
|
||||
"babel-loader": "^8.1.0",
|
||||
"jest": "^26.2.2",
|
||||
"react": "^16.13.1",
|
||||
"react-dom": "^16.13.1",
|
||||
"react-test-renderer": "^16.13.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"webpack": "^4.44.1",
|
||||
"webpack-cli": "^3.3.12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.3.0",
|
||||
"react-dom": "^16.3.0"
|
||||
"scripts": {
|
||||
"start": "cd examples && npm start",
|
||||
"build": "npm run build:types && npm run build:js && npm run build:umd && npm run build:umd:min",
|
||||
"build:types": "tsc --emitDeclarationOnly",
|
||||
"build:js": "babel src --out-dir lib --extensions \".ts,.tsx\" --source-maps inline",
|
||||
"build:umd": "rimraf ./umd && webpack --progress --config webpack.config.umd.ts",
|
||||
"build:umd:min": "webpack --env.production --progress --config webpack.config.umd.ts",
|
||||
"clean": "rimraf lib umd",
|
||||
"test": "jest",
|
||||
"lint": "eslint . --ext .ts,.tsx",
|
||||
"lint:fix": "eslint . --ext .ts,.tsx --fix",
|
||||
"type-check": "tsc --noEmit",
|
||||
"type-check:watch": "npm run type-check -- --watch",
|
||||
"preversion": "npm run type-check && npm run lint && npm run test",
|
||||
"prepublishOnly": "npm run clean && npm run build"
|
||||
},
|
||||
"dependencies": {
|
||||
"prop-types": "^15.7.2",
|
||||
"react-base16-styling": "^0.7.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.3.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,21 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import JSONArrow from './JSONArrow';
|
||||
import { CircularPropsPassedThroughItemRange } from './types';
|
||||
|
||||
export default class ItemRange extends React.Component {
|
||||
interface Props extends CircularPropsPassedThroughItemRange {
|
||||
data: any;
|
||||
nodeType: string;
|
||||
from: number;
|
||||
to: number;
|
||||
renderChildNodes: (props: Props, from: number, to: number) => React.ReactNode;
|
||||
}
|
||||
|
||||
interface State {
|
||||
expanded: boolean;
|
||||
}
|
||||
|
||||
export default class ItemRange extends React.Component<Props, State> {
|
||||
static propTypes = {
|
||||
styling: PropTypes.func.isRequired,
|
||||
from: PropTypes.number.isRequired,
|
||||
|
@ -11,11 +24,9 @@ export default class ItemRange extends React.Component {
|
|||
nodeType: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
constructor(props) {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
this.state = { expanded: false };
|
||||
|
||||
this.handleClick = this.handleClick.bind(this);
|
||||
}
|
||||
|
||||
render() {
|
||||
|
@ -42,7 +53,7 @@ export default class ItemRange extends React.Component {
|
|||
);
|
||||
}
|
||||
|
||||
handleClick() {
|
||||
handleClick = () => {
|
||||
this.setState({ expanded: !this.state.expanded });
|
||||
}
|
||||
};
|
||||
}
|
|
@ -1,15 +1,23 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import JSONNestedNode from './JSONNestedNode';
|
||||
import { CircularPropsPassedThroughJSONNode } from './types';
|
||||
|
||||
// Returns the "n Items" string for this node,
|
||||
// generating and caching it if it hasn't been created yet.
|
||||
function createItemString(data) {
|
||||
return `${data.length} ${data.length !== 1 ? 'items' : 'item'}`;
|
||||
function createItemString(data: any) {
|
||||
return `${(data as unknown[]).length} ${
|
||||
(data as unknown[]).length !== 1 ? 'items' : 'item'
|
||||
}`;
|
||||
}
|
||||
|
||||
interface Props extends CircularPropsPassedThroughJSONNode {
|
||||
data: any;
|
||||
nodeType: string;
|
||||
}
|
||||
|
||||
// Configures <JSONNestedNode> to render an Array
|
||||
const JSONArrayNode = ({ data, ...props }) => (
|
||||
const JSONArrayNode: React.FunctionComponent<Props> = ({ data, ...props }) => (
|
||||
<JSONNestedNode
|
||||
{...props}
|
||||
data={data}
|
|
@ -1,7 +1,22 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { StylingFunction } from 'react-base16-styling';
|
||||
|
||||
const JSONArrow = ({ styling, arrowStyle, expanded, nodeType, onClick }) => (
|
||||
interface Props {
|
||||
styling: StylingFunction;
|
||||
arrowStyle?: 'single' | 'double';
|
||||
expanded: boolean;
|
||||
nodeType: string;
|
||||
onClick: React.MouseEventHandler<HTMLDivElement>;
|
||||
}
|
||||
|
||||
const JSONArrow: React.FunctionComponent<Props> = ({
|
||||
styling,
|
||||
arrowStyle,
|
||||
expanded,
|
||||
nodeType,
|
||||
onClick,
|
||||
}) => (
|
||||
<div {...styling('arrowContainer', arrowStyle)} onClick={onClick}>
|
||||
<div {...styling(['arrow', 'arrowSign'], nodeType, expanded, arrowStyle)}>
|
||||
{'\u25B6'}
|
|
@ -1,9 +1,10 @@
|
|||
import React from 'react';
|
||||
import JSONNestedNode from './JSONNestedNode';
|
||||
import { CircularPropsPassedThroughJSONNode } from './types';
|
||||
|
||||
// Returns the "n Items" string for this node,
|
||||
// generating and caching it if it hasn't been created yet.
|
||||
function createItemString(data, limit) {
|
||||
function createItemString(data: any, limit: number) {
|
||||
let count = 0;
|
||||
let hasMore = false;
|
||||
if (Number.isSafeInteger(data.size)) {
|
||||
|
@ -21,8 +22,13 @@ function createItemString(data, limit) {
|
|||
return `${hasMore ? '>' : ''}${count} ${count !== 1 ? 'entries' : 'entry'}`;
|
||||
}
|
||||
|
||||
interface Props extends CircularPropsPassedThroughJSONNode {
|
||||
data: any;
|
||||
nodeType: string;
|
||||
}
|
||||
|
||||
// Configures <JSONNestedNode> to render an iterable
|
||||
export default function JSONIterableNode({ ...props }) {
|
||||
const JSONIterableNode: React.FunctionComponent<Props> = ({ ...props }) => {
|
||||
return (
|
||||
<JSONNestedNode
|
||||
{...props}
|
||||
|
@ -31,4 +37,6 @@ export default function JSONIterableNode({ ...props }) {
|
|||
createItemString={createItemString}
|
||||
/>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
export default JSONIterableNode;
|
|
@ -4,12 +4,40 @@ import JSONArrow from './JSONArrow';
|
|||
import getCollectionEntries from './getCollectionEntries';
|
||||
import JSONNode from './JSONNode';
|
||||
import ItemRange from './ItemRange';
|
||||
import {
|
||||
CircularPropsPassedThroughJSONNestedNode,
|
||||
CircularPropsPassedThroughRenderChildNodes,
|
||||
} from './types';
|
||||
|
||||
/**
|
||||
* Renders nested values (eg. objects, arrays, lists, etc.)
|
||||
*/
|
||||
|
||||
function renderChildNodes(props, from, to) {
|
||||
export interface RenderChildNodesProps
|
||||
extends CircularPropsPassedThroughRenderChildNodes {
|
||||
data: any;
|
||||
nodeType: string;
|
||||
}
|
||||
|
||||
interface Range {
|
||||
from: number;
|
||||
to: number;
|
||||
}
|
||||
|
||||
interface Entry {
|
||||
key: string | number;
|
||||
value: any;
|
||||
}
|
||||
|
||||
function isRange(rangeOrEntry: Range | Entry): rangeOrEntry is Range {
|
||||
return (rangeOrEntry as Range).to !== undefined;
|
||||
}
|
||||
|
||||
function renderChildNodes(
|
||||
props: RenderChildNodesProps,
|
||||
from?: number,
|
||||
to?: number
|
||||
) {
|
||||
const {
|
||||
nodeType,
|
||||
data,
|
||||
|
@ -19,7 +47,7 @@ function renderChildNodes(props, from, to) {
|
|||
postprocessValue,
|
||||
sortObjectKeys,
|
||||
} = props;
|
||||
const childNodes = [];
|
||||
const childNodes: React.ReactNode[] = [];
|
||||
|
||||
getCollectionEntries(
|
||||
nodeType,
|
||||
|
@ -29,7 +57,7 @@ function renderChildNodes(props, from, to) {
|
|||
from,
|
||||
to
|
||||
).forEach((entry) => {
|
||||
if (entry.to) {
|
||||
if (isRange(entry)) {
|
||||
childNodes.push(
|
||||
<ItemRange
|
||||
{...props}
|
||||
|
@ -43,7 +71,7 @@ function renderChildNodes(props, from, to) {
|
|||
const { key, value } = entry;
|
||||
const isCircular = circularCache.indexOf(value) !== -1;
|
||||
|
||||
const node = (
|
||||
childNodes.push(
|
||||
<JSONNode
|
||||
{...props}
|
||||
{...{ postprocessValue, collectionLimit }}
|
||||
|
@ -55,17 +83,25 @@ function renderChildNodes(props, from, to) {
|
|||
hideRoot={false}
|
||||
/>
|
||||
);
|
||||
|
||||
if (node !== false) {
|
||||
childNodes.push(node);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return childNodes;
|
||||
}
|
||||
|
||||
function getStateFromProps(props) {
|
||||
interface Props extends CircularPropsPassedThroughJSONNestedNode {
|
||||
data: any;
|
||||
nodeType: string;
|
||||
nodeTypeIndicator: string;
|
||||
createItemString: (data: any, collectionLimit: number) => string;
|
||||
expandable: boolean;
|
||||
}
|
||||
|
||||
interface State {
|
||||
expanded: boolean;
|
||||
}
|
||||
|
||||
function getStateFromProps(props: Props) {
|
||||
// calculate individual node expansion if necessary
|
||||
const expanded =
|
||||
props.shouldExpandNode && !props.isCircular
|
||||
|
@ -76,7 +112,7 @@ function getStateFromProps(props) {
|
|||
};
|
||||
}
|
||||
|
||||
export default class JSONNestedNode extends React.Component {
|
||||
export default class JSONNestedNode extends React.Component<Props, State> {
|
||||
static propTypes = {
|
||||
getItemString: PropTypes.func.isRequired,
|
||||
nodeTypeIndicator: PropTypes.any,
|
||||
|
@ -104,26 +140,26 @@ export default class JSONNestedNode extends React.Component {
|
|||
expandable: true,
|
||||
};
|
||||
|
||||
constructor(props) {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
this.state = getStateFromProps(props);
|
||||
}
|
||||
|
||||
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||
UNSAFE_componentWillReceiveProps(nextProps: Props) {
|
||||
const nextState = getStateFromProps(nextProps);
|
||||
if (getStateFromProps(this.props).expanded !== nextState.expanded) {
|
||||
this.setState(nextState);
|
||||
}
|
||||
}
|
||||
|
||||
shouldComponentUpdate(nextProps, nextState) {
|
||||
shouldComponentUpdate(nextProps: Props, nextState: State) {
|
||||
return (
|
||||
!!Object.keys(nextProps).find(
|
||||
(key) =>
|
||||
key !== 'circularCache' &&
|
||||
(key === 'keyPath'
|
||||
? nextProps[key].join('/') !== this.props[key].join('/')
|
||||
: nextProps[key] !== this.props[key])
|
||||
: nextProps[key as keyof Props] !== this.props[key as keyof Props])
|
||||
) || nextState.expanded !== this.state.expanded
|
||||
);
|
||||
}
|
||||
|
@ -159,7 +195,7 @@ export default class JSONNestedNode extends React.Component {
|
|||
itemType,
|
||||
createItemString(data, collectionLimit)
|
||||
);
|
||||
const stylingArgs = [keyPath, nodeType, expanded, expandable];
|
||||
const stylingArgs = [keyPath, nodeType, expanded, expandable] as const;
|
||||
|
||||
return hideRoot ? (
|
||||
<li {...styling('rootNode', ...stylingArgs)}>
|
|
@ -5,8 +5,15 @@ import JSONObjectNode from './JSONObjectNode';
|
|||
import JSONArrayNode from './JSONArrayNode';
|
||||
import JSONIterableNode from './JSONIterableNode';
|
||||
import JSONValueNode from './JSONValueNode';
|
||||
import { CircularPropsPassedThroughJSONNode } from './types';
|
||||
|
||||
const JSONNode = ({
|
||||
interface Props extends CircularPropsPassedThroughJSONNode {
|
||||
keyPath: (string | number)[];
|
||||
value: any;
|
||||
isCustomNode: (value: any) => boolean;
|
||||
}
|
||||
|
||||
const JSONNode: React.FunctionComponent<Props> = ({
|
||||
getItemString,
|
||||
keyPath,
|
||||
labelRenderer,
|
||||
|
@ -50,7 +57,10 @@ const JSONNode = ({
|
|||
return <JSONIterableNode {...nestedNodeProps} />;
|
||||
case 'String':
|
||||
return (
|
||||
<JSONValueNode {...simpleNodeProps} valueGetter={(raw) => `"${raw}"`} />
|
||||
<JSONValueNode
|
||||
{...simpleNodeProps}
|
||||
valueGetter={(raw: string) => `"${raw}"`}
|
||||
/>
|
||||
);
|
||||
case 'Number':
|
||||
return <JSONValueNode {...simpleNodeProps} />;
|
||||
|
@ -97,7 +107,7 @@ const JSONNode = ({
|
|||
JSONNode.propTypes = {
|
||||
getItemString: PropTypes.func.isRequired,
|
||||
keyPath: PropTypes.arrayOf(
|
||||
PropTypes.oneOfType([PropTypes.string, PropTypes.number])
|
||||
PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired
|
||||
).isRequired,
|
||||
labelRenderer: PropTypes.func.isRequired,
|
||||
styling: PropTypes.func.isRequired,
|
|
@ -1,16 +1,22 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import JSONNestedNode from './JSONNestedNode';
|
||||
import { CircularPropsPassedThroughJSONNode } from './types';
|
||||
|
||||
// Returns the "n Items" string for this node,
|
||||
// generating and caching it if it hasn't been created yet.
|
||||
function createItemString(data) {
|
||||
function createItemString(data: any) {
|
||||
const len = Object.getOwnPropertyNames(data).length;
|
||||
return `${len} ${len !== 1 ? 'keys' : 'key'}`;
|
||||
}
|
||||
|
||||
interface Props extends CircularPropsPassedThroughJSONNode {
|
||||
data: any;
|
||||
nodeType: string;
|
||||
}
|
||||
|
||||
// Configures <JSONNestedNode> to render an Object
|
||||
const JSONObjectNode = ({ data, ...props }) => (
|
||||
const JSONObjectNode: React.FunctionComponent<Props> = ({ data, ...props }) => (
|
||||
<JSONNestedNode
|
||||
{...props}
|
||||
data={data}
|
||||
|
@ -23,7 +29,7 @@ const JSONObjectNode = ({ data, ...props }) => (
|
|||
|
||||
JSONObjectNode.propTypes = {
|
||||
data: PropTypes.object,
|
||||
nodeType: PropTypes.string,
|
||||
nodeType: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
export default JSONObjectNode;
|
|
@ -1,18 +1,25 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { JSONValueNodeCircularPropsProvidedByJSONNode } from './types';
|
||||
|
||||
/**
|
||||
* Renders simple values (eg. strings, numbers, booleans, etc)
|
||||
*/
|
||||
|
||||
const JSONValueNode = ({
|
||||
interface Props extends JSONValueNodeCircularPropsProvidedByJSONNode {
|
||||
nodeType: string;
|
||||
value: any;
|
||||
valueGetter?: (value: any) => any;
|
||||
}
|
||||
|
||||
const JSONValueNode: React.FunctionComponent<Props> = ({
|
||||
nodeType,
|
||||
styling,
|
||||
labelRenderer,
|
||||
keyPath,
|
||||
valueRenderer,
|
||||
value,
|
||||
valueGetter,
|
||||
valueGetter = (value) => value,
|
||||
}) => (
|
||||
<li {...styling('value', nodeType, keyPath)}>
|
||||
<label {...styling(['label', 'valueLabel'], nodeType, keyPath)}>
|
||||
|
@ -29,15 +36,11 @@ JSONValueNode.propTypes = {
|
|||
styling: PropTypes.func.isRequired,
|
||||
labelRenderer: PropTypes.func.isRequired,
|
||||
keyPath: PropTypes.arrayOf(
|
||||
PropTypes.oneOfType([PropTypes.string, PropTypes.number])
|
||||
PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired
|
||||
).isRequired,
|
||||
valueRenderer: PropTypes.func.isRequired,
|
||||
value: PropTypes.any,
|
||||
valueGetter: PropTypes.func,
|
||||
};
|
||||
|
||||
JSONValueNode.defaultProps = {
|
||||
valueGetter: (value) => value,
|
||||
};
|
||||
|
||||
export default JSONValueNode;
|
|
@ -1,7 +1,12 @@
|
|||
import { createStyling } from 'react-base16-styling';
|
||||
import {
|
||||
Base16Theme,
|
||||
createStyling,
|
||||
Styling,
|
||||
StylingConfig,
|
||||
} from 'react-base16-styling';
|
||||
import solarized from './themes/solarized';
|
||||
|
||||
const colorMap = (theme) => ({
|
||||
const colorMap = (theme: Base16Theme) => ({
|
||||
BACKGROUND_COLOR: theme.base00,
|
||||
TEXT_COLOR: theme.base07,
|
||||
STRING_COLOR: theme.base0B,
|
||||
|
@ -18,7 +23,12 @@ const colorMap = (theme) => ({
|
|||
ITEM_STRING_EXPANDED_COLOR: theme.base03,
|
||||
});
|
||||
|
||||
const valueColorMap = (colors) => ({
|
||||
type Color = keyof ReturnType<typeof colorMap>;
|
||||
type Colors = {
|
||||
[color in Color]: string;
|
||||
};
|
||||
|
||||
const valueColorMap = (colors: Colors) => ({
|
||||
String: colors.STRING_COLOR,
|
||||
Date: colors.DATE_COLOR,
|
||||
Number: colors.NUMBER_COLOR,
|
||||
|
@ -29,7 +39,7 @@ const valueColorMap = (colors) => ({
|
|||
Symbol: colors.SYMBOL_COLOR,
|
||||
});
|
||||
|
||||
const getDefaultThemeStyling = (theme) => {
|
||||
const getDefaultThemeStyling = (theme: Base16Theme): StylingConfig => {
|
||||
const colors = colorMap(theme);
|
||||
|
||||
return {
|
||||
|
@ -46,7 +56,7 @@ const getDefaultThemeStyling = (theme) => {
|
|||
backgroundColor: colors.BACKGROUND_COLOR,
|
||||
},
|
||||
|
||||
value: ({ style }, nodeType, keyPath) => ({
|
||||
value: ({ style }, nodeType, keyPath: (string | number)[]): Styling => ({
|
||||
style: {
|
||||
...style,
|
||||
paddingTop: '0.25em',
|
||||
|
@ -73,7 +83,9 @@ const getDefaultThemeStyling = (theme) => {
|
|||
valueText: ({ style }, nodeType) => ({
|
||||
style: {
|
||||
...style,
|
||||
color: valueColorMap(colors)[nodeType],
|
||||
color: valueColorMap(colors)[
|
||||
nodeType as keyof ReturnType<typeof valueColorMap>
|
||||
],
|
||||
},
|
||||
}),
|
||||
|
||||
|
@ -124,7 +136,13 @@ const getDefaultThemeStyling = (theme) => {
|
|||
left: '-0.4em',
|
||||
},
|
||||
|
||||
nestedNode: ({ style }, keyPath, nodeType, expanded, expandable) => ({
|
||||
nestedNode: (
|
||||
{ style },
|
||||
keyPath: (string | number)[],
|
||||
nodeType,
|
||||
expanded,
|
||||
expandable
|
||||
) => ({
|
||||
style: {
|
||||
...style,
|
||||
position: 'relative',
|
|
@ -1,18 +1,24 @@
|
|||
function getLength(type, collection) {
|
||||
function getLength(type: string, collection: any) {
|
||||
if (type === 'Object') {
|
||||
return Object.keys(collection).length;
|
||||
} else if (type === 'Array') {
|
||||
return collection.length;
|
||||
return (collection as unknown[]).length;
|
||||
}
|
||||
|
||||
return Infinity;
|
||||
}
|
||||
|
||||
function isIterableMap(collection) {
|
||||
return typeof collection.set === 'function';
|
||||
function isIterableMap(collection: any) {
|
||||
return typeof (collection as Map<any, any>).set === 'function';
|
||||
}
|
||||
|
||||
function getEntries(type, collection, sortObjectKeys, from = 0, to = Infinity) {
|
||||
function getEntries(
|
||||
type: string,
|
||||
collection: any,
|
||||
sortObjectKeys?: ((a: any, b: any) => number) | boolean | undefined,
|
||||
from = 0,
|
||||
to = Infinity
|
||||
): { entries: { key: string | number; value: any }[]; hasMore?: boolean } {
|
||||
let res;
|
||||
|
||||
if (type === 'Object') {
|
||||
|
@ -31,7 +37,7 @@ function getEntries(type, collection, sortObjectKeys, from = 0, to = Infinity) {
|
|||
res = {
|
||||
entries: collection
|
||||
.slice(from, to + 1)
|
||||
.map((val, idx) => ({ key: idx + from, value: val })),
|
||||
.map((val: unknown, idx: number) => ({ key: idx + from, value: val })),
|
||||
};
|
||||
} else {
|
||||
let idx = 0;
|
||||
|
@ -74,7 +80,7 @@ function getEntries(type, collection, sortObjectKeys, from = 0, to = Infinity) {
|
|||
return res;
|
||||
}
|
||||
|
||||
function getRanges(from, to, limit) {
|
||||
function getRanges(from: number, to: number, limit: number) {
|
||||
const ranges = [];
|
||||
while (to - from > limit * limit) {
|
||||
limit = limit * limit;
|
||||
|
@ -87,10 +93,10 @@ function getRanges(from, to, limit) {
|
|||
}
|
||||
|
||||
export default function getCollectionEntries(
|
||||
type,
|
||||
collection,
|
||||
sortObjectKeys,
|
||||
limit,
|
||||
type: string,
|
||||
collection: any,
|
||||
sortObjectKeys: ((a: any, b: any) => number) | boolean | undefined,
|
||||
limit: number,
|
||||
from = 0,
|
||||
to = Infinity
|
||||
) {
|
|
@ -7,19 +7,46 @@ import React from 'react';
|
|||
import PropTypes from 'prop-types';
|
||||
import JSONNode from './JSONNode';
|
||||
import createStylingFromTheme from './createStylingFromTheme';
|
||||
import { invertTheme } from 'react-base16-styling';
|
||||
import {
|
||||
invertTheme,
|
||||
StylingConfig,
|
||||
StylingFunction,
|
||||
Theme,
|
||||
} from 'react-base16-styling';
|
||||
import { CircularPropsPassedThroughJSONTree } from './types';
|
||||
|
||||
const identity = (value) => value;
|
||||
const expandRootNode = (keyName, data, level) => level === 0;
|
||||
const defaultItemString = (type, data, itemType, itemString) => (
|
||||
interface Props extends CircularPropsPassedThroughJSONTree {
|
||||
data: any;
|
||||
theme?: Theme;
|
||||
invertTheme: boolean;
|
||||
}
|
||||
|
||||
interface State {
|
||||
styling: StylingFunction;
|
||||
}
|
||||
|
||||
const identity = (value: any) => value;
|
||||
const expandRootNode = (
|
||||
keyPath: (string | number)[],
|
||||
data: any,
|
||||
level: number
|
||||
) => level === 0;
|
||||
const defaultItemString = (
|
||||
type: string,
|
||||
data: any,
|
||||
itemType: React.ReactNode,
|
||||
itemString: string
|
||||
) => (
|
||||
<span>
|
||||
{itemType} {itemString}
|
||||
</span>
|
||||
);
|
||||
const defaultLabelRenderer = ([label]) => <span>{label}:</span>;
|
||||
const defaultLabelRenderer = ([label]: (string | number)[]) => (
|
||||
<span>{label}:</span>
|
||||
);
|
||||
const noCustomNode = () => false;
|
||||
|
||||
function checkLegacyTheming(theme, props) {
|
||||
function checkLegacyTheming(theme: Theme | undefined, props: Props) {
|
||||
const deprecatedStylingMethodsMap = {
|
||||
getArrowStyle: 'arrow',
|
||||
getListStyle: 'nestedNodeChildren',
|
||||
|
@ -30,7 +57,7 @@ function checkLegacyTheming(theme, props) {
|
|||
|
||||
const deprecatedStylingMethods = Object.keys(
|
||||
deprecatedStylingMethodsMap
|
||||
).filter((name) => props[name]);
|
||||
).filter((name) => props[name as keyof Props]);
|
||||
|
||||
if (deprecatedStylingMethods.length > 0) {
|
||||
if (typeof theme === 'string') {
|
||||
|
@ -47,10 +74,14 @@ function checkLegacyTheming(theme, props) {
|
|||
`Styling method "${name}" is deprecated, use "theme" property instead`
|
||||
);
|
||||
|
||||
theme[deprecatedStylingMethodsMap[name]] = ({ style }, ...args) => ({
|
||||
(theme as StylingConfig)[
|
||||
deprecatedStylingMethodsMap[
|
||||
name as keyof typeof deprecatedStylingMethodsMap
|
||||
]
|
||||
] = ({ style }, ...args) => ({
|
||||
style: {
|
||||
...style,
|
||||
...props[name](...args),
|
||||
...props[name as keyof Props](...args),
|
||||
},
|
||||
});
|
||||
});
|
||||
|
@ -59,7 +90,7 @@ function checkLegacyTheming(theme, props) {
|
|||
return theme;
|
||||
}
|
||||
|
||||
function getStateFromProps(props) {
|
||||
function getStateFromProps(props: Props) {
|
||||
let theme = checkLegacyTheming(props.theme, props);
|
||||
if (props.invertTheme) {
|
||||
theme = invertTheme(theme);
|
||||
|
@ -70,7 +101,7 @@ function getStateFromProps(props) {
|
|||
};
|
||||
}
|
||||
|
||||
export default class JSONTree extends React.Component {
|
||||
export default class JSONTree extends React.Component<Props, State> {
|
||||
static propTypes = {
|
||||
data: PropTypes.any.isRequired,
|
||||
hideRoot: PropTypes.bool,
|
||||
|
@ -96,22 +127,26 @@ export default class JSONTree extends React.Component {
|
|||
invertTheme: true,
|
||||
};
|
||||
|
||||
constructor(props) {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
this.state = getStateFromProps(props);
|
||||
}
|
||||
|
||||
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||
if (['theme', 'invertTheme'].find((k) => nextProps[k] !== this.props[k])) {
|
||||
UNSAFE_componentWillReceiveProps(nextProps: Props) {
|
||||
if (
|
||||
['theme', 'invertTheme'].find(
|
||||
(k) => nextProps[k as keyof Props] !== this.props[k as keyof Props]
|
||||
)
|
||||
) {
|
||||
this.setState(getStateFromProps(nextProps));
|
||||
}
|
||||
}
|
||||
|
||||
shouldComponentUpdate(nextProps) {
|
||||
shouldComponentUpdate(nextProps: Props) {
|
||||
return !!Object.keys(nextProps).find((k) =>
|
||||
k === 'keyPath'
|
||||
? nextProps[k].join('/') !== this.props[k].join('/')
|
||||
: nextProps[k] !== this.props[k]
|
||||
: nextProps[k as keyof Props] !== this.props[k as keyof Props]
|
||||
);
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
export default function objType(obj) {
|
||||
export default function objType(obj: any) {
|
||||
const type = Object.prototype.toString.call(obj).slice(8, -1);
|
||||
if (type === 'Object' && typeof obj[Symbol.iterator] === 'function') {
|
||||
return 'Iterable';
|
74
packages/react-json-tree/src/types.ts
Normal file
74
packages/react-json-tree/src/types.ts
Normal file
|
@ -0,0 +1,74 @@
|
|||
import React from 'react';
|
||||
import { StylingFunction } from 'react-base16-styling';
|
||||
|
||||
interface SharedCircularPropsPassedThroughJSONTree {
|
||||
keyPath: (string | number)[];
|
||||
labelRenderer: (
|
||||
keyPath: (string | number)[],
|
||||
nodeType: string,
|
||||
expanded: boolean,
|
||||
expandable: boolean
|
||||
) => React.ReactNode;
|
||||
}
|
||||
interface SharedCircularPropsProvidedByJSONTree
|
||||
extends SharedCircularPropsPassedThroughJSONTree {
|
||||
styling: StylingFunction;
|
||||
}
|
||||
interface JSONValueNodeCircularPropsPassedThroughJSONTree {
|
||||
valueRenderer: (
|
||||
valueAsString: any,
|
||||
value: any,
|
||||
...keyPath: (string | number)[]
|
||||
) => React.ReactNode;
|
||||
}
|
||||
export type JSONValueNodeCircularPropsProvidedByJSONNode = SharedCircularPropsProvidedByJSONTree &
|
||||
JSONValueNodeCircularPropsPassedThroughJSONTree;
|
||||
|
||||
interface JSONNestedNodeCircularPropsPassedThroughJSONTree {
|
||||
shouldExpandNode: (
|
||||
keyPath: (string | number)[],
|
||||
data: any,
|
||||
level: number
|
||||
) => boolean;
|
||||
hideRoot: boolean;
|
||||
getItemString: (
|
||||
nodeType: string,
|
||||
data: any,
|
||||
itemType: React.ReactNode,
|
||||
itemString: string
|
||||
) => React.ReactNode;
|
||||
postprocessValue: (value: any) => any;
|
||||
isCustomNode: (value: any) => boolean;
|
||||
collectionLimit: number;
|
||||
sortObjectKeys?: ((a: any, b: any) => number) | boolean;
|
||||
}
|
||||
export type CircularPropsPassedThroughJSONTree = SharedCircularPropsPassedThroughJSONTree &
|
||||
JSONValueNodeCircularPropsPassedThroughJSONTree &
|
||||
JSONNestedNodeCircularPropsPassedThroughJSONTree;
|
||||
|
||||
interface JSONNestedNodeCircularPropsPassedThroughJSONNode
|
||||
extends JSONNestedNodeCircularPropsPassedThroughJSONTree {
|
||||
circularCache?: any[];
|
||||
isCircular?: boolean;
|
||||
level?: number;
|
||||
}
|
||||
export type CircularPropsPassedThroughJSONNode = SharedCircularPropsProvidedByJSONTree &
|
||||
JSONValueNodeCircularPropsPassedThroughJSONTree &
|
||||
JSONNestedNodeCircularPropsPassedThroughJSONNode;
|
||||
|
||||
export interface JSONNestedNodeCircularPropsPassedThroughJSONNestedNode
|
||||
extends JSONNestedNodeCircularPropsPassedThroughJSONNode {
|
||||
circularCache: any[];
|
||||
level: number;
|
||||
}
|
||||
export type CircularPropsPassedThroughJSONNestedNode = SharedCircularPropsProvidedByJSONTree &
|
||||
JSONValueNodeCircularPropsPassedThroughJSONTree &
|
||||
JSONNestedNodeCircularPropsPassedThroughJSONNestedNode;
|
||||
|
||||
export type CircularPropsPassedThroughRenderChildNodes = SharedCircularPropsProvidedByJSONTree &
|
||||
JSONValueNodeCircularPropsPassedThroughJSONTree &
|
||||
JSONNestedNodeCircularPropsPassedThroughJSONNestedNode;
|
||||
|
||||
export type CircularPropsPassedThroughItemRange = SharedCircularPropsProvidedByJSONTree &
|
||||
JSONValueNodeCircularPropsPassedThroughJSONTree &
|
||||
JSONNestedNodeCircularPropsPassedThroughJSONNestedNode;
|
10
packages/react-json-tree/src/utils/hexToRgb.js
vendored
10
packages/react-json-tree/src/utils/hexToRgb.js
vendored
|
@ -1,10 +0,0 @@
|
|||
export default function (hex) {
|
||||
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
||||
return result
|
||||
? {
|
||||
r: parseInt(result[1], 16),
|
||||
g: parseInt(result[2], 16),
|
||||
b: parseInt(result[3], 16),
|
||||
}
|
||||
: null;
|
||||
}
|
|
@ -6,7 +6,7 @@ import JSONNode from '../src/JSONNode';
|
|||
|
||||
const BASIC_DATA = { a: 1, b: 'c' };
|
||||
|
||||
function render(component) {
|
||||
function render(component: React.ReactElement) {
|
||||
const renderer = createRenderer();
|
||||
renderer.render(component);
|
||||
return renderer.getRenderOutput();
|
|
@ -10,7 +10,11 @@ describe('objType', () => {
|
|||
expect(objType(new WeakSet())).toBe('WeakSet');
|
||||
expect(objType(new Error())).toBe('Error');
|
||||
expect(objType(new Date())).toBe('Date');
|
||||
expect(objType(() => {})).toBe('Function');
|
||||
expect(
|
||||
objType(() => {
|
||||
// noop
|
||||
})
|
||||
).toBe('Function');
|
||||
expect(objType('')).toBe('String');
|
||||
expect(objType(true)).toBe('Boolean');
|
||||
expect(objType(null)).toBe('Null');
|
4
packages/react-json-tree/test/tsconfig.json
Normal file
4
packages/react-json-tree/test/tsconfig.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"extends": "../../../tsconfig.react.base.json",
|
||||
"include": ["../src", "."]
|
||||
}
|
7
packages/react-json-tree/tsconfig.json
Normal file
7
packages/react-json-tree/tsconfig.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"extends": "../../tsconfig.react.base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "lib"
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
4
packages/react-json-tree/tsconfig.webpack.json
Normal file
4
packages/react-json-tree/tsconfig.webpack.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"include": ["webpack.config.umd.ts"]
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
const path = require('path');
|
||||
import * as path from 'path';
|
||||
|
||||
module.exports = (env = {}) => ({
|
||||
module.exports = (env: { production?: boolean } = {}) => ({
|
||||
mode: env.production ? 'production' : 'development',
|
||||
entry: {
|
||||
app: ['./src/index.js'],
|
||||
app: ['./src/index'],
|
||||
},
|
||||
output: {
|
||||
library: 'ReactJsonTree',
|
||||
|
@ -15,12 +15,15 @@ module.exports = (env = {}) => ({
|
|||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
test: /\.(js|ts)x?$/,
|
||||
loader: 'babel-loader',
|
||||
exclude: /node_modules/,
|
||||
},
|
||||
],
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['.js', '.jsx', '.ts', '.tsx'],
|
||||
},
|
||||
externals: {
|
||||
react: {
|
||||
root: 'React',
|
||||
|
@ -28,11 +31,5 @@ module.exports = (env = {}) => ({
|
|||
commonjs: 'react',
|
||||
amd: 'react',
|
||||
},
|
||||
'react-dom': {
|
||||
root: 'ReactDOM',
|
||||
commonjs2: 'react-dom',
|
||||
commonjs: 'react-dom',
|
||||
amd: 'react-dom',
|
||||
},
|
||||
},
|
||||
});
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "es2019",
|
||||
"target": "es2018",
|
||||
"module": "commonjs",
|
||||
"declaration": true,
|
||||
"strict": true,
|
||||
|
|
6
tsconfig.react.base.json
Normal file
6
tsconfig.react.base.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"extends": "./tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"jsx": "react"
|
||||
}
|
||||
}
|
343
yarn.lock
343
yarn.lock
|
@ -3050,6 +3050,14 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/base16/-/base16-1.0.2.tgz#eb3a07db52309bfefb9ba010dfdb3c0784971f65"
|
||||
integrity sha512-oYO/U4VD1DavwrKuCSQWdLG+5K22SLPem2OQaHmFcQuwHoVeGC+JGVRji2MUqZUAIQZHEonOeVfAX09hYiLsdg==
|
||||
|
||||
"@types/body-parser@*":
|
||||
version "1.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f"
|
||||
integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==
|
||||
dependencies:
|
||||
"@types/connect" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/classnames@^2.2.10":
|
||||
version "2.2.10"
|
||||
resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.10.tgz#cc658ca319b6355399efc1f5b9e818f1a24bf999"
|
||||
|
@ -3074,11 +3082,45 @@
|
|||
dependencies:
|
||||
"@types/color-convert" "*"
|
||||
|
||||
"@types/connect-history-api-fallback@*":
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.3.tgz#4772b79b8b53185f0f4c9deab09236baf76ee3b4"
|
||||
integrity sha512-7SxFCd+FLlxCfwVwbyPxbR4khL9aNikJhrorw8nUIOqeuooc9gifBuDQOJw5kzN7i6i3vLn9G8Wde/4QDihpYw==
|
||||
dependencies:
|
||||
"@types/express-serve-static-core" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/connect@*":
|
||||
version "3.4.33"
|
||||
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546"
|
||||
integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/eslint-visitor-keys@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
|
||||
integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==
|
||||
|
||||
"@types/express-serve-static-core@*":
|
||||
version "4.17.9"
|
||||
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz#2d7b34dcfd25ec663c25c85d76608f8b249667f1"
|
||||
integrity sha512-DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
"@types/qs" "*"
|
||||
"@types/range-parser" "*"
|
||||
|
||||
"@types/express@*":
|
||||
version "4.17.7"
|
||||
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.7.tgz#42045be6475636d9801369cd4418ef65cdb0dd59"
|
||||
integrity sha512-dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ==
|
||||
dependencies:
|
||||
"@types/body-parser" "*"
|
||||
"@types/express-serve-static-core" "*"
|
||||
"@types/qs" "*"
|
||||
"@types/serve-static" "*"
|
||||
|
||||
"@types/glob@^7.1.1":
|
||||
version "7.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183"
|
||||
|
@ -3099,6 +3141,22 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz#551a4589b6ee2cc9c1dff08056128aec29b94880"
|
||||
integrity sha512-iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA==
|
||||
|
||||
"@types/http-proxy-middleware@*":
|
||||
version "0.19.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/http-proxy-middleware/-/http-proxy-middleware-0.19.3.tgz#b2eb96fbc0f9ac7250b5d9c4c53aade049497d03"
|
||||
integrity sha512-lnBTx6HCOUeIJMLbI/LaL5EmdKLhczJY5oeXZpX/cXE4rRqb3RmV7VcMpiEfYkmTjipv3h7IAyIINe4plEv7cA==
|
||||
dependencies:
|
||||
"@types/connect" "*"
|
||||
"@types/http-proxy" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/http-proxy@*":
|
||||
version "1.17.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.4.tgz#e7c92e3dbe3e13aa799440ff42e6d3a17a9d045b"
|
||||
integrity sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/invariant@^2.2.33":
|
||||
version "2.2.33"
|
||||
resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.33.tgz#ec5eec29c63bf5e4ca164e9feb3ef7337cdcbadb"
|
||||
|
@ -3156,6 +3214,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.159.tgz#61089719dc6fdd9c5cb46efc827f2571d1517065"
|
||||
integrity sha512-gF7A72f7WQN33DpqOWw9geApQPh4M3PxluMtaHxWHXEGSN12/WbcEk/eNSqWNQcQhF66VSZ06vCF94CrHwXJDg==
|
||||
|
||||
"@types/mime@*":
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a"
|
||||
integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==
|
||||
|
||||
"@types/minimatch@*":
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
|
||||
|
@ -3176,6 +3239,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1"
|
||||
integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==
|
||||
|
||||
"@types/node@^14.6.0":
|
||||
version "14.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499"
|
||||
integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==
|
||||
|
||||
"@types/normalize-package-data@^2.4.0":
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
|
||||
|
@ -3201,6 +3269,23 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"
|
||||
integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==
|
||||
|
||||
"@types/qs@*":
|
||||
version "6.9.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.4.tgz#a59e851c1ba16c0513ea123830dd639a0a15cb6a"
|
||||
integrity sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ==
|
||||
|
||||
"@types/range-parser@*":
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
|
||||
integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
|
||||
|
||||
"@types/react-test-renderer@^16.9.3":
|
||||
version "16.9.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-16.9.3.tgz#96bab1860904366f4e848b739ba0e2f67bcae87e"
|
||||
integrity sha512-wJ7IlN5NI82XMLOyHSa+cNN4Z0I+8/YaLl04uDgcZ+W+ExWCmCiVTLT/7fRNqzy4OhStZcUwIqLNF7q+AdW43Q==
|
||||
dependencies:
|
||||
"@types/react" "*"
|
||||
|
||||
"@types/react-transition-group@^4.4.0":
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.0.tgz#882839db465df1320e4753e6e9f70ca7e9b4d46d"
|
||||
|
@ -3216,6 +3301,14 @@
|
|||
"@types/prop-types" "*"
|
||||
csstype "^3.0.2"
|
||||
|
||||
"@types/serve-static@*":
|
||||
version "1.13.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.5.tgz#3d25d941a18415d3ab092def846e135a08bbcf53"
|
||||
integrity sha512-6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ==
|
||||
dependencies:
|
||||
"@types/express-serve-static-core" "*"
|
||||
"@types/mime" "*"
|
||||
|
||||
"@types/source-list-map@*":
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
|
||||
|
@ -3248,6 +3341,17 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52"
|
||||
integrity sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=
|
||||
|
||||
"@types/webpack-dev-server@^3.11.0":
|
||||
version "3.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#bcc3b85e7dc6ac2db25330610513f2228c2fcfb2"
|
||||
integrity sha512-3+86AgSzl18n5P1iUP9/lz3G3GMztCp+wxdDvVuNhx1sr1jE79GpYfKHL8k+Vht3N74K2n98CuAEw4YPJCYtDA==
|
||||
dependencies:
|
||||
"@types/connect-history-api-fallback" "*"
|
||||
"@types/express" "*"
|
||||
"@types/http-proxy-middleware" "*"
|
||||
"@types/serve-static" "*"
|
||||
"@types/webpack" "*"
|
||||
|
||||
"@types/webpack-sources@*":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-1.4.2.tgz#5d3d4dea04008a779a90135ff96fb5c0c9e6292c"
|
||||
|
@ -3257,7 +3361,7 @@
|
|||
"@types/source-list-map" "*"
|
||||
source-map "^0.7.3"
|
||||
|
||||
"@types/webpack@^4.4.31", "@types/webpack@^4.41.8":
|
||||
"@types/webpack@*", "@types/webpack@^4.4.31", "@types/webpack@^4.41.21", "@types/webpack@^4.41.8":
|
||||
version "4.41.21"
|
||||
resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.21.tgz#cc685b332c33f153bb2f5fc1fa3ac8adeb592dee"
|
||||
integrity sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA==
|
||||
|
@ -3620,14 +3724,6 @@ agentkeepalive@^3.4.1:
|
|||
dependencies:
|
||||
humanize-ms "^1.2.1"
|
||||
|
||||
aggregate-error@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0"
|
||||
integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==
|
||||
dependencies:
|
||||
clean-stack "^2.0.0"
|
||||
indent-string "^4.0.0"
|
||||
|
||||
"airbnb-js-shims@^1 || ^2":
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz#db481102d682b98ed1daa4c5baa697a05ce5c040"
|
||||
|
@ -3713,7 +3809,7 @@ ansi-escapes@^3.0.0, ansi-escapes@^3.2.0:
|
|||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
|
||||
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
|
||||
|
||||
ansi-escapes@^4.2.1, ansi-escapes@^4.3.0:
|
||||
ansi-escapes@^4.2.1:
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
|
||||
integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
|
||||
|
@ -3865,6 +3961,11 @@ are-we-there-yet@~1.1.2:
|
|||
delegates "^1.0.0"
|
||||
readable-stream "^2.0.6"
|
||||
|
||||
arg@^4.1.0:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
|
||||
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
|
||||
|
||||
argparse@^1.0.7:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
|
||||
|
@ -4072,11 +4173,6 @@ astral-regex@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
|
||||
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
|
||||
|
||||
astral-regex@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
||||
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
||||
|
||||
async-each@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
|
||||
|
@ -5280,11 +5376,6 @@ clean-css@^4.2.3:
|
|||
dependencies:
|
||||
source-map "~0.6.0"
|
||||
|
||||
clean-stack@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
|
||||
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
|
||||
|
||||
clean-webpack-plugin@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz#a99d8ec34c1c628a4541567aa7b457446460c62b"
|
||||
|
@ -5305,13 +5396,6 @@ cli-cursor@^2.1.0:
|
|||
dependencies:
|
||||
restore-cursor "^2.0.0"
|
||||
|
||||
cli-cursor@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
|
||||
integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
|
||||
dependencies:
|
||||
restore-cursor "^3.1.0"
|
||||
|
||||
cli-table3@0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202"
|
||||
|
@ -5322,14 +5406,6 @@ cli-table3@0.5.1:
|
|||
optionalDependencies:
|
||||
colors "^1.1.2"
|
||||
|
||||
cli-truncate@2.1.0, cli-truncate@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
|
||||
integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
|
||||
dependencies:
|
||||
slice-ansi "^3.0.0"
|
||||
string-width "^4.2.0"
|
||||
|
||||
cli-width@^2.0.0:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
|
||||
|
@ -5524,11 +5600,6 @@ commander@^4.0.1, commander@^4.1.1:
|
|||
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
|
||||
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
|
||||
|
||||
commander@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
|
||||
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
|
||||
|
||||
common-tags@^1.8.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
|
||||
|
@ -5547,11 +5618,6 @@ compare-func@^2.0.0:
|
|||
array-ify "^1.0.0"
|
||||
dot-prop "^5.1.0"
|
||||
|
||||
compare-versions@^3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
|
||||
integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
|
||||
|
||||
component-emitter@1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
|
||||
|
@ -6432,6 +6498,11 @@ diff-sequences@^26.0.0:
|
|||
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.0.0.tgz#0760059a5c287637b842bd7085311db7060e88a6"
|
||||
integrity sha512-JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg==
|
||||
|
||||
diff@^4.0.1:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
|
||||
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
|
||||
|
||||
diffie-hellman@^5.0.0:
|
||||
version "5.0.3"
|
||||
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
|
||||
|
@ -7253,7 +7324,7 @@ execa@^1.0.0:
|
|||
signal-exit "^3.0.0"
|
||||
strip-eof "^1.0.0"
|
||||
|
||||
execa@^4.0.0, execa@^4.0.1:
|
||||
execa@^4.0.0:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2"
|
||||
integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==
|
||||
|
@ -7544,13 +7615,6 @@ figures@^2.0.0:
|
|||
dependencies:
|
||||
escape-string-regexp "^1.0.5"
|
||||
|
||||
figures@^3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
|
||||
integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
|
||||
dependencies:
|
||||
escape-string-regexp "^1.0.5"
|
||||
|
||||
file-entry-cache@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
|
||||
|
@ -7679,13 +7743,6 @@ find-up@^4.0.0, find-up@^4.1.0:
|
|||
locate-path "^5.0.0"
|
||||
path-exists "^4.0.0"
|
||||
|
||||
find-versions@^3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e"
|
||||
integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==
|
||||
dependencies:
|
||||
semver-regex "^2.0.0"
|
||||
|
||||
findup-sync@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"
|
||||
|
@ -7967,11 +8024,6 @@ get-caller-file@^2.0.1:
|
|||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
||||
|
||||
get-own-enumerable-property-symbols@^3.0.0:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
|
||||
integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
|
||||
|
||||
get-package-type@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
|
||||
|
@ -8736,22 +8788,6 @@ humanize-ms@^1.2.1:
|
|||
dependencies:
|
||||
ms "^2.0.0"
|
||||
|
||||
husky@^4.2.5:
|
||||
version "4.2.5"
|
||||
resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36"
|
||||
integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==
|
||||
dependencies:
|
||||
chalk "^4.0.0"
|
||||
ci-info "^2.0.0"
|
||||
compare-versions "^3.6.0"
|
||||
cosmiconfig "^6.0.0"
|
||||
find-versions "^3.2.0"
|
||||
opencollective-postinstall "^2.0.2"
|
||||
pkg-dir "^4.2.0"
|
||||
please-upgrade-node "^3.2.0"
|
||||
slash "^3.0.0"
|
||||
which-pm-runs "^1.0.0"
|
||||
|
||||
hyphenate-style-name@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d"
|
||||
|
@ -9319,7 +9355,7 @@ is-number@^7.0.0:
|
|||
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
||||
|
||||
is-obj@^1.0.0, is-obj@^1.0.1:
|
||||
is-obj@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
|
||||
integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
|
||||
|
@ -9387,11 +9423,6 @@ is-regex@^1.0.4, is-regex@^1.0.5, is-regex@^1.1.0:
|
|||
dependencies:
|
||||
has-symbols "^1.0.1"
|
||||
|
||||
is-regexp@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
|
||||
integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
|
||||
|
||||
is-regexp@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d"
|
||||
|
@ -10546,41 +10577,6 @@ linked-list@0.1.0:
|
|||
resolved "https://registry.yarnpkg.com/linked-list/-/linked-list-0.1.0.tgz#798b0ff97d1b92a4fd08480f55aea4e9d49d37bf"
|
||||
integrity sha1-eYsP+X0bkqT9CEgPVa6k6dSdN78=
|
||||
|
||||
lint-staged@^10.2.11:
|
||||
version "10.2.11"
|
||||
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.11.tgz#713c80877f2dc8b609b05bc59020234e766c9720"
|
||||
integrity sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA==
|
||||
dependencies:
|
||||
chalk "^4.0.0"
|
||||
cli-truncate "2.1.0"
|
||||
commander "^5.1.0"
|
||||
cosmiconfig "^6.0.0"
|
||||
debug "^4.1.1"
|
||||
dedent "^0.7.0"
|
||||
enquirer "^2.3.5"
|
||||
execa "^4.0.1"
|
||||
listr2 "^2.1.0"
|
||||
log-symbols "^4.0.0"
|
||||
micromatch "^4.0.2"
|
||||
normalize-path "^3.0.0"
|
||||
please-upgrade-node "^3.2.0"
|
||||
string-argv "0.3.1"
|
||||
stringify-object "^3.3.0"
|
||||
|
||||
listr2@^2.1.0:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/listr2/-/listr2-2.4.1.tgz#006fc94ae77b3195403cbf3a4a563e2d6366224f"
|
||||
integrity sha512-8pYsCZCztr5+KAjReLyBeGhLV0vaQ2Du/eMe/ux9QAfQl7efiWejM1IWjALh0zHIRYuIbhQ8N2KztZ4ci56pnQ==
|
||||
dependencies:
|
||||
chalk "^4.1.0"
|
||||
cli-truncate "^2.1.0"
|
||||
figures "^3.2.0"
|
||||
indent-string "^4.0.0"
|
||||
log-update "^4.0.0"
|
||||
p-map "^4.0.0"
|
||||
rxjs "^6.6.0"
|
||||
through "^2.3.8"
|
||||
|
||||
load-json-file@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
|
||||
|
@ -10833,16 +10829,6 @@ log-symbols@^4.0.0:
|
|||
dependencies:
|
||||
chalk "^4.0.0"
|
||||
|
||||
log-update@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
|
||||
integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
|
||||
dependencies:
|
||||
ansi-escapes "^4.3.0"
|
||||
cli-cursor "^3.1.0"
|
||||
slice-ansi "^4.0.0"
|
||||
wrap-ansi "^6.2.0"
|
||||
|
||||
loglevel@^1.6.8:
|
||||
version "1.6.8"
|
||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171"
|
||||
|
@ -10927,7 +10913,7 @@ make-dir@^3.0.0:
|
|||
dependencies:
|
||||
semver "^6.0.0"
|
||||
|
||||
make-error@1.x, make-error@^1.3.5:
|
||||
make-error@1.x, make-error@^1.1.1, make-error@^1.3.5:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
|
||||
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
|
||||
|
@ -12040,11 +12026,6 @@ open@^7.1.0:
|
|||
is-docker "^2.0.0"
|
||||
is-wsl "^2.1.1"
|
||||
|
||||
opencollective-postinstall@^2.0.2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
|
||||
integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
|
||||
|
||||
opn@5.4.0:
|
||||
version "5.4.0"
|
||||
resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035"
|
||||
|
@ -12183,13 +12164,6 @@ p-map@^2.0.0, p-map@^2.1.0:
|
|||
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
|
||||
integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
|
||||
|
||||
p-map@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
|
||||
integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
|
||||
dependencies:
|
||||
aggregate-error "^3.0.0"
|
||||
|
||||
p-pipe@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9"
|
||||
|
@ -12576,13 +12550,6 @@ pkg-up@2.0.0:
|
|||
dependencies:
|
||||
find-up "^2.1.0"
|
||||
|
||||
please-upgrade-node@^3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
|
||||
integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
|
||||
dependencies:
|
||||
semver-compare "^1.0.0"
|
||||
|
||||
portfinder@^1.0.26:
|
||||
version "1.0.28"
|
||||
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
|
||||
|
@ -14060,14 +14027,6 @@ restore-cursor@^2.0.0:
|
|||
onetime "^2.0.0"
|
||||
signal-exit "^3.0.2"
|
||||
|
||||
restore-cursor@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
|
||||
integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
|
||||
dependencies:
|
||||
onetime "^5.1.0"
|
||||
signal-exit "^3.0.2"
|
||||
|
||||
ret@~0.1.10:
|
||||
version "0.1.15"
|
||||
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
|
||||
|
@ -14166,7 +14125,7 @@ rxjs@^5.5.2:
|
|||
dependencies:
|
||||
symbol-observable "1.0.1"
|
||||
|
||||
rxjs@^6.1.0, rxjs@^6.4.0, rxjs@^6.6.0, rxjs@^6.6.2:
|
||||
rxjs@^6.1.0, rxjs@^6.4.0, rxjs@^6.6.2:
|
||||
version "6.6.2"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2"
|
||||
integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==
|
||||
|
@ -14347,11 +14306,6 @@ semver-compare@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
|
||||
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
|
||||
|
||||
semver-regex@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338"
|
||||
integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==
|
||||
|
||||
"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
|
||||
version "5.7.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
||||
|
@ -14623,24 +14577,6 @@ slice-ansi@^2.1.0:
|
|||
astral-regex "^1.0.0"
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
|
||||
slice-ansi@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
|
||||
integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
|
||||
dependencies:
|
||||
ansi-styles "^4.0.0"
|
||||
astral-regex "^2.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
|
||||
slice-ansi@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
|
||||
integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
|
||||
dependencies:
|
||||
ansi-styles "^4.0.0"
|
||||
astral-regex "^2.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
|
||||
sliced@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41"
|
||||
|
@ -14806,7 +14742,7 @@ source-map-resolve@^0.5.0:
|
|||
source-map-url "^0.4.0"
|
||||
urix "^0.1.0"
|
||||
|
||||
source-map-support@^0.5.1, source-map-support@^0.5.6, source-map-support@~0.5.12:
|
||||
source-map-support@^0.5.1, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.12:
|
||||
version "0.5.19"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
|
||||
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
|
||||
|
@ -15025,11 +14961,6 @@ stream-shift@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
|
||||
integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
|
||||
|
||||
string-argv@0.3.1:
|
||||
version "0.3.1"
|
||||
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
|
||||
integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
|
||||
|
||||
string-length@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1"
|
||||
|
@ -15151,15 +15082,6 @@ stringify-entities@^3.0.0:
|
|||
is-decimal "^1.0.2"
|
||||
is-hexadecimal "^1.0.0"
|
||||
|
||||
stringify-object@^3.3.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
|
||||
integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
|
||||
dependencies:
|
||||
get-own-enumerable-property-symbols "^3.0.0"
|
||||
is-obj "^1.0.1"
|
||||
is-regexp "^1.0.0"
|
||||
|
||||
strip-ansi@4.0.0, strip-ansi@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
|
||||
|
@ -15660,7 +15582,7 @@ through2@^3.0.0:
|
|||
inherits "^2.0.4"
|
||||
readable-stream "2 || 3"
|
||||
|
||||
through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8:
|
||||
through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6:
|
||||
version "2.3.8"
|
||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
|
||||
|
@ -15873,6 +15795,17 @@ ts-jest@^26.2.0:
|
|||
semver "7.x"
|
||||
yargs-parser "18.x"
|
||||
|
||||
ts-node@^9.0.0:
|
||||
version "9.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.0.0.tgz#e7699d2a110cc8c0d3b831715e417688683460b3"
|
||||
integrity sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==
|
||||
dependencies:
|
||||
arg "^4.1.0"
|
||||
diff "^4.0.1"
|
||||
make-error "^1.1.1"
|
||||
source-map-support "^0.5.17"
|
||||
yn "3.1.1"
|
||||
|
||||
tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
|
||||
version "1.13.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
|
||||
|
@ -16660,11 +16593,6 @@ which-module@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
||||
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
|
||||
|
||||
which-pm-runs@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
|
||||
integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
|
||||
|
||||
which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
|
||||
|
@ -16934,6 +16862,11 @@ yauzl@^2.10.0:
|
|||
buffer-crc32 "~0.2.3"
|
||||
fd-slicer "~1.1.0"
|
||||
|
||||
yn@3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
|
||||
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
|
||||
|
||||
zen-observable-ts@^0.8.21:
|
||||
version "0.8.21"
|
||||
resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d"
|
||||
|
|
Loading…
Reference in New Issue
Block a user