Upgrade ts (#952)

* Upgrade Typescript

* Upgrade prettier

* Upgrade eslint-typescript

* Don't abide extra else

* Remove eslint plugin that we don't use any more

* Remove unused Webpack plugin

* Remove eslint rule that we don't really need

* Remove unused Jest plugin

* Remove redundant package

* Prettier fixes
This commit is contained in:
Jordan Eldredge 2019-11-18 08:54:32 -08:00
parent d09293c975
commit 1e0a9114dd
19 changed files with 118 additions and 214 deletions

View file

@ -12,7 +12,6 @@
"react",
"prettier",
"import",
"no-constructor-bind",
"@typescript-eslint",
"react-hooks",
"eslint-plugin-local-rules"
@ -89,7 +88,7 @@
"no-dupe-keys": "error",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-else-return": "warn",
"no-else-return": "error",
"no-empty-character-class": "error",
"no-eval": "error",
"no-ex-assign": "error",
@ -164,7 +163,6 @@
"import/no-extraneous-dependencies": "error",
"import/no-named-as-default-member": "error",
"import/no-unresolved": "error",
"no-constructor-bind/no-constructor-bind": "error",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "error"
}

View file

@ -1,6 +1,5 @@
const path = require("path");
const { BundleAnalyzerPlugin } = require("webpack-bundle-analyzer");
const UnminifiedWebpackPlugin = require("unminified-webpack-plugin");
module.exports = {
devtool: "source-map",
@ -46,8 +45,6 @@ module.exports = {
reportFilename: "library-report.html",
openAnalyzer: false,
}),
// Also generate non-minified bundles.
new UnminifiedWebpackPlugin(),
],
performance: {
// We do some crazy shit okay! Don't judge!
@ -55,7 +52,9 @@ module.exports = {
maxAssetSize: 9000000,
},
entry: {
bundle: "./js/webamp.js",
"bundle.min": "./js/webamp.js",
"lazy-bundle": "./js/webampLazy.tsx",
"lazy-bundle.min": "./js/webampLazy.tsx",
},
output: {

View file

@ -33,14 +33,18 @@ export function getButterchurnOptions(
): ButterchurnOptions {
return {
importButterchurn: () => {
return import(/* webpackChunkName: "butterchurn-initial-dependencies" */
// @ts-ignore
"butterchurn");
return import(
/* webpackChunkName: "butterchurn-initial-dependencies" */
// @ts-ignore
"butterchurn"
);
},
importConvertPreset: () => {
return import(/* webpackChunkName: "milkdrop-preset-converter" */
// @ts-ignore
"milkdrop-preset-converter-aws");
return import(
/* webpackChunkName: "milkdrop-preset-converter" */
// @ts-ignore
"milkdrop-preset-converter-aws"
);
},
presetConverterEndpoint:
"https://p2tpeb5v8b.execute-api.us-east-2.amazonaws.com/default/milkdropShaderConverter",

View file

@ -167,7 +167,9 @@ Raven.context(async () => {
requireJSZip: () =>
import(/* webpackChunkName: "jszip" */ "jszip/dist/jszip"),
requireMusicMetadata: () =>
import(/* webpackChunkName: "music-metadata-browser" */ "music-metadata-browser/dist/index"),
import(
/* webpackChunkName: "music-metadata-browser" */ "music-metadata-browser/dist/index"
),
__enableMediaLibrary: library,
__initialWindowLayout,
__initialState: screenshot ? screenshotInitialState : initialState,
@ -210,9 +212,7 @@ Raven.context(async () => {
document.title =
track == null
? DEFAULT_DOCUMENT_TITLE
: `${track.metaData.title} - ${
track.metaData.artist
} \u00B7 ${DEFAULT_DOCUMENT_TITLE}`;
: `${track.metaData.title} - ${track.metaData.artist} \u00B7 ${DEFAULT_DOCUMENT_TITLE}`;
});
enableMediaSession(webamp);

View file

@ -184,9 +184,7 @@ module.exports = {
) {
context.report({
node: body,
message: `Missing return type for Maki method. Expected \`${
expectedTypeData.stringRepresentation
}\`.`,
message: `Missing return type for Maki method. Expected \`${expectedTypeData.stringRepresentation}\`.`,
fix: fixer => {
return fixer.insertTextBefore(
body,
@ -203,9 +201,7 @@ module.exports = {
) {
context.report({
node: returnType,
message: `Incorrect return type for Maki method. Expected \`${
expectedTypeData.stringRepresentation
}\`.`,
message: `Incorrect return type for Maki method. Expected \`${expectedTypeData.stringRepresentation}\`.`,
});
}
}
@ -243,9 +239,7 @@ module.exports = {
if (actual.typeAnnotation == null) {
context.report({
node: actual,
message: `Missing type for Maki argument. Expected \`${
expectedTypeData.stringRepresentation
}\`.`,
message: `Missing type for Maki argument. Expected \`${expectedTypeData.stringRepresentation}\`.`,
fix,
});
return;
@ -257,9 +251,7 @@ module.exports = {
if (actualTypeScriptName !== expectedTypeData.typeScriptName) {
context.report({
node: actual,
message: `Invalid type for Maki argument. Expected \`${
expectedTypeData.typeScriptName
}\`.`,
message: `Invalid type for Maki argument. Expected \`${expectedTypeData.typeScriptName}\`.`,
fix,
});
}

View file

@ -56,9 +56,7 @@ async function handler(message) {
file.buffer
);
await message.channel.send(
`Thanks! ${
file.filename
} is a brand new skin. 👏 It has been queued for archiving.`
`Thanks! ${file.filename} is a brand new skin. 👏 It has been queued for archiving.`
);
}
}

View file

@ -18,9 +18,7 @@ module.exports = async function main() {
});
if (skinFiles.length !== 1) {
console.warn(
`Found a skin item with ${skinFiles.length} skin files. Identifier: ${
item.identifier
}`
`Found a skin item with ${skinFiles.length} skin files. Identifier: ${item.identifier}`
);
continue;
}

View file

@ -100,8 +100,8 @@ class App extends React.Component<Props> {
this._webampNode.style.bottom = "0";
this._webampNode.style.overflow = "hidden";
this.props.browserWindowSizeChanged(Utils.getWindowSize());
this._webampNode.style.right = null;
this._webampNode.style.bottom = null;
this._webampNode.style.right = "none";
this._webampNode.style.bottom = "none";
this._webampNode.style.overflow = "visible";
};

View file

@ -113,9 +113,7 @@ class LibraryLayout extends React.Component<Props, State> {
left: 0,
right: 0,
display: "grid",
gridTemplateColumns: `${
this.state.sidebarWidth
}px ${DIVIDER_WIDTH}px auto`,
gridTemplateColumns: `${this.state.sidebarWidth}px ${DIVIDER_WIDTH}px auto`,
}}
>
{this.state.sidebarWidth === 0 ? <div /> : this.props.sidebar}

View file

@ -189,15 +189,9 @@ function cssRulesFromProps(props) {
color: ${props.skinGenExColors.listHeaderText};
background-color: ${props.skinGenExColors.listHeaderBackground};
border-top: 1px solid ${props.skinGenExColors.listHeaderFrameTopAndLeft};
border-left: 1px solid ${
props.skinGenExColors.listHeaderFrameTopAndLeft
};
border-bottom: 1px solid ${
props.skinGenExColors.listHeaderFrameBottomAndRight
};
border-right: 1px solid ${
props.skinGenExColors.listHeaderFrameBottomAndRight
};
border-left: 1px solid ${props.skinGenExColors.listHeaderFrameTopAndLeft};
border-bottom: 1px solid ${props.skinGenExColors.listHeaderFrameBottomAndRight};
border-right: 1px solid ${props.skinGenExColors.listHeaderFrameBottomAndRight};
}`
);
cssRules.push(

View file

@ -10,8 +10,10 @@ import {
WindowPositions,
AppState,
WindowId,
Box,
Point,
} from "../types";
const abuts = (a: SnapUtils.Box, b: SnapUtils.Box) => {
const abuts = (a: Box, b: Box) => {
// TODO: This is kinda a hack. They should really be touching, not just within snapping distance.
// Also, overlapping should not count.
const wouldMoveTo = SnapUtils.snap(a, b);
@ -50,7 +52,7 @@ class WindowManager extends React.Component<Props> {
let movingSet = new Set([targetNode]);
// Only the main window brings other windows along.
if (key === "main") {
const findAllConnected = SnapUtils.traceConnection(abuts);
const findAllConnected = SnapUtils.traceConnection<WindowInfo>(abuts);
movingSet = findAllConnected(windows, targetNode);
}
@ -110,7 +112,7 @@ class WindowManager extends React.Component<Props> {
);
const windowPositionDiff = moving.reduce(
(diff: { [windowId: string]: SnapUtils.Diff }, window) => {
(diff: { [windowId: string]: Point }, window) => {
diff[window.key] = SnapUtils.applyDiff(window, finalDiff);
return diff;
},

View file

@ -1,4 +1,4 @@
import { Action, WindowId } from "../types";
import { Action, WindowId, Box, Point } from "../types";
import { WINDOWS } from "../constants";
import {
SET_FOCUSED_WINDOW,
@ -17,10 +17,7 @@ import {
import * as Utils from "../utils";
import { WindowsSerializedStateV1 } from "../serializedStates/v1Types";
export interface WindowPosition {
x: number;
y: number;
}
export type WindowPosition = Point;
export type WindowPositions = {
[windowId: string]: WindowPosition;
@ -39,12 +36,8 @@ export interface WebampWindow {
position: WindowPosition;
}
export interface WindowInfo {
export interface WindowInfo extends Box {
key: WindowId;
height: number;
width: number;
x: number;
y: number;
}
export interface WindowsState {
focused: WindowId | null;
@ -161,9 +154,7 @@ const windows = (
const { canShade } = state.genWindows[action.windowId];
if (!canShade) {
throw new Error(
`Tried to shade/unshade a window that cannot be shaded: ${
action.windowId
}`
`Tried to shade/unshade a window that cannot be shaded: ${action.windowId}`
);
}
return {

View file

@ -1,22 +1,4 @@
interface Point {
x: number;
y: number;
}
export interface Diff {
x?: number;
y?: number;
}
interface BoundingBox {
width: number;
height: number;
}
export interface Box extends Point {
width: number;
height: number;
}
import { Box, Point, Diff, BoundingBox } from "./types";
export const SNAP_DISTANCE = 15;
@ -166,21 +148,23 @@ export const boundingBox = (nodes: Box[]) => {
};
};
export const traceConnection = (
export function traceConnection<B extends Box>(
areConnected: (candidate: Box, n: Box) => boolean
) => (candidates: Box[], node: Box) => {
const connected = new Set();
const checkNode = (n: Box) => {
for (const candidate of candidates) {
if (!connected.has(candidate) && areConnected(candidate, n)) {
connected.add(candidate);
checkNode(candidate);
) {
return (candidates: B[], node: B): Set<B> => {
const connected = new Set<B>();
const checkNode = (n: B) => {
for (const candidate of candidates) {
if (!connected.has(candidate) && areConnected(candidate, n)) {
connected.add(candidate);
checkNode(candidate);
}
}
}
};
checkNode(node);
return connected;
};
checkNode(node);
return connected;
};
}
export const applyDiff = (a: Point, b: Point) => ({
x: a.x + b.x,

View file

@ -6,10 +6,10 @@ import { ThunkDispatch, ThunkAction } from "redux-thunk";
import { DisplayState } from "./reducers/display";
import {
WindowsState,
WindowPositions,
WebampWindow,
WindowInfo,
WindowPosition,
WindowPositions as _WindowPositions,
WebampWindow as _WebampWindow,
WindowInfo as _WindowInfo,
WindowPosition as _WindowPosition,
} from "./reducers/windows";
import { EqualizerState } from "./reducers/equalizer";
import { NetworkState } from "./reducers/network";
@ -18,10 +18,31 @@ import { SerializedStateV1 } from "./serializedStates/v1Types";
import { TracksState } from "./reducers/tracks";
import { IAudioMetadata, IOptions } from "music-metadata-browser";
export type WebampWindow = WebampWindow;
export type WindowInfo = WindowInfo;
export type WindowPosition = WindowPosition;
export type WindowPositions = WindowPositions;
// Avoid warnings from Webpack: https://github.com/webpack/webpack/issues/7378
export type WebampWindow = _WebampWindow;
export type WindowInfo = _WindowInfo;
export type WindowPosition = _WindowPosition;
export type WindowPositions = _WindowPositions;
export interface Point {
x: number;
y: number;
}
export interface Diff {
x?: number;
y?: number;
}
export interface BoundingBox {
width: number;
height: number;
}
export interface Box extends Point {
width: number;
height: number;
}
export interface FilePicker {
contextMenuName: string;

View file

@ -220,9 +220,7 @@ Array [
const expectedOpcode = expectedCommands[i];
if (expectedOpcode !== command.opcode) {
throw new Error(
`Command ${i} reported opcode ${
command.opcode
}. Expected ${expectedOpcode}`
`Command ${i} reported opcode ${command.opcode}. Expected ${expectedOpcode}`
);
}
});

View file

@ -5,7 +5,7 @@ import {
baseImageAttributeFromObject,
unimplementedWarning,
} from "../utils";
import { ModernStore, XmlNode } from "../types";
import { XmlNode } from "../types";
type TargetParams = {
alpha?: number;

View file

@ -159,9 +159,7 @@ export async function inlineIncludes(
const includedFile = await readXml(zip, node.attributes.file);
if (includedFile == null) {
console.warn(
`Tried to include a file that could not be found: ${
node.attributes.file
}`
`Tried to include a file that could not be found: ${node.attributes.file}`
);
return [];
}

View file

@ -78,8 +78,8 @@
"@types/react-dom": "^16.8.4",
"@types/react-redux": "^7.1.1",
"@types/webaudioapi": "^0.0.27",
"@typescript-eslint/eslint-plugin": "^2.5.0",
"@typescript-eslint/parser": "^2.5.0",
"@typescript-eslint/eslint-plugin": "^2.6.1",
"@typescript-eslint/parser": "^2.6.1",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "^9.0.0-beta.3",
"babel-jest": "^24.9.0",
@ -92,10 +92,8 @@
"cssnano": "^4.1.10",
"data-uri-to-buffer": "^2.0.0",
"eslint": "^6.5.1",
"eslint-config-prettier": "^2.3.0",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-local-rules": "^0.1.1",
"eslint-plugin-no-constructor-bind": "^1.2.1",
"eslint-plugin-prettier": "^3.1.0",
"eslint-plugin-react": "^7.16.0",
"file-loader": "^2.0.0",
@ -109,7 +107,6 @@
"invariant": "^2.2.3",
"jest": "^24.9.0",
"jest-image-snapshot": "^2.8.1",
"jest-mock-random": "^1.0.2",
"jest-puppeteer": "^4.1.1",
"jszip": "^3.1.3",
"lodash": "^4.17.11",
@ -117,7 +114,7 @@
"music-metadata-browser": "^0.6.1",
"postcss": "^7.0.18",
"postcss-loader": "^3.0.0",
"prettier": "^1.16.4",
"prettier": "^1.18.2",
"puppeteer": "^1.15.0",
"raven-for-redux": "^1.3.1",
"raven-js": "^3.19.1",
@ -133,9 +130,7 @@
"screenfull": "^4.0.0",
"style-loader": "^0.23.1",
"tinyqueue": "^1.2.3",
"typescript": "^3.2.2",
"uglifyjs-webpack-plugin": "^1.2.5",
"unminified-webpack-plugin": "^2.0.0",
"typescript": "^3.7.2",
"url-loader": "^1.1.2",
"webpack": "^4.41.2",
"webpack-bundle-analyzer": "^3.3.2",

124
yarn.lock
View file

@ -1325,46 +1325,47 @@
dependencies:
"@types/yargs-parser" "*"
"@typescript-eslint/eslint-plugin@^2.5.0":
version "2.5.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.5.0.tgz#101d96743ce3365b3223df73d641078c9b775903"
integrity sha512-ddrJZxp5ns1Lh5ofZQYk3P8RyvKfyz/VcRR4ZiJLHO/ljnQAO8YvTfj268+WJOOadn99mvDiqJA65+HAKoeSPA==
"@typescript-eslint/eslint-plugin@^2.6.1":
version "2.6.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.6.1.tgz#e34972a24f8aba0861f9ccf7130acd74fd11e079"
integrity sha512-Z0rddsGqioKbvqfohg7BwkFC3PuNLsB+GE9QkFza7tiDzuHoy0y823Y+oGNDzxNZrYyLjqkZtCTl4vCqOmEN4g==
dependencies:
"@typescript-eslint/experimental-utils" "2.5.0"
"@typescript-eslint/experimental-utils" "2.6.1"
eslint-utils "^1.4.2"
functional-red-black-tree "^1.0.1"
regexpp "^2.0.1"
tsutils "^3.17.1"
"@typescript-eslint/experimental-utils@2.5.0":
version "2.5.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.5.0.tgz#383a97ded9a7940e5053449f6d73995e782b8fb1"
integrity sha512-UgcQGE0GKJVChyRuN1CWqDW8Pnu7+mVst0aWrhiyuUD1J9c+h8woBdT4XddCvhcXDodTDVIfE3DzGHVjp7tUeQ==
"@typescript-eslint/experimental-utils@2.6.1":
version "2.6.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.6.1.tgz#eddaca17a399ebf93a8628923233b4f93793acfd"
integrity sha512-EVrrUhl5yBt7fC7c62lWmriq4MIc49zpN3JmrKqfiFXPXCM5ErfEcZYfKOhZXkW6MBjFcJ5kGZqu1b+lyyExUw==
dependencies:
"@types/json-schema" "^7.0.3"
"@typescript-eslint/typescript-estree" "2.5.0"
"@typescript-eslint/typescript-estree" "2.6.1"
eslint-scope "^5.0.0"
"@typescript-eslint/parser@^2.5.0":
version "2.5.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.5.0.tgz#858030ddd808fbbe88e03f42e5971efaccb8218a"
integrity sha512-9UBMiAwIDWSl79UyogaBdj3hidzv6exjKUx60OuZuFnJf56tq/UMpdPcX09YmGqE8f4AnAueYtBxV8IcAT3jdQ==
"@typescript-eslint/parser@^2.6.1":
version "2.6.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.6.1.tgz#3c00116baa0d696bc334ca18ac5286b34793993c"
integrity sha512-PDPkUkZ4c7yA+FWqigjwf3ngPUgoLaGjMlFh6TRtbjhqxFBnkElDfckSjm98q9cMr4xRzZ15VrS/xKm6QHYf0w==
dependencies:
"@types/eslint-visitor-keys" "^1.0.0"
"@typescript-eslint/experimental-utils" "2.5.0"
"@typescript-eslint/typescript-estree" "2.5.0"
"@typescript-eslint/experimental-utils" "2.6.1"
"@typescript-eslint/typescript-estree" "2.6.1"
eslint-visitor-keys "^1.1.0"
"@typescript-eslint/typescript-estree@2.5.0":
version "2.5.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.5.0.tgz#40ada624d6217ef092a3a79ed30d947ad4f212ce"
integrity sha512-AXURyF8NcA3IsnbjNX1v9qbwa0dDoY9YPcKYR2utvMHoUcu3636zrz0gRWtVAyxbPCkhyKuGg6WZIyi2Fc79CA==
"@typescript-eslint/typescript-estree@2.6.1":
version "2.6.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.1.tgz#fb363dd4ca23384745c5ea4b7f4c867432b00d31"
integrity sha512-+sTnssW6bcbDZKE8Ce7VV6LdzkQz2Bxk7jzk1J8H1rovoTxnm6iXvYIyncvNsaB/kBCOM63j/LNJfm27bNdUoA==
dependencies:
debug "^4.1.1"
glob "^7.1.4"
is-glob "^4.0.1"
lodash.unescape "4.0.1"
semver "^6.3.0"
tsutils "^3.17.1"
"@webassemblyjs/ast@1.8.5":
version "1.8.5"
@ -2795,10 +2796,6 @@ commander@^2.9.0:
version "2.15.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
commander@~2.13.0:
version "2.13.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
commander@~2.8.1:
version "2.8.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
@ -3936,12 +3933,6 @@ escodegen@^1.9.0:
optionalDependencies:
source-map "~0.6.1"
eslint-config-prettier@^2.3.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.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
@ -3980,12 +3971,6 @@ eslint-plugin-local-rules@^0.1.1:
resolved "https://registry.yarnpkg.com/eslint-plugin-local-rules/-/eslint-plugin-local-rules-0.1.1.tgz#4fa5921389383f10cc1e6cfeb1c24e11597e8cef"
integrity sha512-+Wlic7MSxhVeGJT7a8vf7thVnzlRiessyHNaaOFT7PFlQS6Ff1oMO9vD803CSI5y6Nhu/+f+bVWGUDf8SRDxvg==
eslint-plugin-no-constructor-bind@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-no-constructor-bind/-/eslint-plugin-no-constructor-bind-1.2.1.tgz#1bb0237465aa90c3e44e0f7507a4d36b7b5153c1"
dependencies:
requireindex "~1.1.0"
eslint-plugin-prettier@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.0.tgz#8695188f95daa93b0dc54b249347ca3b79c4686d"
@ -6296,10 +6281,6 @@ jest-message-util@^24.9.0:
slash "^2.0.0"
stack-utils "^1.0.1"
jest-mock-random@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/jest-mock-random/-/jest-mock-random-1.0.2.tgz#81a1aa641fdb3a049bf64e2a7a0411fd8fc3fb20"
jest-mock@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6"
@ -8678,10 +8659,10 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"
prettier@^1.16.4:
version "1.16.4"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717"
integrity sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==
prettier@^1.18.2:
version "1.18.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea"
integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==
pretty-bytes@^4.0.2:
version "4.0.2"
@ -9483,10 +9464,6 @@ require-main-filename@^2.0.0:
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
requireindex@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz#e5404b81557ef75db6e49c5a72004893fe03e162"
requires-port@1.x.x, requires-port@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
@ -9678,13 +9655,6 @@ scheduler@^0.13.6:
loose-envify "^1.1.0"
object-assign "^4.1.1"
schema-utils@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
dependencies:
ajv "^6.1.0"
ajv-keywords "^3.1.0"
schema-utils@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
@ -10778,21 +10748,15 @@ typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
typescript@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.2.tgz#fe8101c46aa123f8353523ebdcf5730c2ae493e5"
typescript@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.2.tgz#27e489b95fa5909445e9fef5ee48d81697ad18fb"
integrity sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==
ua-parser-js@^0.7.9:
version "0.7.17"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"
uglify-es@^3.3.4:
version "3.3.9"
resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
dependencies:
commander "~2.13.0"
source-map "~0.6.1"
uglify-js@3.3.x:
version "3.3.15"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.15.tgz#5b8783b6856110d3a03a9b81e07324a3b925f2dd"
@ -10808,19 +10772,6 @@ uglify-js@^3.1.4:
commander "~2.20.0"
source-map "~0.6.1"
uglifyjs-webpack-plugin@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz#2ef8387c8f1a903ec5e44fa36f9f3cbdcea67641"
dependencies:
cacache "^10.0.4"
find-cache-dir "^1.0.0"
schema-utils "^0.4.5"
serialize-javascript "^1.4.0"
source-map "^0.6.1"
uglify-es "^3.3.4"
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
unbzip2-stream@^1.0.9:
version "1.3.3"
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a"
@ -10894,10 +10845,6 @@ universalify@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
unminified-webpack-plugin@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unminified-webpack-plugin/-/unminified-webpack-plugin-2.0.0.tgz#9cd9c3f420003e968d6ed5ea365085be5e72df14"
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@ -11246,13 +11193,6 @@ webpack-pwa-manifest@^3.7.1:
jimp "^0.2.28"
mime "^1.6.0"
webpack-sources@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54"
dependencies:
source-list-map "^2.0.0"
source-map "~0.6.1"
webpack-sources@^1.4.0, webpack-sources@^1.4.1:
version "1.4.3"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
@ -11471,12 +11411,6 @@ workbox-webpack-plugin@^3.6.3:
json-stable-stringify "^1.0.1"
workbox-build "^3.6.3"
worker-farm@^1.5.2:
version "1.6.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0"
dependencies:
errno "~0.1.7"
worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"