From c4bab9ac93e5a04d743b1267b325128392ce15b7 Mon Sep 17 00:00:00 2001 From: Chris Trevino Date: Fri, 1 Jun 2018 00:49:19 -0700 Subject: [PATCH] Remove 'require' statements from main code (#1050) Removing require() invocations, which was causing troubles for some users due to their transpiled behavior. Lodash utilities are all imported with `import` now. Some libraries did not have typings available: namely asap and disposables. asap has been replaced with SetImmediate, and disposables has been replaced with a local implementation. The repository is not being maintained, and the recommended replacement is inactive and lacks typings. Moving the remaining documentation code to Typescript, which makes the need for .eslint kind of vestigial now. So we're removing eslint and vestigial babel configs. Added any dependencies from `@types/*`, or that provide their own typings, to the nohoist configuration of the top level. This allowed us to discover some issues where packages were depending on types included with another package. --- .babelrc | 4 - .codeclimate.yml | 3 - .eslintignore | 11 - .eslintrc | 27 - .vscode/extensions.json | 1 - .vscode/settings.json | 4 - package.json | 31 +- packages/dnd-core/.eslintrc | 5 - packages/dnd-core/.npmignore | 2 - packages/dnd-core/package.json | 7 +- packages/dnd-core/src/DragDropManagerImpl.ts | 2 +- packages/dnd-core/src/HandlerRegistryImpl.ts | 58 +- packages/dnd-core/src/__tests__/.eslintrc | 2 - .../src/__tests__/DragDropMonitor.spec.ts | 44 +- packages/documentation/examples/.eslintrc | 15 - .../examples/01 Dustbin/Copy or Move/Box.tsx | 2 +- .../examples/01 Dustbin/Single Target/Box.tsx | 2 +- .../04 Sortable/Stress Test/index.tsx | 2 +- packages/documentation/package.json | 30 +- .../scripts/buildSiteIndexPages.sh | 70 -- .../scripts/buildSiteIndexPages.ts | 58 ++ .../documentation/scripts/buildStaticSite.sh | 2 +- .../scripts/startSiteDevServer.sh | 9 - .../site/{Constants.js => Constants.ts} | 21 +- .../site/{IndexPage.js => IndexPage.tsx} | 104 +-- packages/documentation/site/client.js | 5 - packages/documentation/site/client.tsx | 6 + .../{CodeBlock.js => CodeBlock.tsx} | 107 ++- .../site/components/{Cover.js => Cover.tsx} | 6 +- .../site/components/{Header.js => Header.tsx} | 6 +- .../site/components/{NavBar.js => NavBar.tsx} | 8 +- .../components/{PageBody.js => PageBody.tsx} | 14 +- .../components/{SideBar.js => SideBar.tsx} | 16 +- ...StaticHTMLBlock.js => StaticHTMLBlock.tsx} | 20 +- .../site/pages/{APIPage.js => APIPage.tsx} | 8 +- .../pages/{ExamplePage.js => ExamplePage.tsx} | 14 +- .../site/pages/{HomePage.js => HomePage.tsx} | 13 +- .../site/{renderPath.js => renderPath.ts} | 2 +- .../site/webpack-client.config.js | 17 +- .../site/webpack-prerender.config.js | 7 +- packages/documentation/tsconfig.json | 5 +- packages/react-dnd-html5-backend/.babelrc | 3 - .../react-dnd-html5-backend/.eslintignore | 5 - packages/react-dnd-html5-backend/.eslintrc | 2 - packages/react-dnd-html5-backend/.npmignore | 3 - packages/react-dnd-html5-backend/package.json | 22 +- .../src/BrowserDetector.ts | 9 +- .../src/HTML5Backend.ts | 6 +- .../src/MonotonicInterpolant.ts | 4 - .../src/NativeDragSources.ts | 4 +- .../src/__tests__/.eslintrc | 2 - packages/react-dnd-test-backend/.babelrc | 3 - packages/react-dnd-test-backend/.eslintignore | 4 - packages/react-dnd-test-backend/.eslintrc | 6 - packages/react-dnd-test-backend/.npmignore | 2 - packages/react-dnd-test-backend/package.json | 3 +- packages/react-dnd/.babelrc | 4 - packages/react-dnd/.eslintignore | 2 - packages/react-dnd/.eslintrc | 2 - packages/react-dnd/.npmignore | 3 - packages/react-dnd/package.json | 18 +- packages/react-dnd/src/DragDropContext.tsx | 2 +- packages/react-dnd/src/DragLayer.tsx | 5 +- packages/react-dnd/src/DragSource.ts | 2 +- packages/react-dnd/src/DropTarget.ts | 2 +- .../react-dnd/src/createSourceConnector.ts | 3 +- .../react-dnd/src/createTargetConnector.ts | 2 +- packages/react-dnd/src/decorateHandler.tsx | 7 +- .../utils/disposables/CompositeDisposable.ts | 82 ++ .../src/utils/disposables/Disposable.ts | 53 ++ .../src/utils/disposables/SerialDisposable.ts | 46 ++ .../react-dnd/src/utils/disposables/index.ts | 3 + yarn.lock | 723 +++--------------- 73 files changed, 713 insertions(+), 1094 deletions(-) delete mode 100644 .babelrc delete mode 100644 .eslintignore delete mode 100644 .eslintrc delete mode 100644 packages/dnd-core/.eslintrc delete mode 100644 packages/dnd-core/src/__tests__/.eslintrc delete mode 100644 packages/documentation/examples/.eslintrc delete mode 100755 packages/documentation/scripts/buildSiteIndexPages.sh create mode 100755 packages/documentation/scripts/buildSiteIndexPages.ts delete mode 100755 packages/documentation/scripts/startSiteDevServer.sh rename packages/documentation/site/{Constants.js => Constants.ts} (90%) rename packages/documentation/site/{IndexPage.js => IndexPage.tsx} (73%) delete mode 100644 packages/documentation/site/client.js create mode 100644 packages/documentation/site/client.tsx rename packages/documentation/site/components/{CodeBlock.js => CodeBlock.tsx} (52%) rename packages/documentation/site/components/{Cover.js => Cover.tsx} (65%) rename packages/documentation/site/components/{Header.js => Header.tsx} (65%) rename packages/documentation/site/components/{NavBar.js => NavBar.tsx} (83%) rename packages/documentation/site/components/{PageBody.js => PageBody.tsx} (50%) rename packages/documentation/site/components/{SideBar.js => SideBar.tsx} (66%) rename packages/documentation/site/components/{StaticHTMLBlock.js => StaticHTMLBlock.tsx} (75%) rename packages/documentation/site/pages/{APIPage.js => APIPage.tsx} (80%) rename packages/documentation/site/pages/{ExamplePage.js => ExamplePage.tsx} (53%) rename packages/documentation/site/pages/{HomePage.js => HomePage.tsx} (54%) rename packages/documentation/site/{renderPath.js => renderPath.ts} (58%) delete mode 100644 packages/react-dnd-html5-backend/.babelrc delete mode 100644 packages/react-dnd-html5-backend/.eslintignore delete mode 100644 packages/react-dnd-html5-backend/.eslintrc delete mode 100644 packages/react-dnd-html5-backend/src/__tests__/.eslintrc delete mode 100644 packages/react-dnd-test-backend/.babelrc delete mode 100644 packages/react-dnd-test-backend/.eslintignore delete mode 100644 packages/react-dnd-test-backend/.eslintrc delete mode 100644 packages/react-dnd/.babelrc delete mode 100644 packages/react-dnd/.eslintignore delete mode 100644 packages/react-dnd/.eslintrc create mode 100644 packages/react-dnd/src/utils/disposables/CompositeDisposable.ts create mode 100644 packages/react-dnd/src/utils/disposables/Disposable.ts create mode 100644 packages/react-dnd/src/utils/disposables/SerialDisposable.ts create mode 100644 packages/react-dnd/src/utils/disposables/index.ts diff --git a/.babelrc b/.babelrc deleted file mode 100644 index f8e2d6f2d8..0000000000 --- a/.babelrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "presets": ["env", "stage-2", "react"], - "plugins": ["transform-decorators-legacy"] -} diff --git a/.codeclimate.yml b/.codeclimate.yml index 868014a777..0f6ff31bb8 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -1,6 +1,3 @@ -engines: - eslint: - enabled: true ratings: paths: - "**.js" diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 7c3ffb7502..0000000000 --- a/.eslintignore +++ /dev/null @@ -1,11 +0,0 @@ -__site__ -__site_prerender__ -site -scripts -node_modules -coverage -docs -dist -lib -webpack.config.js -wallaby.js diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index e5302e1edb..0000000000 --- a/.eslintrc +++ /dev/null @@ -1,27 +0,0 @@ -extends: - - eslint-config-airbnb - - eslint-config-prettier - -parser: babel-eslint -parserOptions: - ecmaFeatures: - experimentalDecorators: true -env: - browser: true - node: true - -rules: - # Disabled due to conflicts with monorepo structure - # See: https://github.com/benmosher/eslint-plugin-import/issues/458 - import/no-extraneous-dependencies: off - import/no-unresolved: off - import/extensions: off - - # These rules are covered by prettier - react/jsx-indent: off - react/jsx-indent-props: off - - # These rules are super annoying in this project - react/jsx-filename-extension: off - class-methods-use-this: off - no-confusing-arrow: off diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 3b0ac0f7fb..0eb8291603 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,5 @@ { "recommendations": [ - "dbaeumer.vscode-eslint", "eg2.tslint", "esbenp.prettier-vscode" ] diff --git a/.vscode/settings.json b/.vscode/settings.json index 26e819de2d..621b25baa1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,12 +1,8 @@ { - "files.associations": { - ".eslintrc": "yaml" - }, "search.exclude": { "**/node_modules": true, "**/bower_components": true }, - "eslint.packageManager": "yarn", "editor.tabSize": 2, "[typescript]": { "editor.formatOnSave": true diff --git a/package.json b/package.json index 79cde0d478..9e3a24c852 100644 --- a/package.json +++ b/package.json @@ -38,11 +38,8 @@ "unit_test": "jest", "jest:watch": "jest --watch", "jest:cov": "jest --coverage", - "lint:es": "eslint .", - "lint:ts": + "lint": "tslint \"packages/**/*.{ts,tsx}\" -e \"**/{lib,node_modules}/**\"", - "lint:tsc": "tsc", - "lint": "run-s lint:*", "test_modules": "lerna run test --stream", "publish_docs": "./scripts/publishDocumentation.sh", "test": "run-s lint test_modules jest:cov", @@ -54,18 +51,6 @@ }, "devDependencies": { "@types/jest": "^22.2.3", - "babel-eslint": "^8.2.3", - "babel-jest": "^22.4.3", - "babel-plugin-transform-decorators-legacy": "^1.3.4", - "babel-preset-env": "^1.6.0", - "babel-preset-react": "^6.24.1", - "babel-preset-stage-2": "^6.24.1", - "eslint": "^4.19.1", - "eslint-config-airbnb": "^16.1.0", - "eslint-config-prettier": "^2.9.0", - "eslint-plugin-import": "^2.11.0", - "eslint-plugin-jsx-a11y": "^6.0.3", - "eslint-plugin-react": "^7.7.0", "husky": "^0.14.3", "jest": "^23.0.0-beta.3r", "jest-environment-jsdom": "^22.4.3", @@ -88,8 +73,7 @@ "/packages/**/__tests__/**/?(*.)(spec|test).(t|j)s(x|)" ], "transform": { - "^.+\\.(ts|tsx)$": "ts-jest", - "^.+\\.(js|jsx)$": "babel-jest" + "^.+\\.(ts|tsx)$": "ts-jest" }, "moduleNameMapper": { "^react-dnd$": "/packages/react-dnd/src", @@ -101,7 +85,8 @@ } }, "lint-staged": { - "*.js": ["eslint --fix", "prettier --write", "git add"] + "*.{js,jsx}": ["prettier --write", "git add"], + "*.{ts,tsx}": ["tslint --fix", "prettier --write", "git add"] }, "prettier": { "semi": false, @@ -110,6 +95,12 @@ "useTabs": true }, "workspaces": { - "packages": ["packages/*"] + "packages": ["packages/*"], + "nohoist": [ + "**/@types/*", + "**/hoist-non-react-statics", + "**/autobind-decorator", + "**/redux" + ] } } diff --git a/packages/dnd-core/.eslintrc b/packages/dnd-core/.eslintrc deleted file mode 100644 index 3cb76664b4..0000000000 --- a/packages/dnd-core/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -rules: - no-plusplus: off - consistent-return: off - no-mixed-operators: off - no-else-return: off diff --git a/packages/dnd-core/.npmignore b/packages/dnd-core/.npmignore index 9ca3ff3edd..8ac3c0828e 100644 --- a/packages/dnd-core/.npmignore +++ b/packages/dnd-core/.npmignore @@ -1,6 +1,4 @@ test -.babelrc -.eslintrc .travis.yml coverage test-results.xml diff --git a/packages/dnd-core/package.json b/packages/dnd-core/package.json index 549989b638..242360186d 100644 --- a/packages/dnd-core/package.json +++ b/packages/dnd-core/package.json @@ -16,10 +16,9 @@ }, "dependencies": { "@types/invariant": "^2.2.29", - "@types/lodash": "^4.14.107", - "asap": "^2.0.6", - "invariant": "^2.0.0", - "lodash": "^4.2.0", + "@types/lodash": "^4.14.109", + "invariant": "^2.2.4", + "lodash": "^4.17.10", "redux": "^4.0.0" }, "devDependencies": { diff --git a/packages/dnd-core/src/DragDropManagerImpl.ts b/packages/dnd-core/src/DragDropManagerImpl.ts index b7c646f014..69e1893df9 100644 --- a/packages/dnd-core/src/DragDropManagerImpl.ts +++ b/packages/dnd-core/src/DragDropManagerImpl.ts @@ -72,7 +72,7 @@ export default class DragDropManagerImpl const action: ActionCreator = (actions as any)[ key ] as ActionCreator - ;(boundActions as any)[key] = bindActionCreator(action) // eslint-disable-line no-param-reassign + ;(boundActions as any)[key] = bindActionCreator(action) return boundActions }, {} as DragDropActions, diff --git a/packages/dnd-core/src/HandlerRegistryImpl.ts b/packages/dnd-core/src/HandlerRegistryImpl.ts index 88b2012a67..5579313110 100644 --- a/packages/dnd-core/src/HandlerRegistryImpl.ts +++ b/packages/dnd-core/src/HandlerRegistryImpl.ts @@ -1,7 +1,6 @@ import { Store } from 'redux' import invariant from 'invariant' import isArray from 'lodash/isArray' -const asap = require('asap') import { addSource, addTarget, @@ -48,10 +47,23 @@ function parseRoleFromHandlerId(handlerId: string) { } } +function mapContainsValue(map: Map, searchValue: T) { + const entries = map.entries() + let isDone = false + do { + const { done, value: [key, value] } = entries.next() + if (value === searchValue) { + return true + } + isDone = done + } while (!isDone) + return false +} + export default class HandlerRegistryImpl implements HandlerRegistry { - private types: { [id: string]: SourceType | TargetType } = {} - private dragSources: { [id: string]: DragSource } = {} - private dropTargets: { [id: string]: DropTarget } = {} + private types: Map = new Map() + private dragSources: Map = new Map() + private dropTargets: Map = new Map() private pinnedSourceId: string | null = null private pinnedSource: any = null @@ -77,37 +89,31 @@ export default class HandlerRegistryImpl implements HandlerRegistry { public containsHandler(handler: DragSource | DropTarget) { return ( - Object.keys(this.dragSources).some( - key => this.dragSources[key] === handler, - ) || - Object.keys(this.dropTargets).some( - key => this.dropTargets[key] === handler, - ) + mapContainsValue(this.dragSources, handler) || + mapContainsValue(this.dropTargets, handler) ) } public getSource(sourceId: string, includePinned = false): DragSource { invariant(this.isSourceId(sourceId), 'Expected a valid source ID.') - const isPinned = includePinned && sourceId === this.pinnedSourceId - - const source = isPinned ? this.pinnedSource : this.dragSources[sourceId] + const source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId) return source } public getTarget(targetId: string): DropTarget { invariant(this.isTargetId(targetId), 'Expected a valid target ID.') - return this.dropTargets[targetId] as DropTarget + return this.dropTargets.get(targetId) as DropTarget } public getSourceType(sourceId: string) { invariant(this.isSourceId(sourceId), 'Expected a valid source ID.') - return this.types[sourceId] as Identifier + return this.types.get(sourceId) as Identifier } public getTargetType(targetId: string): Identifier | Identifier[] { invariant(this.isTargetId(targetId), 'Expected a valid target ID.') - return this.types[targetId] as Identifier | Identifier[] + return this.types.get(targetId) as Identifier | Identifier[] } public isSourceId(handlerId: string) { @@ -123,21 +129,17 @@ export default class HandlerRegistryImpl implements HandlerRegistry { public removeSource(sourceId: string) { invariant(this.getSource(sourceId), 'Expected an existing source.') this.store.dispatch(removeSource(sourceId)) - - asap(() => { - delete this.dragSources[sourceId] - delete this.types[sourceId] + setImmediate(() => { + this.dragSources.delete(sourceId) + this.types.delete(sourceId) }) } public removeTarget(targetId: string) { invariant(this.getTarget(targetId), 'Expected an existing target.') this.store.dispatch(removeTarget(targetId)) - - asap(() => { - delete this.dropTargets[targetId] - delete this.types[targetId] - }) + this.dropTargets.delete(targetId) + this.types.delete(targetId) } public pinSource(sourceId: string) { @@ -161,11 +163,11 @@ export default class HandlerRegistryImpl implements HandlerRegistry { handler: DragSource | DropTarget, ): string { const id = getNextHandlerId(role) - this.types[id] = type + this.types.set(id, type) if (role === HandlerRole.SOURCE) { - this.dragSources[id] = handler as DragSource + this.dragSources.set(id, handler as DragSource) } else if (role === HandlerRole.TARGET) { - this.dropTargets[id] = handler as DropTarget + this.dropTargets.set(id, handler as DropTarget) } return id } diff --git a/packages/dnd-core/src/__tests__/.eslintrc b/packages/dnd-core/src/__tests__/.eslintrc deleted file mode 100644 index 2f8de9aea2..0000000000 --- a/packages/dnd-core/src/__tests__/.eslintrc +++ /dev/null @@ -1,2 +0,0 @@ -env: - jest: true diff --git a/packages/dnd-core/src/__tests__/DragDropMonitor.spec.ts b/packages/dnd-core/src/__tests__/DragDropMonitor.spec.ts index 507896118e..ea9deda7b6 100644 --- a/packages/dnd-core/src/__tests__/DragDropMonitor.spec.ts +++ b/packages/dnd-core/src/__tests__/DragDropMonitor.spec.ts @@ -28,7 +28,11 @@ describe.only('DragDropMonitor', () => { describe('state change subscription', () => { it('throws on bad listener', () => { - expect(() => monitor.subscribeToStateChange(() => { /* empty */ })).not.toThrow() + expect(() => + monitor.subscribeToStateChange(() => { + /* empty */ + }), + ).not.toThrow() expect(() => (monitor as any).subscribeToStateChange()).toThrow() expect(() => (monitor as any).subscribeToStateChange(42)).toThrow() @@ -38,16 +42,40 @@ describe.only('DragDropMonitor', () => { it('throws on bad handlerIds', () => { expect(() => - monitor.subscribeToStateChange(() => {/* empty */}, { handlerIds: [] }), + monitor.subscribeToStateChange( + () => { + /* empty */ + }, + { handlerIds: [] }, + ), ).not.toThrow() expect(() => - monitor.subscribeToStateChange(() => {/* empty */}, { handlerIds: ['hi'] }), + monitor.subscribeToStateChange( + () => { + /* empty */ + }, + { handlerIds: ['hi'] }, + ), ).not.toThrow() expect(() => - monitor.subscribeToStateChange(() => {/* empty */}, { handlerIds: {} as any}), + monitor.subscribeToStateChange( + () => { + /* empty */ + }, + { handlerIds: {} as any }, + ), ).toThrow() expect(() => - monitor.subscribeToStateChange(() => {/* empty */}, { handlerIds: (() => {/* empty */}) as any }), + monitor.subscribeToStateChange( + () => { + /* empty */ + }, + { + handlerIds: (() => { + /* empty */ + }) as any, + }, + ), ).toThrow() }) @@ -545,7 +573,11 @@ describe.only('DragDropMonitor', () => { describe('offset change subscription', () => { it('throws on bad listener', () => { - expect(() => monitor.subscribeToOffsetChange(() => {/* empty */})).not.toThrow() + expect(() => + monitor.subscribeToOffsetChange(() => { + /* empty */ + }), + ).not.toThrow() expect(() => (monitor as any).subscribeToOffsetChange()).toThrow() expect(() => (monitor as any).subscribeToOffsetChange(42)).toThrow() expect(() => (monitor as any).subscribeToOffsetChange('hi')).toThrow() diff --git a/packages/documentation/examples/.eslintrc b/packages/documentation/examples/.eslintrc deleted file mode 100644 index e39dd14904..0000000000 --- a/packages/documentation/examples/.eslintrc +++ /dev/null @@ -1,15 +0,0 @@ -rules: - import/extensions: off - import/no-extraneous-dependencies: off - import/no-unresolved: off - no-param-reassign: off - react/forbid-prop-types: off - react/no-array-index-key: off - react/no-find-dom-node: off - react/no-multi-comp: off - react/no-unused-prop-types: off - react/prefer-stateless-function: off - react/require-default-props: off - react/sort-comp: off -env: - jest: true diff --git a/packages/documentation/examples/01 Dustbin/Copy or Move/Box.tsx b/packages/documentation/examples/01 Dustbin/Copy or Move/Box.tsx index 12b909a266..ac67160822 100644 --- a/packages/documentation/examples/01 Dustbin/Copy or Move/Box.tsx +++ b/packages/documentation/examples/01 Dustbin/Copy or Move/Box.tsx @@ -44,7 +44,7 @@ const boxSource = { dropResult.name }` } - alert(alertMessage) // eslint-disable-line no-alert + alert(alertMessage) } }, } diff --git a/packages/documentation/examples/01 Dustbin/Single Target/Box.tsx b/packages/documentation/examples/01 Dustbin/Single Target/Box.tsx index f56bf5146c..5eab97b123 100644 --- a/packages/documentation/examples/01 Dustbin/Single Target/Box.tsx +++ b/packages/documentation/examples/01 Dustbin/Single Target/Box.tsx @@ -36,7 +36,7 @@ const boxSource = { const dropResult = monitor.getDropResult() if (dropResult) { - alert(`You dropped ${item.name} into ${dropResult.name}!`) // eslint-disable-line no-alert + alert(`You dropped ${item.name} into ${dropResult.name}!`) } }, } diff --git a/packages/documentation/examples/04 Sortable/Stress Test/index.tsx b/packages/documentation/examples/04 Sortable/Stress Test/index.tsx index bfb588f5ad..517a43dcea 100644 --- a/packages/documentation/examples/04 Sortable/Stress Test/index.tsx +++ b/packages/documentation/examples/04 Sortable/Stress Test/index.tsx @@ -17,7 +17,7 @@ export default class SortableStressTest extends React.Component< public componentDidMount() { // Won't fire on server. - this.setState({ shouldRender: true }) // eslint-disable-line react/no-did-mount-set-state + this.setState({ shouldRender: true }) } public render() { diff --git a/packages/documentation/package.json b/packages/documentation/package.json index 51eae9d809..f74c5d2ea1 100644 --- a/packages/documentation/package.json +++ b/packages/documentation/package.json @@ -3,9 +3,13 @@ "version": "3.0.2", "private": true, "scripts": { - "clean": "rimraf __site__ __site_prerender__", - "start": "./scripts/startSiteDevServer.sh", - "build_site": "./scripts/buildStaticSite.sh" + "clean": "rimraf __site__ __site_prerender__", + "serve": "webpack-dev-server --config site/webpack-client.config.js --hot --content-base __site__", + "start": "run-s clean prerender build:index_page serve", + "prerender": "./node_modules/.bin/webpack --config site/webpack-prerender.config.js", + "build": "tsc", + "build:index_page": "ts-node ./scripts/buildSiteIndexPages.ts", + "build_site": "./scripts/buildStaticSite.sh" }, "devDependencies": { "autoprefixer": "^7.1.2", @@ -13,25 +17,19 @@ "babel-register": "^6.24.1", "circular-dependency-plugin": "^5.0.2", "css-loader": "^0.28.11", - "faker": "^3.1.0", "file-loader": "^1.1.11", "html-loader": "^0.5.5", - "immutability-helper": "^2.4.0", "karma-sourcemap-loader": "^0.3.7", "less": "^2.7.2", "less-loader": "^4.1.0", "marked": "^0.3.6", "null-loader": "^0.1.1", "postcss": "^6.0.6", - "prop-types": "^15.6.0", - "react": "^16.4.0", - "react-dnd-test-backend": "^3.0.2", - "react-dom": "^16.4.0", - "react-frame-component": "^3.0.0", "react-hot-loader": "^4.1.2", "rimraf": "^2.6.2", "style-loader": "^0.21.0", "ts-loader": "^4.2.0", + "ts-node": "^6.0.5", "url-loader": "^1.0.1", "webpack": "^4.6.0", "webpack-cli": "^2.1.2", @@ -40,7 +38,19 @@ "dependencies": { "@types/faker": "^4.1.2", "@types/immutability-helper": "^2.6.3", + "@types/lodash": "^4.14.109", + "@types/node": "^10.3.0", + "@types/prop-types": "^15.5.3", "@types/react": "^16.3.14", + "@types/react-dom": "^16.0.5", + "faker": "^3.1.0", + "immutability-helper": "^2.4.0", + "lodash": "^4.17.10", + "prop-types": "^15.6.1", + "react": "^16.4.0", + "react-dnd-test-backend": "^3.0.2", + "react-dom": "^16.4.0", + "react-frame-component": "^3.0.0", "shallowequal": "^1.0.2" } } diff --git a/packages/documentation/scripts/buildSiteIndexPages.sh b/packages/documentation/scripts/buildSiteIndexPages.sh deleted file mode 100755 index 26607ef6bd..0000000000 --- a/packages/documentation/scripts/buildSiteIndexPages.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env node -require('babel-register'); - -// -*- mode: js -*- -"use strict"; - -var fs = require('fs'); -var path = require('path'); -var glob = require('glob'); -var Constants = require('../site/Constants'); -var renderPath = require('../__site_prerender__/renderPath').default; -var flatten = require('lodash/flatten'); - -var sitePath = path.join(__dirname, '../__site__'); -if (!fs.existsSync(sitePath)) { - fs.mkdirSync(sitePath); -} - -var files = { - 'main.js': 'main.js' -}; - -if (process.env.NODE_ENV === 'production') { - Object.keys(files).forEach(function(fileName) { - var searchPath = path.join( - __dirname, - '../__site__/' + fileName.replace('.', '-*.') - ); - var hashedFilename = glob.sync(searchPath)[0]; - if (!hashedFilename) { - throw new Error( - 'Hashed file of "' + fileName + '" ' + - 'not found when searching with "' + searchPath + '"' - ); - } - - files[fileName] = path.basename(hashedFilename); - }); -} - -var locations = flatten([ - Constants.APIPages.map(function (group) { - return group.pages; - }), - Constants.ExamplePages.map(function (group) { - return group.pages; - }), - Constants.Pages -]).reduce(function(paths, pages) { - return paths.concat( - Object.keys(pages).map(function(key) { - return pages[key].location; - }) - ); -}, []); - -locations.forEach(function(fileName) { - var props = { - location: fileName, - devMode: process.env.NODE_ENV !== 'production', - files: files - }; - - renderPath(fileName, props, function(content) { - fs.writeFileSync( - path.join(sitePath, fileName), - content - ); - }); -}); diff --git a/packages/documentation/scripts/buildSiteIndexPages.ts b/packages/documentation/scripts/buildSiteIndexPages.ts new file mode 100755 index 0000000000..12da4c77ea --- /dev/null +++ b/packages/documentation/scripts/buildSiteIndexPages.ts @@ -0,0 +1,58 @@ +import fs from 'fs' +import path from 'path' +import * as Constants from '../site/Constants' +import flatten from 'lodash/flatten' + +const glob = require('glob') +const renderPath = require('../__site_prerender__/renderPath').default + +const sitePath = path.join(__dirname, '../__site__') +if (!fs.existsSync(sitePath)) { + fs.mkdirSync(sitePath) +} + +const files: { [key: string]: string } = { + 'main.js': 'main.js', +} + +if (process.env.NODE_ENV === 'production') { + Object.keys(files).forEach(fileName => { + const searchPath = path.join( + __dirname, + '../__site__/' + fileName.replace('.', '-*.'), + ) + const hashedFilename = glob.sync(searchPath)[0] + if (!hashedFilename) { + throw new Error( + 'Hashed file of "' + + fileName + + '" ' + + 'not found when searching with "' + + searchPath + + '"', + ) + } + + files[fileName] = path.basename(hashedFilename) + }) +} + +const locations = flatten([ + Constants.APIPages.map((group: any) => group.pages), + Constants.ExamplePages.map((group: any) => group.pages), + Constants.Pages, +]).reduce((paths: string[], pages: { [key: string]: any }) => { + return paths.concat(Object.keys(pages).map(key => pages[key].location)) +}, []) + +locations.forEach((fileName: string) => { + const props = { + location: fileName, + devMode: process.env.NODE_ENV !== 'production', + files, + } + + renderPath(fileName, props, (content: string) => { + fs.writeFileSync(path.join(sitePath, fileName), content) + }) +}) diff --git a/packages/documentation/scripts/buildStaticSite.sh b/packages/documentation/scripts/buildStaticSite.sh index 6f489003f5..eed9520aff 100755 --- a/packages/documentation/scripts/buildStaticSite.sh +++ b/packages/documentation/scripts/buildStaticSite.sh @@ -6,4 +6,4 @@ rm -rf ./__site__ rm -rf ./__site_prerender__ NODE_ENV=production webpack --config "$PWD/site/webpack-client.config.js" NODE_ENV=production webpack --config "$PWD/site/webpack-prerender.config.js" -NODE_ENV=production ./scripts/buildSiteIndexPages.sh +NODE_ENV=production ts-node ./scripts/buildSiteIndexPages.ts diff --git a/packages/documentation/scripts/startSiteDevServer.sh b/packages/documentation/scripts/startSiteDevServer.sh deleted file mode 100755 index 93ba41076c..0000000000 --- a/packages/documentation/scripts/startSiteDevServer.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set -e -PATH=$(npm bin):$PATH - -rm -rf ./__site__ -rm -rf ./__site_prerender__ -./node_modules/.bin/webpack --config "$PWD/site/webpack-prerender.config.js" -./scripts/buildSiteIndexPages.sh -./node_modules/.bin/webpack-dev-server --config "$PWD/site/webpack-client.config.js" --hot --content-base __site__ diff --git a/packages/documentation/site/Constants.js b/packages/documentation/site/Constants.ts similarity index 90% rename from packages/documentation/site/Constants.js rename to packages/documentation/site/Constants.ts index f7d7af9c87..5051d1d237 100644 --- a/packages/documentation/site/Constants.js +++ b/packages/documentation/site/Constants.ts @@ -1,11 +1,21 @@ -export const Pages = { +export interface Page { + location: string + title: string +} + +export interface PageGroup { + title: string + pages: { [key: string]: Page } +} + +export const Pages: { [key: string]: Page } = { HOME: { location: 'index.html', title: 'Home', }, } -export const APIPages = [ +export const APIPages: PageGroup[] = [ { title: 'Quick Start', pages: { @@ -101,7 +111,7 @@ export const APIPages = [ }, ] -export const ExamplePages = [ +export const ExamplePages: PageGroup[] = [ { title: 'Chessboard', pages: { @@ -203,5 +213,6 @@ export const ExamplePages = [ }, ] -export const DOCS_DEFAULT = APIPages[0].pages.OVERVIEW -export const EXAMPLES_DEFAULT = ExamplePages[0].pages.CHESSBOARD_TUTORIAL_APP +export const DOCS_DEFAULT: Page = APIPages[0].pages.OVERVIEW +export const EXAMPLES_DEFAULT: Page = ExamplePages[0].pages + .CHESSBOARD_TUTORIAL_APP as Page diff --git a/packages/documentation/site/IndexPage.js b/packages/documentation/site/IndexPage.tsx similarity index 73% rename from packages/documentation/site/IndexPage.js rename to packages/documentation/site/IndexPage.tsx index 5ac3392e80..2567b3285f 100644 --- a/packages/documentation/site/IndexPage.js +++ b/packages/documentation/site/IndexPage.tsx @@ -1,12 +1,12 @@ import './base.less' -import Constants, { APIPages, ExamplePages, Pages } from './Constants' +import { APIPages, ExamplePages, Pages } from './Constants' import HomePage from './pages/HomePage' import APIPage from './pages/APIPage' import ExamplePage from './pages/ExamplePage' -import React, { Component } from 'react' +import * as React from 'react' import ReactDOMServer from 'react-dom/server' -const APIDocs = { +const APIDocs: { [key: string]: any } = { OVERVIEW: require('../docs/00 Quick Start/Overview.md'), TUTORIAL: require('../docs/00 Quick Start/Tutorial.md'), TESTING: require('../docs/00 Quick Start/Testing.md'), @@ -26,7 +26,7 @@ const APIDocs = { TEST_BACKEND: require('../docs/04 Backends/Test.md'), } -const Examples = { +const Examples: { [key: string]: any } = { CHESSBOARD_TUTORIAL_APP: require('../examples/00 Chessboard/Tutorial App') .default, DUSTBIN_SINGLE_TARGET: require('../examples/01 Dustbin/Single Target') @@ -53,26 +53,47 @@ const Examples = { OTHER_NATIVE_FILES: require('../examples/06 Other/Native Files').default, } -export default class IndexPage extends Component { - static getDoctype() { +export interface IndexPageProps { + devMode?: boolean + files: any + location: string +} + +export interface IndexPageState { + renderPage?: boolean +} + +export default class IndexPage extends React.Component< + IndexPageProps, + IndexPageState +> { + public static getDoctype() { return '' } - static renderToString(props) { + public static renderToString(props: IndexPageProps) { return ( IndexPage.getDoctype() + ReactDOMServer.renderToString() ) } - constructor(props) { + constructor(props: IndexPageProps) { super(props) this.state = { renderPage: !this.props.devMode, } } - render() { + public componentDidMount() { + if (!this.state.renderPage) { + this.setState({ + renderPage: true, + }) + } + } + + public render() { // Dump out our current props to a global object via a script tag so // when initialising the browser environment we can bootstrap from the // same props as what each page was rendered with. @@ -101,41 +122,46 @@ export default class IndexPage extends Component { ) } - renderPage() { + private renderPage() { switch (this.props.location) { case Pages.HOME.location: return } - for (let groupIndex in APIPages) { - const group = APIPages[groupIndex] - const pageKeys = Object.keys(group.pages) - - for (let i = 0; i < pageKeys.length; i++) { - const key = pageKeys[i] - const page = group.pages[key] - - if (this.props.location === page.location) { - return + for (const groupIndex in APIPages) { + if (groupIndex !== undefined) { + const group = APIPages[groupIndex] + const pageKeys = Object.keys(group.pages) + + for (const key of pageKeys) { + if (key) { + const page = group.pages[key] + if (this.props.location === page.location) { + return + } + } } } } - for (let groupIndex in ExamplePages) { - const group = ExamplePages[groupIndex] - const pageKeys = Object.keys(group.pages) - - for (let i = 0; i < pageKeys.length; i++) { - const key = pageKeys[i] - const page = group.pages[key] - const Component = Examples[key] - - if (this.props.location === page.location) { - return ( - - - - ) + for (const groupIndex in ExamplePages) { + if (groupIndex !== undefined) { + const group = ExamplePages[groupIndex] + const pageKeys = Object.keys(group.pages) + + for (const key of pageKeys) { + if (key) { + const page = group.pages[key] + const ExamplComponent = Examples[key] + + if (this.props.location === page.location) { + return ( + + + + ) + } + } } } } @@ -144,12 +170,4 @@ export default class IndexPage extends Component { 'Page of location ' + JSON.stringify(this.props.location) + ' not found.', ) } - - componentDidMount() { - if (!this.state.renderPage) { - this.setState({ - renderPage: true, - }) - } - } } diff --git a/packages/documentation/site/client.js b/packages/documentation/site/client.js deleted file mode 100644 index 5ee7c1fb15..0000000000 --- a/packages/documentation/site/client.js +++ /dev/null @@ -1,5 +0,0 @@ -import React from 'react' -import { render } from 'react-dom' -import IndexPage from './IndexPage' - -render(, document) diff --git a/packages/documentation/site/client.tsx b/packages/documentation/site/client.tsx new file mode 100644 index 0000000000..b2b2b18cc3 --- /dev/null +++ b/packages/documentation/site/client.tsx @@ -0,0 +1,6 @@ +import React from 'react' +import * as ReactDOM from 'react-dom' +import IndexPage from './IndexPage' + +const initialProps: any = (window as any).INITIAL_PROPS +ReactDOM.render( as any, document as any) diff --git a/packages/documentation/site/components/CodeBlock.js b/packages/documentation/site/components/CodeBlock.tsx similarity index 52% rename from packages/documentation/site/components/CodeBlock.js rename to packages/documentation/site/components/CodeBlock.tsx index 2141b0f5f5..54a710b6b8 100644 --- a/packages/documentation/site/components/CodeBlock.js +++ b/packages/documentation/site/components/CodeBlock.tsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react' +import * as React from 'react' import PropTypes from 'prop-types' import { findDOMNode } from 'react-dom' import StaticHTMLBlock from './StaticHTMLBlock' @@ -6,73 +6,102 @@ import StaticHTMLBlock from './StaticHTMLBlock' import './CodeBlock.less' let preferredSyntax = 'es7' -let observers = [] +type Observer = (value: string) => void +const observers: Observer[] = [] -function subscribe(observer) { +const SYNTAXES: Syntax[] = ['es7', 'es6', 'es5'] + +function subscribe(observer: Observer) { observers.push(observer) return () => { observers.slice(observers.indexOf(observer), 1) } } -function setPreferredSyntax(syntax) { +function setPreferredSyntax(syntax: string) { preferredSyntax = syntax observers.forEach(o => o(preferredSyntax)) } -export default class CodeBlock extends Component { - static propTypes = { +export interface CodeBlockProps { + es5: string + es6: string + es7: string +} + +export type Syntax = 'es5' | 'es6' | 'es7' + +export interface CodeBlockState { + chosen: boolean + syntax: Syntax +} + +export default class CodeBlock extends React.Component< + CodeBlockProps, + CodeBlockState +> { + public static propTypes = { es5: PropTypes.string, es6: PropTypes.string, es7: PropTypes.string, } - static defaultProps = { + public static defaultProps = { es5: '', es6: '', es7: '', } - constructor(props) { + private unsubscribe: (() => void) | undefined + + constructor(props: CodeBlockProps) { super(props) this.state = { chosen: false, syntax: - (this.props.es7.trim().length && 'es7') || - (this.props.es6.trim().length && 'es6') || - (this.props.es5.trim().length && 'es5'), + (props.es7 && props.es7.trim().length && 'es7') || + (props.es6 && props.es6.trim().length && 'es6') || + (props.es5 && props.es5.trim().length && 'es5') || + 'es5', } } - componentDidMount() { + public componentDidMount() { this.unsubscribe = subscribe(this.handlePreferredSyntaxChange.bind(this)) } - handlePreferredSyntaxChange(syntax) { - if (this.state.chosen || this.state.syntax === syntax) { - return - } - - if (this.props[syntax].trim().length) { - this.setState({ - syntax, - }) + public componentWillUnmount() { + if (this.unsubscribe) { + this.unsubscribe() } } - componentWillUnmount() { - this.unsubscribe() + public render(): React.ReactNode { + return ( +
+
    + {SYNTAXES.map(this.renderSyntaxLink, this)} +
+
+ +
+
+ ) } - handleSyntaxClick(syntax) { + private handleSyntaxClick(syntax: Syntax) { this.setState({ syntax, chosen: true, }) - const scrollTopBefore = findDOMNode(this).getBoundingClientRect().top + const thisDom = findDOMNode(this) as HTMLDivElement + if (!thisDom) { + return null + } + const scrollTopBefore = thisDom.getBoundingClientRect().top setPreferredSyntax(syntax) - const scrollTopAfter = findDOMNode(this).getBoundingClientRect().top + const scrollTopAfter = thisDom.getBoundingClientRect().top window.scroll( window.pageXOffset || window.scrollX, @@ -81,21 +110,21 @@ export default class CodeBlock extends Component { ) } - render() { - return ( -
-
    - {['es7', 'es6', 'es5'].map(this.renderSyntaxLink, this)} -
-
- -
-
- ) + private handlePreferredSyntaxChange(syntax: Syntax) { + if (this.state.chosen || this.state.syntax === syntax) { + return + } + + if (this.props[syntax].trim().length) { + this.setState({ + syntax, + }) + } } - renderSyntaxLink(syntax) { - if (!this.props[syntax] || !this.props[syntax].trim().length) { + private renderSyntaxLink(syntax: Syntax) { + const value = this.props[syntax] + if (!value || !value.trim().length) { return } diff --git a/packages/documentation/site/components/Cover.js b/packages/documentation/site/components/Cover.tsx similarity index 65% rename from packages/documentation/site/components/Cover.js rename to packages/documentation/site/components/Cover.tsx index 1dd1172a12..02dd6d6df4 100644 --- a/packages/documentation/site/components/Cover.js +++ b/packages/documentation/site/components/Cover.tsx @@ -1,8 +1,8 @@ -import React, { Component } from 'react' +import React from 'react' import './Cover.less' -export default class Cover extends Component { - render() { +export default class Cover extends React.Component { + public render() { return (
diff --git a/packages/documentation/site/components/Header.js b/packages/documentation/site/components/Header.tsx similarity index 65% rename from packages/documentation/site/components/Header.js rename to packages/documentation/site/components/Header.tsx index d8313ace96..6070912d86 100644 --- a/packages/documentation/site/components/Header.js +++ b/packages/documentation/site/components/Header.tsx @@ -1,11 +1,11 @@ -import React, { Component } from 'react' +import React from 'react' import PropTypes from 'prop-types' import NavBar from './NavBar' import Cover from './Cover' import './Header.less' -export default class Header extends Component { - render() { +export default class Header extends React.Component { + public render() { return (
diff --git a/packages/documentation/site/components/NavBar.js b/packages/documentation/site/components/NavBar.tsx similarity index 83% rename from packages/documentation/site/components/NavBar.js rename to packages/documentation/site/components/NavBar.tsx index ad23460a38..40dfde6e8e 100644 --- a/packages/documentation/site/components/NavBar.js +++ b/packages/documentation/site/components/NavBar.tsx @@ -1,13 +1,13 @@ -import React, { Component } from 'react' -import { DOCS_DEFAULT, EXAMPLES_DEFAULT } from '../Constants' +import React from 'react' import './NavBar.less' +const { DOCS_DEFAULT, EXAMPLES_DEFAULT } = require('../Constants') const GITHUB_URL = 'https://github.com/react-dnd/react-dnd' const DOCS_LOCATION = DOCS_DEFAULT.location const EXAMPLES_LOCATION = EXAMPLES_DEFAULT.location -export default class NavBar extends Component { - render() { +export default class NavBar extends React.Component { + public render() { return (
diff --git a/packages/documentation/site/components/PageBody.js b/packages/documentation/site/components/PageBody.tsx similarity index 50% rename from packages/documentation/site/components/PageBody.js rename to packages/documentation/site/components/PageBody.tsx index e213661a34..93278224da 100644 --- a/packages/documentation/site/components/PageBody.js +++ b/packages/documentation/site/components/PageBody.tsx @@ -1,14 +1,18 @@ -import React, { Component } from 'react' +import React from 'react' import PropTypes from 'prop-types' import './PageBody.less' -export default class PageBody extends Component { - static propTypes = { +export interface PageBodyProps { + hasSidebar: boolean + html?: any +} +export default class PageBody extends React.Component { + public static propTypes = { hasSidebar: PropTypes.bool, } - render() { - var { hasSidebar, html, ...props } = this.props + public render() { + const { hasSidebar, html, ...props } = this.props return (
{this.props.children}
diff --git a/packages/documentation/site/components/SideBar.js b/packages/documentation/site/components/SideBar.tsx similarity index 66% rename from packages/documentation/site/components/SideBar.js rename to packages/documentation/site/components/SideBar.tsx index c548a257a8..6b77fbfd5b 100644 --- a/packages/documentation/site/components/SideBar.js +++ b/packages/documentation/site/components/SideBar.tsx @@ -1,8 +1,14 @@ -import React, { Component } from 'react' +import React from 'react' import './SideBar.less' +import { Page, PageGroup } from '../Constants' -export default class SideBar extends Component { - render() { +export interface SideBarProps { + groups: PageGroup[] + example: Page +} + +export default class SideBar extends React.Component { + public render() { return (
@@ -12,7 +18,7 @@ export default class SideBar extends Component { ) } - renderGroup({ title, pages }, index) { + private renderGroup({ title, pages }: PageGroup, index: number) { return (

{title}

@@ -21,7 +27,7 @@ export default class SideBar extends Component { ) } - renderLink({ title, location }, key) { + private renderLink({ title, location }: Page, key: string) { const arrow = let linkClass = 'SideBar-item' diff --git a/packages/documentation/site/components/StaticHTMLBlock.js b/packages/documentation/site/components/StaticHTMLBlock.tsx similarity index 75% rename from packages/documentation/site/components/StaticHTMLBlock.js rename to packages/documentation/site/components/StaticHTMLBlock.tsx index 3e6665fdef..8e1d99bd15 100644 --- a/packages/documentation/site/components/StaticHTMLBlock.js +++ b/packages/documentation/site/components/StaticHTMLBlock.tsx @@ -1,13 +1,19 @@ -import React, { Component } from 'react' +import React from 'react' import PropTypes from 'prop-types' import CodeBlock from './CodeBlock' -export default class StaticHTMLBlock extends Component { - static propTypes = { +export interface StaticHTMLBlockProps { + html: string +} + +export default class StaticHTMLBlock extends React.Component< + StaticHTMLBlockProps +> { + public static propTypes = { html: PropTypes.string.isRequired, } - render() { + public render() { const { html } = this.props // Here goes a really hack-ish way to convert @@ -44,9 +50,9 @@ export default class StaticHTMLBlock extends Component { elements.push( , ) break diff --git a/packages/documentation/site/pages/APIPage.js b/packages/documentation/site/pages/APIPage.tsx similarity index 80% rename from packages/documentation/site/pages/APIPage.js rename to packages/documentation/site/pages/APIPage.tsx index d3a6b5bd94..2765756469 100644 --- a/packages/documentation/site/pages/APIPage.js +++ b/packages/documentation/site/pages/APIPage.tsx @@ -5,15 +5,13 @@ import SideBar from '../components/SideBar' import StaticHTMLBlock from '../components/StaticHTMLBlock' import { APIPages } from '../Constants' -export default class APIPage extends Component { - render() { +export default class APIPage extends React.Component { + public render() { return (
- - + -
diff --git a/packages/documentation/site/pages/ExamplePage.js b/packages/documentation/site/pages/ExamplePage.tsx similarity index 53% rename from packages/documentation/site/pages/ExamplePage.js rename to packages/documentation/site/pages/ExamplePage.tsx index e404dc3acb..8d7584614d 100644 --- a/packages/documentation/site/pages/ExamplePage.js +++ b/packages/documentation/site/pages/ExamplePage.tsx @@ -1,15 +1,19 @@ -import React, { Component } from 'react' +import React from 'react' import Header from '../components/Header' import PageBody from '../components/PageBody' import SideBar from '../components/SideBar' -import { ExamplePages } from '../Constants' +import { ExamplePages, Page } from '../Constants' -export default class ExamplesPage extends Component { - render() { +export interface ExamplePagesProps { + example: Page +} + +export default class ExamplesPage extends React.Component { + public render() { return (
- + {this.props.children} diff --git a/packages/documentation/site/pages/HomePage.js b/packages/documentation/site/pages/HomePage.tsx similarity index 54% rename from packages/documentation/site/pages/HomePage.js rename to packages/documentation/site/pages/HomePage.tsx index 35438fdc3c..e83bba43e0 100644 --- a/packages/documentation/site/pages/HomePage.js +++ b/packages/documentation/site/pages/HomePage.tsx @@ -1,16 +1,15 @@ -import React, { Component } from 'react' +import * as React from 'react' import Header from '../components/Header' import PageBody from '../components/PageBody' import StaticHTMLBlock from '../components/StaticHTMLBlock' -import IndexHTML from '../../docs/index.md' +const IndexHTML = require('../../docs/index.md') -export default class HomePage extends Component { - render() { +export default class HomePage extends React.Component { + public render() { return (
-
- - +
+
diff --git a/packages/documentation/site/renderPath.js b/packages/documentation/site/renderPath.ts similarity index 58% rename from packages/documentation/site/renderPath.js rename to packages/documentation/site/renderPath.ts index 860b089e17..6f9e04b131 100644 --- a/packages/documentation/site/renderPath.js +++ b/packages/documentation/site/renderPath.ts @@ -1,6 +1,6 @@ import React from 'react' import IndexPage from './IndexPage' -export default function renderPath(path, props, onRender) { +export default function renderPath(path: string, props: any, onRender: any) { onRender(IndexPage.renderToString(props)) } diff --git a/packages/documentation/site/webpack-client.config.js b/packages/documentation/site/webpack-client.config.js index deddd0ba84..05d7d62c85 100644 --- a/packages/documentation/site/webpack-client.config.js +++ b/packages/documentation/site/webpack-client.config.js @@ -8,7 +8,7 @@ const root = path.join(__dirname, '..', '..', '..') module.exports = { mode: isDev ? 'development' : 'production', devtool: isDev ? 'cheap-eval-source-map' : 'source-map', - entry: [path.join(__dirname, 'client.js')].concat( + entry: [path.join(__dirname, 'client.tsx')].concat( isDev ? [ 'webpack-dev-server/client?http://localhost:8080', @@ -39,21 +39,6 @@ module.exports = { path.join(__dirname, '../scripts/markdownLoader'), ], }, - { - test: /\.js$/, - exclude: /node_modules/, - use: isDev - ? [ - { - loader: 'babel-loader', - options: { - babelrc: true, - plugins: ['react-hot-loader/babel'], - }, - }, - ] - : ['babel-loader'], - }, { test: /\.ts(x|)$/, exclude: /node_modules/, diff --git a/packages/documentation/site/webpack-prerender.config.js b/packages/documentation/site/webpack-prerender.config.js index c070fdc990..e3a1d25f17 100644 --- a/packages/documentation/site/webpack-prerender.config.js +++ b/packages/documentation/site/webpack-prerender.config.js @@ -6,7 +6,7 @@ var isDev = process.env.NODE_ENV !== 'production' const root = path.join(__dirname, '..', '..', '..') module.exports = { - entry: path.join(__dirname, 'renderPath.js'), + entry: path.join(__dirname, 'renderPath.ts'), mode: isDev ? 'development' : 'production', output: { path: path.join(__dirname, '..', '__site_prerender__'), @@ -28,11 +28,6 @@ module.exports = { path.join(__dirname, '../scripts/markdownLoader'), ], }, - { - test: /\.js$/, - use: 'babel-loader', - exclude: /node_modules/, - }, { test: /\.ts(x|)$/, exclude: /node_modules/, diff --git a/packages/documentation/tsconfig.json b/packages/documentation/tsconfig.json index 1cee8db619..75aa2ec6f7 100644 --- a/packages/documentation/tsconfig.json +++ b/packages/documentation/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.base.json", "compilerOptions": { "declaration": true, - "sourceMap": true - } + "sourceMap": true, + "outDir": "lib" + }, } diff --git a/packages/react-dnd-html5-backend/.babelrc b/packages/react-dnd-html5-backend/.babelrc deleted file mode 100644 index f2e312799e..0000000000 --- a/packages/react-dnd-html5-backend/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["env", "stage-2"] -} diff --git a/packages/react-dnd-html5-backend/.eslintignore b/packages/react-dnd-html5-backend/.eslintignore deleted file mode 100644 index 8ab83d13c7..0000000000 --- a/packages/react-dnd-html5-backend/.eslintignore +++ /dev/null @@ -1,5 +0,0 @@ -site -dist -lib -**/node_modules -**/webpack*.config.js diff --git a/packages/react-dnd-html5-backend/.eslintrc b/packages/react-dnd-html5-backend/.eslintrc deleted file mode 100644 index 4050580e28..0000000000 --- a/packages/react-dnd-html5-backend/.eslintrc +++ /dev/null @@ -1,2 +0,0 @@ -rules: - no-param-reassign: off diff --git a/packages/react-dnd-html5-backend/.npmignore b/packages/react-dnd-html5-backend/.npmignore index 7e3d47b665..91975b6842 100644 --- a/packages/react-dnd-html5-backend/.npmignore +++ b/packages/react-dnd-html5-backend/.npmignore @@ -1,6 +1,3 @@ test -.babelrc webpack.config.js -.eslintignore -.eslintrc .travis.yml diff --git a/packages/react-dnd-html5-backend/package.json b/packages/react-dnd-html5-backend/package.json index 9cf1f332ed..5bddb77f23 100644 --- a/packages/react-dnd-html5-backend/package.json +++ b/packages/react-dnd-html5-backend/package.json @@ -17,11 +17,18 @@ "build": "run-p bundle:* transpile", "test": "run-s clean build" }, + "dependencies": { + "@types/lodash": "^4.14.109", + "@types/react": "^16.3.16", + "@types/shallowequal": "^0.2.2", + "autobind-decorator": "^2.1.0", + "dnd-core": "^3.0.2", + "lodash": "^4.17.10", + "react": "^16.4.0", + "shallowequal": "^1.0.2" + }, "devDependencies": { - "@types/autobind-decorator": "^2.1.0", - "@types/lodash": "^4.14.108", - "babel-cli": "^6.26.0", - "babel-loader": "^7.1.4", + "@types/node": "^10.3.0", "npm-run-all": "^4.1.2", "react-dnd": "^3.0.2", "react-dnd-test-backend": "^3.0.2", @@ -30,10 +37,7 @@ "typescript": "^2.8.3", "webpack": "^4.6.0" }, - "dependencies": { - "autobind-decorator": "^2.1.0", - "dnd-core": "^3.0.2", - "lodash": "^4.2.0", - "shallowequal": "^1.0.2" + "peerDependencies": { + "react": ">= 16.4" } } diff --git a/packages/react-dnd-html5-backend/src/BrowserDetector.ts b/packages/react-dnd-html5-backend/src/BrowserDetector.ts index e161908810..d3121d7b79 100644 --- a/packages/react-dnd-html5-backend/src/BrowserDetector.ts +++ b/packages/react-dnd-html5-backend/src/BrowserDetector.ts @@ -1,4 +1,4 @@ -const memoize = require('lodash/memoize') +import memoize from 'lodash/memoize' declare global { // tslint:disable-next-line interface-name @@ -7,5 +7,8 @@ declare global { } } -export const isFirefox = memoize(() => /firefox/i.test(navigator.userAgent)) -export const isSafari = memoize(() => Boolean(window.safari)) +export type Predicate = () => boolean +export const isFirefox: Predicate = memoize(() => + /firefox/i.test(navigator.userAgent), +) +export const isSafari: Predicate = memoize(() => Boolean(window.safari)) diff --git a/packages/react-dnd-html5-backend/src/HTML5Backend.ts b/packages/react-dnd-html5-backend/src/HTML5Backend.ts index e254021b3b..e547afd0d1 100644 --- a/packages/react-dnd-html5-backend/src/HTML5Backend.ts +++ b/packages/react-dnd-html5-backend/src/HTML5Backend.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-underscore-dangle */ import defaults from 'lodash/defaults' import { Backend, @@ -22,8 +21,7 @@ import { import * as NativeTypes from './NativeTypes' import autobind from 'autobind-decorator' import { HTML5BackendContext } from './interfaces' - -const shallowEqual = require('shallowequal') +import shallowEqual from 'shallowequal' declare global { // tslint:disable-next-line interface-name @@ -476,7 +474,7 @@ export default class HTML5Backend implements Backend { // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable. // Just let it drag. It's a native type (URL or text) and will be picked up in // dragenter handler. - return // eslint-disable-line no-useless-return + return } else { // If by this time no drag source reacted, tell browser not to drag. e.preventDefault() diff --git a/packages/react-dnd-html5-backend/src/MonotonicInterpolant.ts b/packages/react-dnd-html5-backend/src/MonotonicInterpolant.ts index a3d3128bc1..d8514dcbba 100644 --- a/packages/react-dnd-html5-backend/src/MonotonicInterpolant.ts +++ b/packages/react-dnd-html5-backend/src/MonotonicInterpolant.ts @@ -1,7 +1,3 @@ -/* eslint - no-plusplus: off, - no-mixed-operators: off -*/ export default class MonotonicInterpolant { private xs: any private ys: any diff --git a/packages/react-dnd-html5-backend/src/NativeDragSources.ts b/packages/react-dnd-html5-backend/src/NativeDragSources.ts index 46099d8e7d..9e82063095 100644 --- a/packages/react-dnd-html5-backend/src/NativeDragSources.ts +++ b/packages/react-dnd-html5-backend/src/NativeDragSources.ts @@ -12,9 +12,7 @@ function getDataFromDataTransfer( null, ) - return result != null // eslint-disable-line eqeqeq - ? result - : defaultValue + return result != null ? result : defaultValue } const nativeTypesConfig: { diff --git a/packages/react-dnd-html5-backend/src/__tests__/.eslintrc b/packages/react-dnd-html5-backend/src/__tests__/.eslintrc deleted file mode 100644 index 2f8de9aea2..0000000000 --- a/packages/react-dnd-html5-backend/src/__tests__/.eslintrc +++ /dev/null @@ -1,2 +0,0 @@ -env: - jest: true diff --git a/packages/react-dnd-test-backend/.babelrc b/packages/react-dnd-test-backend/.babelrc deleted file mode 100644 index f2e312799e..0000000000 --- a/packages/react-dnd-test-backend/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["env", "stage-2"] -} diff --git a/packages/react-dnd-test-backend/.eslintignore b/packages/react-dnd-test-backend/.eslintignore deleted file mode 100644 index dde8e23a7b..0000000000 --- a/packages/react-dnd-test-backend/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -dist -lib -**/node_modules -**/webpack*.config.js diff --git a/packages/react-dnd-test-backend/.eslintrc b/packages/react-dnd-test-backend/.eslintrc deleted file mode 100644 index afbffb00b6..0000000000 --- a/packages/react-dnd-test-backend/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -env: - mocha: true -rules: - comma-dangle: 0 - id-length: 0 - consistent-return: 0 diff --git a/packages/react-dnd-test-backend/.npmignore b/packages/react-dnd-test-backend/.npmignore index 079a275683..02ba1793bb 100644 --- a/packages/react-dnd-test-backend/.npmignore +++ b/packages/react-dnd-test-backend/.npmignore @@ -1,3 +1 @@ .babelrc -.eslintrc -.eslintignore diff --git a/packages/react-dnd-test-backend/package.json b/packages/react-dnd-test-backend/package.json index 4e5c5fbfd8..4d4424ad4d 100644 --- a/packages/react-dnd-test-backend/package.json +++ b/packages/react-dnd-test-backend/package.json @@ -15,11 +15,12 @@ "prepublish": "npm run test" }, "dependencies": { + "@types/lodash": "^4.14.109", "dnd-core": "^3.0.2", "lodash": "^4.17.10" }, "peerDependencies": { - "react-dnd": "^2.2.0" + "react": ">= 16.4" }, "devDependencies": { "npm-run-all": "^4.1.2", diff --git a/packages/react-dnd/.babelrc b/packages/react-dnd/.babelrc deleted file mode 100644 index f8e2d6f2d8..0000000000 --- a/packages/react-dnd/.babelrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "presets": ["env", "stage-2", "react"], - "plugins": ["transform-decorators-legacy"] -} diff --git a/packages/react-dnd/.eslintignore b/packages/react-dnd/.eslintignore deleted file mode 100644 index f221387964..0000000000 --- a/packages/react-dnd/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -dist -lib diff --git a/packages/react-dnd/.eslintrc b/packages/react-dnd/.eslintrc deleted file mode 100644 index 673a3867b5..0000000000 --- a/packages/react-dnd/.eslintrc +++ /dev/null @@ -1,2 +0,0 @@ -rules: - react/sort-comp: off diff --git a/packages/react-dnd/.npmignore b/packages/react-dnd/.npmignore index 4af53e62e8..3269032af0 100644 --- a/packages/react-dnd/.npmignore +++ b/packages/react-dnd/.npmignore @@ -2,7 +2,4 @@ src webpack.config.js tests.webpack.js karma.conf.js -.babelrc -.eslintrc -.eslintignore bower.json diff --git a/packages/react-dnd/package.json b/packages/react-dnd/package.json index 956ea955ea..e563e639a8 100644 --- a/packages/react-dnd/package.json +++ b/packages/react-dnd/package.json @@ -18,19 +18,21 @@ "test": "run-s clean build" }, "dependencies": { - "disposables": "^1.0.1", + "@types/invariant": "^2.2.29", + "@types/lodash": "^4.14.109", + "@types/node": "^10.3.0", + "@types/prop-types": "^15.5.3", + "@types/react": "^16.3.14", + "@types/react-dom": "^16.0.5", + "@types/shallowequal": "^0.2.2", "dnd-core": "^3.0.2", "hoist-non-react-statics": "^2.5.0", "invariant": "^2.1.0", - "lodash": "^4.2.0", - "prop-types": "^15.5.10", + "lodash": "^4.17.10", + "prop-types": "^15.6.1", "shallowequal": "^1.0.2" }, "devDependencies": { - "@types/lodash": "^4.14.108", - "@types/prop-types": "^15.5.2", - "@types/react": "^16.3.14", - "@types/react-dom": "^16.0.5", "babel-cli": "^6.26.0", "babel-loader": "^7.1.1", "npm-run-all": "^4.1.2", @@ -42,6 +44,6 @@ "webpack-cli": "^2.1.2" }, "peerDependencies": { - "react": ">= 16.3" + "react": ">= 16.4" } } diff --git a/packages/react-dnd/src/DragDropContext.tsx b/packages/react-dnd/src/DragDropContext.tsx index 75e19b4f06..e235ca7f3a 100644 --- a/packages/react-dnd/src/DragDropContext.tsx +++ b/packages/react-dnd/src/DragDropContext.tsx @@ -66,7 +66,7 @@ export function DragDropContext< S, TargetComponent extends React.Component | React.StatelessComponent

>(backendFactory: BackendFactory, backendContext?: any) { - checkDecoratorArguments('DragDropContext', 'backend', backendFactory) // eslint-disable-line prefer-rest-params + checkDecoratorArguments('DragDropContext', 'backend', backendFactory) const childContext = createChildContext(backendFactory, backendContext) return function decorateContext>( diff --git a/packages/react-dnd/src/DragLayer.tsx b/packages/react-dnd/src/DragLayer.tsx index e8b7b4ebc2..68ea530378 100644 --- a/packages/react-dnd/src/DragLayer.tsx +++ b/packages/react-dnd/src/DragLayer.tsx @@ -7,8 +7,7 @@ import checkDecoratorArguments from './utils/checkDecoratorArguments' import { DragDropManager, Unsubscribe } from 'dnd-core' import { DragLayerCollector, DndOptions, DndComponentClass } from './interfaces' import { Consumer } from './DragDropContext' - -const shallowEqual = require('shallowequal') +import shallowEqual from 'shallowequal' export default function DragLayer< P, @@ -16,7 +15,7 @@ export default function DragLayer< TargetComponent extends React.Component | React.StatelessComponent

, CollectedProps >(collect: DragLayerCollector, options: DndOptions

= {}) { - checkDecoratorArguments('DragLayer', 'collect[, options]', collect, options) // eslint-disable-line prefer-rest-params + checkDecoratorArguments('DragLayer', 'collect[, options]', collect, options) invariant( typeof collect === 'function', 'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ', diff --git a/packages/react-dnd/src/DragSource.ts b/packages/react-dnd/src/DragSource.ts index 1bcd2d2d4d..867df84db7 100644 --- a/packages/react-dnd/src/DragSource.ts +++ b/packages/react-dnd/src/DragSource.ts @@ -42,7 +42,7 @@ export default function DragSource< type, spec, collect, - options, // eslint-disable-line prefer-rest-params + options, ) let getType: ((props: P) => SourceType) = type as ((props: P) => SourceType) if (typeof type !== 'function') { diff --git a/packages/react-dnd/src/DropTarget.ts b/packages/react-dnd/src/DropTarget.ts index 915f130825..0d6ecb2188 100644 --- a/packages/react-dnd/src/DropTarget.ts +++ b/packages/react-dnd/src/DropTarget.ts @@ -34,7 +34,7 @@ export default function DropTarget< type, spec, collect, - options, // eslint-disable-line prefer-rest-params + options, ) let getType: ((props: P) => TargetType) = type as ((props: P) => TargetType) if (typeof type !== 'function') { diff --git a/packages/react-dnd/src/createSourceConnector.ts b/packages/react-dnd/src/createSourceConnector.ts index 43288164c4..ba4751d9d3 100644 --- a/packages/react-dnd/src/createSourceConnector.ts +++ b/packages/react-dnd/src/createSourceConnector.ts @@ -1,7 +1,6 @@ import wrapConnectorHooks from './wrapConnectorHooks' import { Backend, Unsubscribe } from 'dnd-core' - -const shallowEqual = require('shallowequal') +import shallowEqual from 'shallowequal' export default function createSourceConnector(backend: Backend) { let currentHandlerId: string diff --git a/packages/react-dnd/src/createTargetConnector.ts b/packages/react-dnd/src/createTargetConnector.ts index 3dc9d4279a..6b0881aa4a 100644 --- a/packages/react-dnd/src/createTargetConnector.ts +++ b/packages/react-dnd/src/createTargetConnector.ts @@ -1,6 +1,6 @@ import wrapConnectorHooks from './wrapConnectorHooks' import { Backend, Unsubscribe } from 'dnd-core' -const shallowEqual = require('shallowequal') +import shallowEqual from 'shallowequal' export default function createTargetConnector(backend: Backend) { let currentHandlerId: string diff --git a/packages/react-dnd/src/decorateHandler.tsx b/packages/react-dnd/src/decorateHandler.tsx index a173c5b6b7..136ab3f253 100644 --- a/packages/react-dnd/src/decorateHandler.tsx +++ b/packages/react-dnd/src/decorateHandler.tsx @@ -6,13 +6,12 @@ import hoistStatics from 'hoist-non-react-statics' import { DragDropManager, Identifier } from 'dnd-core' import { DndComponentClass, DndComponent } from './interfaces' import { Consumer } from './DragDropContext' - -const shallowEqual = require('shallowequal') -const { +import shallowEqual from 'shallowequal' +import { Disposable, CompositeDisposable, SerialDisposable, -} = require('disposables') +} from './utils/disposables' const isClassComponent = (Comp: any) => { return ( diff --git a/packages/react-dnd/src/utils/disposables/CompositeDisposable.ts b/packages/react-dnd/src/utils/disposables/CompositeDisposable.ts new file mode 100644 index 0000000000..d65a937872 --- /dev/null +++ b/packages/react-dnd/src/utils/disposables/CompositeDisposable.ts @@ -0,0 +1,82 @@ +import { Disposable } from './Disposable' + +/** + * Represents a group of disposable resources that are disposed together. + * @constructor + */ +export class CompositeDisposable { + private isDisposed = false + private disposables: Disposable[] + + constructor(...disposables: Disposable[]) { + this.disposables = disposables + } + + /** + * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. + * @param {Any} item Disposable to add. + */ + public add(item: Disposable) { + if (this.isDisposed) { + item.dispose() + } else { + this.disposables.push(item) + } + } + + /** + * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. + * @param {Any} item Disposable to remove. + * @returns {Boolean} true if found; false otherwise. + */ + public remove(item: Disposable) { + let shouldDispose = false + if (!this.isDisposed) { + const idx = this.disposables.indexOf(item) + if (idx !== -1) { + shouldDispose = true + this.disposables.splice(idx, 1) + item.dispose() + } + } + return shouldDispose + } + + /** + * Disposes all disposables in the group and removes them from the group but + * does not dispose the CompositeDisposable. + */ + public clear() { + if (!this.isDisposed) { + const len = this.disposables.length + const currentDisposables = new Array(len) + for (let i = 0; i < len; i++) { + currentDisposables[i] = this.disposables[i] + } + this.disposables = [] + + for (let i = 0; i < len; i++) { + currentDisposables[i].dispose() + } + } + } + + /** + * Disposes all disposables in the group and removes them from the group. + */ + public dispose() { + if (!this.isDisposed) { + this.isDisposed = true + const len = this.disposables.length + const currentDisposables = new Array(len) + for (let i = 0; i < len; i++) { + currentDisposables[i] = this.disposables[i] + } + this.disposables = [] + + for (let i = 0; i < len; i++) { + currentDisposables[i].dispose() + } + } + } +} diff --git a/packages/react-dnd/src/utils/disposables/Disposable.ts b/packages/react-dnd/src/utils/disposables/Disposable.ts new file mode 100644 index 0000000000..898310f467 --- /dev/null +++ b/packages/react-dnd/src/utils/disposables/Disposable.ts @@ -0,0 +1,53 @@ +// tslint:disable max-classes-per-file +import isFunction from 'lodash/isFunction' +import noop from 'lodash/noop' + +/** + * Provides a set of static methods for creating Disposables. + * @param {Function} action Action to run during the first call to dispose. + * The action is guaranteed to be run at most once. + */ +export class Disposable { + /** + * Gets the disposable that does nothing when disposed. + */ + public static empty = { dispose: noop } + + /** + * Validates whether the given object is a disposable + * @param {Object} Object to test whether it has a dispose method + * @returns {Boolean} true if a disposable object, else false. + */ + public static isDisposable(d: any) { + return d && isFunction(d.dispose) + } + + public static _fixup(result: any) { + return Disposable.isDisposable(result) ? result : Disposable.empty + } + + /** + * Creates a disposable object that invokes the specified action when disposed. + * @param {Function} dispose Action to run during the first call to dispose. + * The action is guaranteed to be run at most once. + * @return {Disposable} The disposable object that runs the given action upon disposal. + */ + public static create(action: any) { + return new Disposable(action) + } + + private isDisposed = false + private action: () => void + + constructor(action: any) { + this.action = isFunction(action) ? action : noop + } + + /** Performs the task of cleaning up resources. */ + public dispose() { + if (!this.isDisposed) { + this.action() + this.isDisposed = true + } + } +} diff --git a/packages/react-dnd/src/utils/disposables/SerialDisposable.ts b/packages/react-dnd/src/utils/disposables/SerialDisposable.ts new file mode 100644 index 0000000000..a4a85cb415 --- /dev/null +++ b/packages/react-dnd/src/utils/disposables/SerialDisposable.ts @@ -0,0 +1,46 @@ +import { Disposable } from './Disposable' + +/** + * Represents a disposable resource whose underlying disposable resource can + * be replaced by another disposable resource, causing automatic disposal of + * the previous underlying disposable resource. + */ +export class SerialDisposable { + private isDisposed = false + private current: Disposable | undefined + + /** + * Gets the underlying disposable. + * @returns {Any} the underlying disposable. + */ + public getDisposable() { + return this.current + } + + public setDisposable(value: Disposable) { + const shouldDispose = this.isDisposed + if (!shouldDispose) { + const old = this.current + this.current = value + if (old) { + old.dispose() + } + } + + if (shouldDispose && value) { + value.dispose() + } + } + + /** Performs the task of cleaning up resources. */ + public dispose() { + if (!this.isDisposed) { + this.isDisposed = true + const old = this.current + this.current = undefined + if (old) { + old.dispose() + } + } + } +} diff --git a/packages/react-dnd/src/utils/disposables/index.ts b/packages/react-dnd/src/utils/disposables/index.ts new file mode 100644 index 0000000000..81537cee09 --- /dev/null +++ b/packages/react-dnd/src/utils/disposables/index.ts @@ -0,0 +1,3 @@ +export * from './Disposable' +export * from './SerialDisposable' +export * from './CompositeDisposable' diff --git a/yarn.lock b/yarn.lock index c33f10b294..b46edfe0b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,56 +2,12 @@ # yarn lockfile v1 -"@babel/code-frame@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" - dependencies: - "@babel/highlight" "7.0.0-beta.44" - "@babel/code-frame@^7.0.0-beta.35": version "7.0.0-beta.46" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.46.tgz#e0d002100805daab1461c0fcb32a07e304f3a4f4" dependencies: "@babel/highlight" "7.0.0-beta.46" -"@babel/generator@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" - dependencies: - "@babel/types" "7.0.0-beta.44" - jsesc "^2.5.1" - lodash "^4.2.0" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/helper-function-name@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" - dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.44" - "@babel/template" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - -"@babel/helper-get-function-arity@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" - dependencies: - "@babel/types" "7.0.0-beta.44" - -"@babel/helper-split-export-declaration@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" - dependencies: - "@babel/types" "7.0.0-beta.44" - -"@babel/highlight@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" - "@babel/highlight@7.0.0-beta.46": version "7.0.0-beta.46" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.46.tgz#c553c51e65f572bdedd6eff66fc0bb563016645e" @@ -60,38 +16,6 @@ esutils "^2.0.2" js-tokens "^3.0.0" -"@babel/template@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - lodash "^4.2.0" - -"@babel/traverse@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/generator" "7.0.0-beta.44" - "@babel/helper-function-name" "7.0.0-beta.44" - "@babel/helper-split-export-declaration" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - debug "^3.1.0" - globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.2.0" - -"@babel/types@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" - dependencies: - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^2.0.0" - "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -103,12 +27,6 @@ version "0.7.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" -"@types/autobind-decorator@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/autobind-decorator/-/autobind-decorator-2.1.0.tgz#f8ffd384c1080635a1575b30db2220ac40b0d3dc" - dependencies: - autobind-decorator "*" - "@types/faker@^4.1.2": version "4.1.2" resolved "https://registry.yarnpkg.com/@types/faker/-/faker-4.1.2.tgz#f8ab50c9f9af68c160dd71b63f83e24b712d0df5" @@ -127,21 +45,21 @@ version "22.2.3" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-22.2.3.tgz#0157c0316dc3722c43a7b71de3fdf3acbccef10d" -"@types/lodash@^4.14.107": - version "4.14.107" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.107.tgz#b2d2ae3958bfb8ff828495cbe12214af9e4d035e" - -"@types/lodash@^4.14.108": - version "4.14.108" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.108.tgz#02656af3add2e5b3174f830862c47421c00ef817" +"@types/lodash@^4.14.109": + version "4.14.109" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.109.tgz#b1c4442239730bf35cabaf493c772b18c045886d" "@types/node@*": version "10.1.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.1.2.tgz#1b928a0baa408fc8ae3ac012cc81375addc147c6" -"@types/prop-types@^15.5.2": - version "15.5.2" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.2.tgz#3c6b8dceb2906cc87fe4358e809f9d20c8d59be1" +"@types/node@^10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.0.tgz#078516315a84d56216b5d4fed8f75d59d3b16cac" + +"@types/prop-types@^15.5.3": + version "15.5.3" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.3.tgz#bef071852dca2a2dbb65fecdb7bfb30cedae2de2" "@types/react-dom@^16.0.5": version "16.0.5" @@ -156,6 +74,16 @@ dependencies: csstype "^2.2.0" +"@types/react@^16.3.16": + version "16.3.16" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.3.16.tgz#78fc44a90b45701f50c8a7008f733680ba51fc86" + dependencies: + csstype "^2.2.0" + +"@types/shallowequal@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@types/shallowequal/-/shallowequal-0.2.2.tgz#71918d93f1e9c242790c31b456969ff9f6028005" + JSONStream@^1.0.4: version "1.3.1" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.1.tgz#707f761e01dae9e16f1bcf93703b78c70966579a" @@ -197,21 +125,11 @@ acorn-globals@^4.1.0: dependencies: acorn "^5.0.0" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - acorn@^5.0.0: version "5.1.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7" -acorn@^5.3.0, acorn@^5.5.0: +acorn@^5.3.0: version "5.5.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" @@ -219,10 +137,6 @@ add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - ajv-keywords@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" @@ -243,15 +157,6 @@ ajv@^5.1.0: json-schema-traverse "^0.3.0" json-stable-stringify "^1.0.1" -ajv@^5.2.3, ajv@^5.3.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - ajv@^6.1.0: version "6.4.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6" @@ -362,13 +267,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -aria-query@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e" - dependencies: - ast-types-flow "0.0.7" - commander "^2.11.0" - arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" @@ -452,7 +350,7 @@ arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -asap@^2.0.6, asap@~2.0.3: +asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -486,10 +384,6 @@ assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" -ast-types-flow@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - ast-types@0.10.1: version "0.10.1" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd" @@ -538,7 +432,7 @@ atob@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" -autobind-decorator@*, autobind-decorator@^2.1.0: +autobind-decorator@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/autobind-decorator/-/autobind-decorator-2.1.0.tgz#4451240dbfeff46361c506575a63ed40f0e5bc68" @@ -576,12 +470,6 @@ aws4@^1.2.1, aws4@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" -axobject-query@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" - dependencies: - ast-types-flow "0.0.7" - babel-cli@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" @@ -635,17 +523,6 @@ babel-core@^6.0.0, babel-core@^6.26.0: slash "^1.0.0" source-map "^0.5.6" -babel-eslint@^8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.3.tgz#1a2e6681cc9bc4473c32899e59915e19cd6733cf" - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/traverse" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - eslint-scope "~3.7.1" - eslint-visitor-keys "^1.0.0" - babel-generator@^6.18.0, babel-generator@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" @@ -675,14 +552,6 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - babel-helper-call-delegate@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" @@ -785,13 +654,6 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^22.4.3: - version "22.4.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.4.3.tgz#4b7a0b6041691bbd422ab49b3b73654a49a6627a" - dependencies: - babel-plugin-istanbul "^4.1.5" - babel-preset-jest "^22.4.3" - babel-jest@^23.0.0-beta.3r: version "23.0.0-beta.3r" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.0.0-beta.3r.tgz#ffb49a3818c3869764ac26be5c1df25aaf9d5816" @@ -827,7 +689,7 @@ babel-plugin-check-es2015-constants@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-istanbul@^4.1.4, babel-plugin-istanbul@^4.1.5, babel-plugin-istanbul@^4.1.6: +babel-plugin-istanbul@^4.1.4, babel-plugin-istanbul@^4.1.6: version "4.1.6" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" dependencies: @@ -860,7 +722,7 @@ babel-plugin-syntax-class-properties@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" -babel-plugin-syntax-decorators@^6.1.18, babel-plugin-syntax-decorators@^6.13.0: +babel-plugin-syntax-decorators@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" @@ -880,10 +742,6 @@ babel-plugin-syntax-flow@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" @@ -900,7 +758,7 @@ babel-plugin-transform-async-generator-functions@^6.24.1: babel-plugin-syntax-async-generators "^6.5.0" babel-runtime "^6.22.0" -babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: +babel-plugin-transform-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" dependencies: @@ -925,14 +783,6 @@ babel-plugin-transform-class-properties@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-decorators-legacy@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.4.tgz#741b58f6c5bce9e6027e0882d9c994f04f366925" - dependencies: - babel-plugin-syntax-decorators "^6.1.18" - babel-runtime "^6.2.0" - babel-template "^6.3.0" - babel-plugin-transform-decorators@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" @@ -955,7 +805,7 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: +babel-plugin-transform-es2015-block-scoping@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" dependencies: @@ -965,7 +815,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es20 babel-types "^6.26.0" lodash "^4.17.4" -babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: +babel-plugin-transform-es2015-classes@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" dependencies: @@ -979,33 +829,33 @@ babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-cla babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: +babel-plugin-transform-es2015-computed-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: +babel-plugin-transform-es2015-destructuring@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: +babel-plugin-transform-es2015-duplicate-keys@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: +babel-plugin-transform-es2015-for-of@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: +babel-plugin-transform-es2015-function-name@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" dependencies: @@ -1019,7 +869,7 @@ babel-plugin-transform-es2015-literals@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: +babel-plugin-transform-es2015-modules-amd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" dependencies: @@ -1027,7 +877,7 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015 babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: +babel-plugin-transform-es2015-modules-commonjs@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" dependencies: @@ -1045,7 +895,7 @@ babel-plugin-transform-es2015-modules-commonjs@^6.26.0: babel-template "^6.26.0" babel-types "^6.26.0" -babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: +babel-plugin-transform-es2015-modules-systemjs@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" dependencies: @@ -1053,7 +903,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-e babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: +babel-plugin-transform-es2015-modules-umd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" dependencies: @@ -1061,14 +911,14 @@ babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015 babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: +babel-plugin-transform-es2015-object-super@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" dependencies: babel-helper-replace-supers "^6.24.1" babel-runtime "^6.22.0" -babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: +babel-plugin-transform-es2015-parameters@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" dependencies: @@ -1079,7 +929,7 @@ babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015- babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: +babel-plugin-transform-es2015-shorthand-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" dependencies: @@ -1092,7 +942,7 @@ babel-plugin-transform-es2015-spread@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: +babel-plugin-transform-es2015-sticky-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" dependencies: @@ -1106,13 +956,13 @@ babel-plugin-transform-es2015-template-literals@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: +babel-plugin-transform-es2015-typeof-symbol@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: +babel-plugin-transform-es2015-unicode-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" dependencies: @@ -1120,7 +970,7 @@ babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es20 babel-runtime "^6.22.0" regexpu-core "^2.0.0" -babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: +babel-plugin-transform-exponentiation-operator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" dependencies: @@ -1135,7 +985,7 @@ babel-plugin-transform-export-extensions@^6.22.0: babel-plugin-syntax-export-extensions "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-flow-strip-types@^6.22.0, babel-plugin-transform-flow-strip-types@^6.8.0: +babel-plugin-transform-flow-strip-types@^6.8.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" dependencies: @@ -1149,35 +999,7 @@ babel-plugin-transform-object-rest-spread@^6.22.0: babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.26.0" -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: +babel-plugin-transform-regenerator@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" dependencies: @@ -1198,41 +1020,6 @@ babel-polyfill@^6.26.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" -babel-preset-env@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" - invariant "^2.2.2" - semver "^5.3.0" - babel-preset-es2015@^6.9.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" @@ -1262,13 +1049,7 @@ babel-preset-es2015@^6.9.0: babel-plugin-transform-es2015-unicode-regex "^6.24.1" babel-plugin-transform-regenerator "^6.24.1" -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-jest@^22.4.0, babel-preset-jest@^22.4.3: +babel-preset-jest@^22.4.0: version "22.4.3" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.3.tgz#e92eef9813b7026ab4ca675799f37419b5a44156" dependencies: @@ -1282,17 +1063,6 @@ babel-preset-jest@^23.0.0-beta.3r: babel-plugin-jest-hoist "^23.0.0-beta.3r" babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-preset-react@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" - babel-preset-stage-1@^6.5.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" @@ -1332,14 +1102,14 @@ babel-register@^6.24.1, babel-register@^6.26.0, babel-register@^6.9.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2: +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0, babel-template@^6.3.0: +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: @@ -1372,10 +1142,6 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26 lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@7.0.0-beta.44: - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" - babylon@^6.17.3, babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -1591,7 +1357,7 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^2.1.2, browserslist@^2.5.0: +browserslist@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.5.0.tgz#0ea00d22813a4dfae5786485225a9c584b3ef37c" dependencies: @@ -1688,16 +1454,6 @@ call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" @@ -1862,10 +1618,6 @@ circular-dependency-plugin@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz#da168c0b37e7b43563fb9f912c1c007c213389ef" -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - clap@^1.0.9: version "1.2.3" resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" @@ -2132,7 +1884,7 @@ concat-stream@^1.4.10: readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@^1.5.0, concat-stream@^1.6.0: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -2159,10 +1911,6 @@ constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" @@ -2580,10 +2328,6 @@ d@1: dependencies: es5-ext "^0.10.9" -damerau-levenshtein@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" - dargs@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" @@ -2715,18 +2459,6 @@ defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - del@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" @@ -2791,14 +2523,14 @@ detect-node@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" +diff@^3.1.0, diff@^3.3.1, diff@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + diff@^3.2.0: version "3.3.1" resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" -diff@^3.3.1, diff@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - diffie-hellman@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" @@ -2814,10 +2546,6 @@ dir-glob@^2.0.0: arrify "^1.0.1" path-type "^3.0.0" -disposables@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/disposables/-/disposables-1.0.2.tgz#36c6a674475f55a2d6913567a601444e487b4b6e" - dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -2835,19 +2563,6 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.0.2, doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - dependencies: - esutils "^2.0.2" - dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" @@ -2923,10 +2638,6 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -emoji-regex@^6.1.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" - emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -3060,139 +2771,13 @@ escodegen@^1.9.0: optionalDependencies: source-map "~0.6.1" -eslint-config-airbnb-base@^12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944" - dependencies: - eslint-restricted-globals "^0.1.1" - -eslint-config-airbnb@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-16.1.0.tgz#2546bfb02cc9fe92284bf1723ccf2e87bc45ca46" - dependencies: - eslint-config-airbnb-base "^12.1.0" - -eslint-config-prettier@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz#5ecd65174d486c22dff389fe036febf502d468a3" - dependencies: - get-stdin "^5.0.1" - -eslint-import-resolver-node@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc" - dependencies: - debug "^2.6.8" - resolve "^1.2.0" - -eslint-module-utils@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" - dependencies: - debug "^2.6.8" - pkg-dir "^1.0.0" - -eslint-plugin-import@^2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.11.0.tgz#15aeea37a67499d848e8e981806d4627b5503816" - dependencies: - contains-path "^0.1.0" - debug "^2.6.8" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.2.0" - has "^1.0.1" - lodash "^4.17.4" - minimatch "^3.0.3" - read-pkg-up "^2.0.0" - resolve "^1.6.0" - -eslint-plugin-jsx-a11y@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.3.tgz#54583d1ae442483162e040e13cc31865465100e5" - dependencies: - aria-query "^0.7.0" - array-includes "^3.0.3" - ast-types-flow "0.0.7" - axobject-query "^0.1.0" - damerau-levenshtein "^1.0.0" - emoji-regex "^6.1.0" - jsx-ast-utils "^2.0.0" - -eslint-plugin-react@^7.7.0: - version "7.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160" - dependencies: - doctrine "^2.0.2" - has "^1.0.1" - jsx-ast-utils "^2.0.1" - prop-types "^15.6.0" - -eslint-restricted-globals@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" - -eslint-scope@^3.7.1, eslint-scope@~3.7.1: +eslint-scope@^3.7.1: version "3.7.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - -eslint@^4.19.1: - version "4.19.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" - dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.4" - esquery "^1.0.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - regexpp "^1.0.1" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" - -espree@^3.5.4: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" @@ -3205,12 +2790,6 @@ esprima@^4.0.0, esprima@~4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" - dependencies: - estraverse "^4.0.0" - esrecurse@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" @@ -3218,7 +2797,7 @@ esrecurse@^4.1.0: estraverse "^4.1.0" object-assign "^4.0.1" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -3517,13 +3096,6 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - file-loader@^1.1.11: version "1.1.11" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" @@ -3604,15 +3176,6 @@ first-chunk-stream@^2.0.0: dependencies: readable-stream "^2.0.2" -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" - dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" @@ -3761,10 +3324,6 @@ function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -3804,10 +3363,6 @@ get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" -get-stdin@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" - get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -3938,25 +3493,10 @@ global@^4.3.0: min-document "^2.19.0" process "~0.5.1" -globals@^11.0.1, globals@^11.1.0: - version "11.5.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.5.0.tgz#6bc840de6771173b191f13d3a9c94d441ee92642" - globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -4386,7 +3926,7 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^3.3.3, ignore@^3.3.5: +ignore@^3.3.5: version "3.3.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" @@ -4458,7 +3998,7 @@ ini@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" -inquirer@^3.0.6, inquirer@^3.2.2, inquirer@^3.3.0: +inquirer@^3.2.2, inquirer@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" dependencies: @@ -4516,7 +4056,7 @@ into-stream@^3.1.0: from2 "^2.1.1" p-is-promise "^1.1.0" -invariant@^2.0.0, invariant@^2.1.0: +invariant@^2.1.0, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: @@ -4772,12 +4312,6 @@ is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" -is-resolvable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" - dependencies: - tryit "^1.0.1" - is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -5354,13 +4888,6 @@ js-yaml@^3.4.3, js-yaml@^3.7.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.9.1: - version "3.11.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" @@ -5451,10 +4978,6 @@ jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" -jsesc@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" - jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" @@ -5475,10 +4998,6 @@ json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" @@ -5520,12 +5039,6 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.0.0, jsx-ast-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" - dependencies: - array-includes "^3.0.3" - karma-sourcemap-loader@^0.3.7: version "0.3.7" resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" @@ -5645,7 +5158,7 @@ leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" -levn@^0.3.0, levn@~0.3.0: +levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" dependencies: @@ -5833,7 +5346,7 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^4.13.1, lodash@^4.2.0: +lodash@^4.13.1: version "4.17.5" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" @@ -5936,6 +5449,10 @@ make-dir@^1.1.0: dependencies: pify "^3.0.0" +make-error@^1.1.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" + makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -6648,7 +6165,7 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.1, optionator@^0.8.2: +optionator@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: @@ -6866,7 +6383,7 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-is-inside@^1.0.1, path-is-inside@^1.0.2: +path-is-inside@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" @@ -6944,22 +6461,12 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - dependencies: - find-up "^1.0.0" - pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" dependencies: find-up "^2.1.0" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -7291,10 +6798,6 @@ process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" -progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" - promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -7305,17 +6808,17 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.5.10, prop-types@^15.6.1: - version "15.6.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca" +prop-types@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" dependencies: fbjs "^0.8.16" loose-envify "^1.3.1" object-assign "^4.1.1" -prop-types@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" +prop-types@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca" dependencies: fbjs "^0.8.16" loose-envify "^1.3.1" @@ -7714,10 +7217,6 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" - regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" @@ -7894,13 +7393,6 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - requires-port@1.0.x, requires-port@1.x.x: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -7918,10 +7410,6 @@ resolve-dir@^1.0.0: expand-tilde "^2.0.0" global-modules "^1.0.0" -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -7934,13 +7422,13 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@^1.1.6, resolve@^1.2.0: +resolve@^1.1.6: version "1.4.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" dependencies: path-parse "^1.0.5" -resolve@^1.1.7, resolve@^1.3.2, resolve@^1.6.0: +resolve@^1.1.7, resolve@^1.3.2: version "1.7.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" dependencies: @@ -8227,12 +7715,6 @@ slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - dependencies: - is-fullwidth-code-point "^2.0.0" - slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" @@ -8333,11 +7815,18 @@ source-map-support@^0.5.0: buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@^0.5.3: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: +source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -8701,17 +8190,6 @@ symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" -table@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - tapable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" @@ -8792,7 +8270,7 @@ text-extensions@^1.0.0: version "1.7.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39" -text-table@^0.2.0, text-table@~0.2.0: +text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -8847,10 +8325,6 @@ to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -8907,10 +8381,6 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" -tryit@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" - ts-jest@^22.4.4: version "22.4.4" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-22.4.4.tgz#7b5c0abb2188fe7170840df9f80e78659aaf8a24" @@ -8935,6 +8405,19 @@ ts-loader@^4.2.0: micromatch "^3.1.4" semver "^5.0.1" +ts-node@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-6.0.5.tgz#977c1c931da7a2b09ae2930101f0104a5c2271e9" + dependencies: + arrify "^1.0.0" + chalk "^2.3.0" + diff "^3.1.0" + make-error "^1.1.1" + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map-support "^0.5.3" + yn "^2.0.0" + tslib@^1.8.0, tslib@^1.8.1: version "1.9.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" @@ -9601,12 +9084,6 @@ write-pkg@^3.1.0: sort-keys "^2.0.0" write-json-file "^2.2.0" -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - ws@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" @@ -9764,3 +9241,7 @@ yeoman-generator@^2.0.4: text-table "^0.2.0" through2 "^2.0.0" yeoman-environment "^2.0.5" + +yn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"