diff --git a/.eslintrc b/.eslintrc index 5d08d033..666c8e53 100644 --- a/.eslintrc +++ b/.eslintrc @@ -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" } diff --git a/config/webpack.library.js b/config/webpack.library.js index f49c93cc..7eeb1538 100644 --- a/config/webpack.library.js +++ b/config/webpack.library.js @@ -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: { diff --git a/demo/js/butterchurnOptions.ts b/demo/js/butterchurnOptions.ts index 602a70b5..f3c85189 100644 --- a/demo/js/butterchurnOptions.ts +++ b/demo/js/butterchurnOptions.ts @@ -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", diff --git a/demo/js/index.js b/demo/js/index.js index e801354e..11667394 100644 --- a/demo/js/index.js +++ b/demo/js/index.js @@ -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); diff --git a/eslint-local-rules.js b/eslint-local-rules.js index d342184a..d70dc24a 100644 --- a/eslint-local-rules.js +++ b/eslint-local-rules.js @@ -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, }); } diff --git a/experiments/skin-database/discord-bot/commands/archive.js b/experiments/skin-database/discord-bot/commands/archive.js index 81ad7ffc..ba58802a 100644 --- a/experiments/skin-database/discord-bot/commands/archive.js +++ b/experiments/skin-database/discord-bot/commands/archive.js @@ -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.` ); } } diff --git a/experiments/skin-database/tasks/ensureInternetArchiveItemsIndexByMd5.js b/experiments/skin-database/tasks/ensureInternetArchiveItemsIndexByMd5.js index f08c09d7..a1843766 100644 --- a/experiments/skin-database/tasks/ensureInternetArchiveItemsIndexByMd5.js +++ b/experiments/skin-database/tasks/ensureInternetArchiveItemsIndexByMd5.js @@ -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; } diff --git a/js/components/App.tsx b/js/components/App.tsx index 0db6e675..7df62f02 100644 --- a/js/components/App.tsx +++ b/js/components/App.tsx @@ -100,8 +100,8 @@ class App extends React.Component { 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"; }; diff --git a/js/components/MediaLibraryWindow/LibraryLayout.tsx b/js/components/MediaLibraryWindow/LibraryLayout.tsx index 3d1b12ad..de4d8d8b 100644 --- a/js/components/MediaLibraryWindow/LibraryLayout.tsx +++ b/js/components/MediaLibraryWindow/LibraryLayout.tsx @@ -113,9 +113,7 @@ class LibraryLayout extends React.Component { 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 ?
: this.props.sidebar} diff --git a/js/components/Skin.js b/js/components/Skin.js index 3545a5d2..545fa64f 100644 --- a/js/components/Skin.js +++ b/js/components/Skin.js @@ -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( diff --git a/js/components/WindowManager.tsx b/js/components/WindowManager.tsx index 98e62bc2..d23133ac 100644 --- a/js/components/WindowManager.tsx +++ b/js/components/WindowManager.tsx @@ -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 { 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(abuts); movingSet = findAllConnected(windows, targetNode); } @@ -110,7 +112,7 @@ class WindowManager extends React.Component { ); const windowPositionDiff = moving.reduce( - (diff: { [windowId: string]: SnapUtils.Diff }, window) => { + (diff: { [windowId: string]: Point }, window) => { diff[window.key] = SnapUtils.applyDiff(window, finalDiff); return diff; }, diff --git a/js/reducers/windows.ts b/js/reducers/windows.ts index 6e23c520..2e80cf86 100644 --- a/js/reducers/windows.ts +++ b/js/reducers/windows.ts @@ -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 { diff --git a/js/snapUtils.ts b/js/snapUtils.ts index 1a5d62a3..79e47dc1 100644 --- a/js/snapUtils.ts +++ b/js/snapUtils.ts @@ -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( 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 => { + const connected = new Set(); + 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, diff --git a/js/types.ts b/js/types.ts index cb98ca77..a8dea966 100644 --- a/js/types.ts +++ b/js/types.ts @@ -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; diff --git a/modern/src/__tests__/parser.test.js b/modern/src/__tests__/parser.test.js index 0dec6c49..7634b8a0 100644 --- a/modern/src/__tests__/parser.test.js +++ b/modern/src/__tests__/parser.test.js @@ -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}` ); } }); diff --git a/modern/src/runtime/GuiObject.ts b/modern/src/runtime/GuiObject.ts index 6048e1a3..177577ed 100644 --- a/modern/src/runtime/GuiObject.ts +++ b/modern/src/runtime/GuiObject.ts @@ -5,7 +5,7 @@ import { baseImageAttributeFromObject, unimplementedWarning, } from "../utils"; -import { ModernStore, XmlNode } from "../types"; +import { XmlNode } from "../types"; type TargetParams = { alpha?: number; diff --git a/modern/src/utils.ts b/modern/src/utils.ts index 3e7efd76..707d92d5 100644 --- a/modern/src/utils.ts +++ b/modern/src/utils.ts @@ -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 []; } diff --git a/package.json b/package.json index a7468b3b..6dbc1bcd 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/yarn.lock b/yarn.lock index b3d3b2f1..0805f571 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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"